android - 从未调用 gcm.unregister() 时出现意外的 gcm 未注册消息

标签 android push-notification google-cloud-messaging

这只发生在我的 Kyocera Rise 上。我有一个依赖 GCM 在手机之间进行通信的应用程序。我的 Nexus 4 和 HTC One X 之间的通信工作正常,每当我发送推送通知时,两部手机都会通过 com.google.android.c2dm.intent.RECEIVE 操作接收 Intent 。然而,在 Kyocera Rise 上运行完全相同的代码会产生完全不同的结果:每当我向其发送推送通知时,收到的 Intent 都会包含带有“未注册”额外参数的操作 com.google.android.c2dm.intent.REGISTRATION。即使我在它成功注册 Google 后的几秒钟内向它发送推送通知(我必须成功检索用于推送的设备 ID),结果也是一条未注册的消息。为什么?

编辑:这是正在发生的事情的更清晰的图片。 我的所有其他手机:我注册手机 -> 我发送推送通知 -> 手机接收 com.google.android.c2dm.intent.RECEIVE Intent 以及消息附加内容

Kyrocera Rise:我注册手机 -> 我等待任意时间(无论是 0 秒还是 5 分钟,都不会收到一条推送通知) -> 我发送推送通知 ->手机立即接收带有“未注册”额外参数的 com.google.android.c2dm.intent.REGISTRATION Intent

编辑2: list 的相关部分:

<receiver
    android:name="edu.neu.madcourse.wanfunglee.comm.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="edu.neu.madcourse.wanfunglee.comm" />
    </intent-filter>
</receiver>

<meta-data
    android:name="com.google.android.gms.version"
    android:value="4242000" />
</application>

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="edu.neu.madcourse.wanfunglee.comm.permission.C2D_MESSAGE" />

最佳答案

确保应用程序的主包在 C2D_MESSAGE 权限的 list 中以及 GCM 广播接收器的类别中使用。

关于android - 从未调用 gcm.unregister() 时出现意外的 gcm 未注册消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798475/

相关文章:

android - Gmail 登录在 android 中

java - 使用 Firebase 和 Android 的通知

ios - React Native Ios 推送通知不起作用

android - GCMRegistrar.getRegistrationId(context) 无法获取设备 ID

Android 设备未从 Amazon SNS 接收 GCM 通知

android - Android Wear 2.0有自己的GCM/FCM注册ID吗?

android - 无法在我的国家使用 GCM

java - Android SDK]加载SDK时出错: Error: Error parsing C:\Users\Atul Rai\android-sdks\system-images\android-22\

android - 在关闭之前更改 DialogFragment 进入/退出转换

android - 如何找到androidx.browser :browser version?