我目前正在使用登录系统将GCM实现到应用程序中.我想根据登录到应用程序的用户(一个设备,多个用户)向应用程序发送通知.我经历了这些过程.
>以“用户A”身份登录
>注册GCM(获取注册ID)发送到服务器端
>向用户A发送广播通知
>退出取消注册
>以“用户B”身份登录
>注册GCM(获取注册ID – 偶尔返回与用户A相同的注册ID,有时返回不同的注册ID-)
>向用户A发送GCM推送通知(即使用户取消注册)
我不确定如何让应用程序识别登录到设备的用户并仅将通知推送给该特定用户.而不是用户B登录并获得用户A的通知.任何评论和答案将非常感谢!如果您需要检查我项目中的特定代码,请告诉我们.
解决方法:
注册ID标识特定设备上的特定应用程序.它不了解您的应用程序中的用户登录.因此,当您取消注册GCM(用户注销时)时,您应该呼叫您的服务器,让它知道用户已注销.
这将让您的服务器知道此用户已注销,服务器将停止向其发送GCM消息.
如果您在用户A注销并且用户B登录后获得相同的注册ID,则无关紧要(即使您获得新的注册ID,旧的注册ID仍然有效.这就是GCM在设备返回规范注册ID的原因有多个应用程序的注册ID).
编辑:
让我们考虑特殊情况(这应该是相对罕见的),用户A在服务器向其发送通知后退出,但只有在用户B登录后,Google才会将通知发送到您的应用程序.处理此案例的最安全方法是在您的应用程序中接收通知并将其丢弃,不向用户B显示任何内容.为了知道何时丢弃收到的通知,您可以将用户属性添加到通知数据中,并将用户名作为其值.在应用程序中处理通知时,请在显示通知之前检查用户属性是否与登录用户匹配.
总结以上是内存溢出为你收集整理的android – 带登录系统的GCM全部内容,希望文章能够帮你解决android – 带登录系统的GCM所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)