2

По какой-то причине использование «GCMRegistrar.register (this, SENDER_ID)»; работает с 4.0 + устройствами. Однако он застрял в следующем сообщении, не получая больше уведомления GCM от Google.GCM застрял на регистре на 2.3.3 Прямоугольное устройство

«Регистрация приложения (мой пакет) отправителей (мой апи #)»

1) манифест и приемник должен быть правильным, так как он работает на 4.2.1.

2) У меня есть Google Play и связанные с Google учетной записи на устройстве 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