gpt4 book ai didi

android - GCMRegistrar.getRegistrationId(this) 始终返回空字符串,即使在成功调用注册之后也是如此

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:48:44 25 4
gpt4 key购买 nike

我正在实现 GCM - 我做的第一件事是调用 GCMRegistrar.getRegistrationId 以查看设备是否已注册。它不是(返回空字符串),所以我对 GCMRegistrar.register 进行异步调用。正如预期的那样,我的 Intent 服务(派生自 GCMBaseIntentService)调用了它的 onRegistered() 方法,以及一个 token ,我的服务器可以使用该 token 向该设备发送 GCM 消息。到目前为止,还不错。

但是,下次我运行该应用程序时,我希望第一次调用 GCMRegistrar.getRegistrationId 时返回我在 Intent 服务的 onRegistered 函数中返回的 token 。但是我又得到了空字符串。我认为 GCM 客户端库 (gcm.jar) 会将 GCM 注册 ID( token )保存到私有(private) SharedPreferences 对象——事实上,GCMRegistrar 类 (http://developer.android.com/guide/google/gcm/client-javadoc/com/google/android/gcm/GCMRegistrar.html) 的文档指出“注意:此类使用用于跟踪注册 token 的私有(private) SharedPreferences 对象”

我没有注销设备、卸载应用程序或更新版本代码。有什么想法我想念的吗?谢谢

注意——这个问题已经发布在 android-gcm 标签下的谷歌群组中。网址在这里:

https://groups.google.com/forum/#!topic/android-gcm/4FPqZLzlvE4

Mark Murphy(一名下议院专家)对问题的初步诊断提供了真正的帮助,但没有具体浮出水面

更新编辑 - 这是我的 AndroidManifest.xml 的相关部分

    <receiver android:name=".push.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.myapp.package.name" />
</intent-filter>
</receiver>

<service android:name=".push.GCMIntentService" />

最佳答案

*"category android:name="写下你的完整包名"/>"*

像上面一样在 list 中提供您的包裹。

关于android - GCMRegistrar.getRegistrationId(this) 始终返回空字符串,即使在成功调用注册之后也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12075735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com