Articles of 推送通知

如何在推送通知(Gcm)android中显示图像?

从两天开始,我想要这样做。 但我失败了。 请任何人建议我如何在推送通知中获取图像。 先谢谢你。 编码我试过的: @SuppressWarnings(“deprecation”) private void handleMessage(Context mContext, Intent intent) { Bitmap remote_picture = null; long when = System.currentTimeMillis(); int icon = R.drawable.reload_logo; try { Bundle gcmData = intent.getExtras(); if(intent.getExtras().getString(“message”)!=null) Log.v(“TAG_IMAGE”, “” + intent.getExtras().getString(“message”)); Log.v(“TAG_IMAGE”, “” + intent.getExtras().getString(“imageurl”)); { NotificationCompat.BigPictureStyle notiStyle = new NotificationCompat.BigPictureStyle(); notiStyle.setSummaryText(intent.getExtras().getString(“message”)); try { remote_picture = BitmapFactory.decodeStream((InputStream) new URL(intent.getExtras().getString(“imageurl”)).getContent()); } […]

将GCM SENDER ID暴露给后果的后果是什么?

场景:假设通过逆向工程.apk文件,攻击者获取应用程序中使用的推送注册服务的SENDER ID 。 攻击者开发了一个类似的虚假应用程序,该应用程序具有相同/不同的程序包名称,并且已上载到与Google Play不同的app store。 我的问题:他/她可以在应用程序中使用相同的SENDER ID吗? 对于安装该假应用程序的用户,这有什么影响? 相关问题: 谷歌云消息安全问题似乎有点类似。 Android GCM的答案:更多应用程序问题的相同发件人ID提供有价值的信息。 阅读接受的答案,结论似乎是绝对可能的,这就是为什么建议不要在推送消息中包含敏感数据。 但这似乎不是问题的解决方案。 我无法理解上述安全失效的影响。

GCM规范ID

当为1个设备GCM具有多个regids时,返回规范id错误: {“multicast_id”:xxxx,”success”:2,”failure”:0,”canonical_ids”:1,”results”:[{“message_id”:”xxxxx”},{“registration_id”:”newest reg ID here”,”message_id”:”xxxxxx”}]} 所以它显示了GCM应该使用的最新regid,但为什么不显示你应该删除的regid(旧的)? 我怎么知道旧的regid是什么以及我应该从我的数据库中删除哪一个?

如何在android中创建自定义通知布局?

如何在android中使用通知样式或者需要进行自定义布局时在frist时间显示通知中的完整内容?

Android GCM和多个令牌

我在GCM中使用GoogleCloudMessaging.getInstance(context)注册; 并将收到的令牌保存在设备上。 然后将其发送到服务器并与用户帐户关联。 如果我卸载我的应用程序而没有注销并再次安装并与其他用户一起登录,我会收到新令牌并将其发送到服务器。 当推送发送给第一个用户时,我在第二个用户登录时看到它们。 为什么GCM会向我发送不同的令牌,我该如何处理?

Android 5.1推送通知图标为空白

当使用Parse进行推送通知时,我们的应用程序始终显示应用程序的启动器图标。 在最新的Android 5.1版本中,图标显示为空白(白色方块)。 我尝试在元数据中设置图标: 根据这里的问题 但似乎没有任何效果。 有任何想法吗?

Android GCM消息已成功发送但未收到

我正在尝试使用GCM服务向我的设备发送推送通知。 我已经关注了服务器端函数的Android Hive教程 (现在已经不像其他许多问题和答案一样被弃用),这些函数看起来像预期的那样工作,因为我可以得到这种输出: {“multicast_id”:9131068334342174816,”success”:1,”failure”:0,”canonical_ids”:0,”results”:[{“message_id”:”0:1377441098827443%1d84a26ff9fd7ecd”}]} 但根据一些答案 ,接收此响应只意味着GCM服务器已接受该消息进行发送,但并未发送该消息。 所以,正如预期的那样,我的BroadcastReceiver没有收到任何东西。 这是我的BroadcastReceiver代码: public class GcmBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.i(“gcm_debug”, “PushReceiver onReceive called”); Bundle extras = intent.getExtras(); GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(context); String msgType = gcm.getMessageType(intent); if(!extras.isEmpty()){ if(GoogleCloudMessaging.MESSAGE_TYPE_SEND_ERROR.equals(msgType)){ Log.i(“gcm_debug”, “Message send error”); }else if(GoogleCloudMessaging.MESSAGE_TYPE_DELETED.equals(msgType)){ Log.i(“gcm_debug”, “Message deleted”); }else if(GoogleCloudMessaging.MESSAGE_TYPE_MESSAGE.equals(msgType)){ Log.i(“gcm_debug”, “Message received […]

如何确定Android App是否从Notification消息中打开?

通常,当我在通知栏上有通知消息并单击它时。 它打开该消息的已注册应用程序。 在Startup的活动中,如何确定App是否从中打开? 更好的是如何在OnCreate()方法上检索通知的id? 更新 :来自@Ovidiu – 这是我的putExtra推送代码 Notification notification = new Notification(icon, tickerText, System.currentTimeMillis()); notification.contentView = contentView; Intent notificationIntent = new Intent(this, Startup.class); notificationIntent.putExtra(“JOBID”, jobId); PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, PendingIntent.FLAG_ONE_SHOT); notification.flags = Notification.FLAG_AUTO_CANCEL; notification.contentIntent = contentIntent; mNotificationManager.notify(jobId, notification); 并在主要活动“Startup.java”代码是 Intent intent = this.getIntent(); if (intent != null && intent.getExtras() != null && […]

使用Android中的注册ID从GCM取消注册设备

我有一个GCM注册用户列表及其在数据库表中的相应注册ID,我实际上想要在从表中删除用户时取消注册。 我在Stackoverflow中find了很多示例,但是大多数示例都基于旧的GCMRegistrar API,现在已弃用。 我正在使用GoogleCloudMessaging API并通过以下方法注册用户: private void registerUser(){ GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getBaseContext()); String regId = “”; try { regId = gcm.register(getString(R.string.project_number)); Log.i(“registrationId”, regId); } catch (IOException e) { Log.i(“Registration Error”, e.getMessage()); } } 我有一个管理员应用程序,它充当第三方应用程序服务器,因为它将通知推送给所有用户。 我想通过以下方法从此管理员应用中取消注册特定用户: private void unRegister(String regId) { GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(getBaseContext()); try { gcm.unregister(); } catch (IOException e) { System.out.println(“Error Message: ” […]

谷歌云消息推送通知

我可以在Google Chrome上使用POSTMAN客户端将有效内容消息发送到GCM服务器以进行测试。 其次,如果是,则要发送的header和url参数是什么。