如何以编程方式获取推送通知开/关状态以将其发送到我的网络服务器?

时间:2014-02-18 09:21:15

标签: android web notifications push

我已经使用GCM在我的应用中成功实施了推送通知。 我正在使用我的dotnet网络服务器向我的app vai GCM Server发送推送消息。 我已将GCM Registered Id存储在我的服务器上的数据库中。 现在我想检查一下,如果用户手动禁用/关闭我的应用程序的通知(通过设置),这样我就可以向我的网络服务器发送请求,不通过从数据库中删除GCM ID向该设备发送推送消息(注销)。

我知道推送消息已发送到我的应用程序,如果通知关闭则会被忽略但我的问题是我的应用程序将被更多的100000个用户/设备使用,如果只有少数人正在使用通知,那么是超过100000台设备/用户发送推送消息的不必要流量。

那么有没有办法以编程方式知道通知的开/关状态,以便我可以发送请求取消注册我的网络服务器上的应用程序?

我用google搜索,发现没有办法找到它,所以任何人都有其他方案可以解决我的问题。

请帮我解决这个问题,因为我在最近几天坚持这一点。

提前致谢,

Ketan Bhangale

2 个答案:

答案 0 :(得分:0)

将用户状态存储在 SharedPreference 中,并在显示通知时检查状态。

您可以在服务器上存储的相同状态以及具有状态的发件人列表。

答案 1 :(得分:0)

禁用应用通知的功能仅适用于当前运行Android 4.1+ Jelly Bean的设备。此外,似乎没有记录的方法来知道默认应用程序设置中的通知标志(复选框)的值。

只需手动维护。首先说创建一个用于更新“通知设置”的Web服务。该应用程序将发送通知值“true”或“false”,由用户从我们的应用设置菜单中选择。

Now at server side store that value for notification_flag corresponding to that user in your db

在根据您所需的偶数向用户发送通知之前(根据应用程序要求何时发送通知),首先检查该标志的值,然后再触发该用户的设备ID上的发送通知消息。

最后在应用端也更加可靠,check the value for that flag before showing the notification in the app when the message arrived