android – 两个不同的设备可以具有相同的GCM注册ID?

前端之家收集整理的这篇文章主要介绍了android – 两个不同的设备可以具有相同的GCM注册ID?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我一直在为我的 Android应用程序在GCM上工作.我注意到,几乎每次我的设备都有不同的GCM注册ID.在GCM注册ID上保留UNIQUE_KEY约束是否安全?并删除所有具有NotRegistered错误的ID,并更新所有的canonical_ids的ID?

解决方法

a registration ID is tied to a particular Android application running on a particular device.

(从GCM Overview)

两个不同的设备将始终具有不同的注册ID.即使在同一设备上的不同应用程序也有不同的注册码.

功能上,可以安全地在注册ID上保留UNIQUE_KEY约束,但是由于注册ID可能很长(高达4096字节,但实际上通常要短得多),因此某些数据库可能会阻止您在其上定义索引或约束一个大列.您可能想要使用将注册ID映射到较小值的单向散列函数,将该值存储在较小的列中,并在该列上具有约束/索引.

当您获得NotRegistered错误时,您应该从您的数据库删除注册ID(或至少标记它的状态表示它不活动,并停止发送消息).但是,如果应用程序将重新安装在早期卸载的设备上,则应用程序可以在向GCM重新注册时获得相同的注册ID,因此您的服务器应允许注册ID在某一时刻未注册才能生效再次.

当您在Google的响应中获得规范注册ID时,您应该更新旧的注册ID.

猜你在找的Android相关文章