我的应用程序逻辑要求我检查这是一部新手机还是以前注册过的手机。因此,我使用:
GCMRegistrar.checkDevice(this);
regId = GCMRegistrar.getRegistrationId(this);
但是,我注意到有些时间返回null,但是当我重试它时工作正常。似乎 getRegistrationId 需要一段时间:
答案 0 :(得分:1)
GCM需要时间来处理。
可能是服务器关闭或与GCM或服务器或设备之间的连接问题有关的任何事情都发生了。
因此,最好从登录活动以及Launcher活动中调用GCM注册器,因为如果我们的设备由于上述任何原因而无法在启动阶段进行注册,那么它有机会再次注册设备。