GCM在2.3.3 Gingerbread设备上注册

Coo*_*Mon 2 android android-2.3-gingerbread google-cloud-messaging

出于某种原因,使用"GCMRegistrar.register(this,SENDER_ID);" 适用于4.0 +设备.但是,它仍然停留在以下消息,而不再收到来自Google的GCM通知.

" 注册发送者的应用程序(我的包裹)(我的api#) "

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

2)我在2.3.3设备上有谷歌播放并与谷歌帐户链接

我搜索了几天,但找不到答案.有人知道什么是错的或有同样的问题吗?

谢谢

Coo*_*Mon 10

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

由于我将所有源代码放在库项目中并使用每个单独的应用程序引用它,因此我需要重命名清单中的3个不同位置.

1)

<permission
        android:name="digital.dispatch.mobilebooker.base.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />
Run Code Online (Sandbox Code Playgroud)

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

2)

<uses-permission
        android:name="digital.dispatch.mobilebooker.base.permission.C2D_MESSAGE" />
Run Code Online (Sandbox Code Playgroud)

3)

<category android:name="digital.dispatch.mobilebooker.base" />
Run Code Online (Sandbox Code Playgroud)

   <category android:name="digital.dispatch.mobilebooker.(my app name)" />
Run Code Online (Sandbox Code Playgroud)

它在4.0 +设备中工作的原因是因为我只做了前两个而不是3个.由于4.0+设备不关心接收器的类别,它起作用.但是,当我在2.3.3设备上进行测试时,该类别实际上很重要并且导致它没有收到任何响应.

希望这将有助于遇到相同情况的任何其他人.