Устройство получает намерение РЕГИСТРАЦИЯ всякий раз, когда я отправляю ему сообщение C2DM, а не намерение ПОЛУЧИТЬ - PullRequest
0 голосов
/ 02 апреля 2012

У меня есть настройка C2DM, следуя всем интерактивным документам и учебникам. Мое устройство успешно регистрируется и сохраняет регистрационный идентификатор.

Когда я запрашиваю регистрацию, устройство получает намерение com.google.android.c2dm.intent.REGISTER.

Затем я передаю этот регистрационный идентификатор моему серверу и отправляю ему сообщение C2DM, которое успешно завершается, возвращая идентификатор сообщения.

Теперь проблема в том, что после отправки сообщения устройство получает намерение com.google.android.c2dm.intent.REGISTER, а НЕ намерение com.google.android.c2dm.intent.RECEIVE.

У этого намерения есть ДОПОЛНИТЕЛЬНО EXTRA_UNR номенклатуры - поэтому внутри handleRegistration () оно затем очищает регистрационный идентификатор.

Я не могу понять это ради своей жизни. Мой код практически идентичен демонстрационной версии ChromeToPhone.

1 Ответ

0 голосов
/ 03 апреля 2012

Я думаю, что это могло быть вызвано проблемой в AndroidManifest.xml - несмотря на то, что проверял это 20 раз.

у меня было

<permission android:name="co.sample.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="co.sample.c2dm.permission.C2D_MESSAGE" />

Обратите внимание, что имя разрешения не совпадает. Имейте в виду, что многие функции C2DM могут работать и работать странным образом с небольшими проблемами Manifest.

...