这只发生在我的Kyocera上升的时候。我有一个应用程序,它依赖于GCM来在手机之间进行通信。我的Nexus 4和我的HTC之间的通信很好,每当我发送推送通知时,这两款手机都会接收到com.google.android.c2dm.intent.RECEIVE动作的意图。但是,在Kyocera上运行完全相同的代码会产生一个完全不同的结果:每当我向它发送推送通知时,接收到的意图就有带有“未注册”额外参数的动作com.google.android.c2dm.intent.REGISTRATION。即使我在成功地向Google注册之后的几秒钟内发送了一个推送通知(我必须成功地检索用于push的设备ID ),结果仍然是一条未注册的消息。为什么?
编辑:这是一个更清楚的图片,发生了什么。所有其他手机:我注册电话->,发送推送通知->电话接收消息附加的com.google.android.c2dm.intent.RECEIVE意图
上升:我注册电话->我等待任何时间(不管是0秒还是5分,都不会收到一个推送通知),->我发送推送通知->电话立即收到带有“未注册”附加参数的com.google.android.c2dm.intent.REGISTRATION意图
编辑2:清单的相关部分:
<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" />发布于 2014-04-02 01:38:48
确保应用程序的主包在C2D_MESSAGE权限中的清单和GCM广播接收器类别中使用。
https://stackoverflow.com/questions/22798475
复制相似问题