使 GCM 通知在应用程序中可配置

Posted

技术标签:

【中文标题】使 GCM 通知在应用程序中可配置【英文标题】:making GCM notifications configurable in applications 【发布时间】:2013-01-22 06:48:10 【问题描述】:

我的问题是

如何在不使用的情况下停止接收来自 GCM 服务的通知

  GCMRegistar.unregistar(context).

有什么方法可以停止接收通知。

我需要这个,因为我想让 GCM 推送通知功能由用户配置,如果用户设置为获取通知,他将收到通知,否则在没有注销设备的情况下停止接收通知

任何链接都对我有很大帮助。

【问题讨论】:

with in getNotification 函数本身使用 sharedpreferences 来判断用户是否需要通知 【参考方案1】:

我对我的应用程序做了类似的事情,如果您获得付费版本,您会收到通知,如果您获得免费版本,则不会收到此类更新。

我通过向表中添加一个字段来完成此操作,在该表中我的所有注册 ID 都称为状态。当我的服务器完成通知推送时,它只会发送到状态为“已付款”的那些注册。

因此,对于您的情况,我建议在您的应用程序中添加停止接收通知的选项。此方法将向您的服务器执行如下发布:

Function updateNotificationStatus(boolean status)

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://yourserver/update.php");

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("status", status));

post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = client.execute(post);
BufferedReader rd = new BufferedReader(new 

在您的服务器上处理这些帖子,然后更新您表中的状态字段。

希望对你有帮助

【讨论】:

你做得很好,但我的要求不同我想让它成为静态意味着在应用程序中用户可以选择获得通知感谢发布 @Manju- 注册后您将无法停止接收推送,除非您点击 GCMRegistar.unregistar(context) 或应用程序卸载,但可以根据配置状态停止显示推送。如果应用程序收到推送消息。希望这对您有所帮助。

以上是关于使 GCM 通知在应用程序中可配置的主要内容,如果未能解决你的问题,请参考以下文章

iOS应用后台主题推送通知

Android - GCM 在打开应用程序时收到来自 gcm 的通知

AWS SNS Android GCM - InvalidPlatformToken

当应用程序关闭时,GCM 广播接收器未检测到 gcm 通知

如何在锁定屏幕上显示 gcm 推送通知?

带有 GCM 的 iOS 推送通知