2

出于某种原因,使用“GCMRegistrar.register(this,SENDER_ID);”适用于4.0+设备。 但是,它停留在以下消息中,未收到Google的GCM通知。GCM卡在2.3.3上的寄存器上姜饼设备

注册应用发件人(我的包),(我的API#)

1),因为它的工作4.2.1清单和接收器应该是正确的。

2)我有谷歌播放和

...我已经寻找好几天,但没有找到答案2.3.3设备上与谷歌帐户链接。 任何人都知道什么是错的或有相同的问题?

谢谢

回答

10

我发现这只是因为我没有正确设置接收器的类别。

因为我把我所有的源代码放在一个库项目中,并引用它与每个单独的应用程序,我需要重命名清单中的3个不同的地方。

1)

<permission 
     android:name="digital.dispatch.mobilebooker.base.permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

<permission 
     android:name="digital.dispatch.mobilebooker.(my app name).permission.C2D_MESSAGE" 
     android:protectionLevel="signature" /> 

2)

<uses-permission 
     android:name="digital.dispatch.mobilebooker.base.permission.C2D_MESSAGE" /> 

3)

<category android:name="digital.dispatch.mobilebooker.base" /> 

<category android:name="digital.dispatch.mobilebooker.(my app name)" /> 

为什么它在4.0 +设备工作的原因是因为我只是做了前两个,但不是3)。 由于4.0+设备不关心接收者的类别,因此它工作正常。 但是,当我在2.3.3设备上进行测试时,该类别实际上很重要,导致它没有收到任何响应。

希望这可以帮助其他任何遇到相同情况的人。

+0

感谢您提交您自己的解决方案。我有同样的问题! – Tom

+0

我的问题在范畴内。 – Yar