Android GCM SERVICE_NOT_AVAILABLE

Я пытался установить этот пример: https://code.google.com/p/gcm/source/browse/#git%2Fgcm-client и работает.

Проект GoogleAPI был успешно создан в соответствии с руководством: http://developer.android.com/google/gcm/gs.html

Однако у меня есть следующая проблема: на некоторых устройствах я получаю SERVICE_NOT_AVAILABLE, несмотря ни на что.

W/System.err: java.io.IOException: SERVICE_NOT_AVAILABLE W/System.err: at com.google.android.gms.gcm.GoogleCloudMessaging.register(Неизвестный источник)

Некоторые статистические данные:

  • Nexus 7, android 4.2.2: пример GCM отлично работает
  • Nexus 4, android 4.2: пример GCM отлично работает
  • Nexus S, android 4.2.2: пример GCM отлично работает
  • Samsung Galaxy 3: SERVICE_NOT_AVAILABLE в 100% случаях
  • Samsung Galaxy, android 2.3.6: SERVICE_NOT_AVAILABLE в 100% случаях
  • Motorola Xoom, android 4.1.2: SERVICE_NOT_AVAILABLE в 100% случаях
  • HTC Desire HD, android 2.3: SERVICE_NOT_AVAILABLE в 100% случаях

Это тот же код, тот же файл apk, различные учетные записи google. Я попытался вернуться к методам GCMRegistrar, и они действительно работают. Поэтому возникает вопрос: являются ли новые методы GCM в виде беты? Как заставить их работать на других устройствах, а не только на "чистых" устройствах Google Android?

Обновление: На самом деле я нашел решение здесь

Ответ 1

Иногда это происходило из-за синхронизации времени с GCM. Пожалуйста, взгляните на время, если оно будет правильным. Если возможно, тогда reset.

Еще две вещи, которые нужно проверить, если вы используете эмулятор, пожалуйста, убедитесь, что у вас есть google api, работающий на эмуляторе. и второй gcm.jar включен в ваш проект.

Ответ 2

Проверьте, что телефон имеет активное сетевое подключение. У меня была эта проблема, и я понял, что мое тестовое устройство отключено от Wi-Fi:)

Ответ 3

Это супер глупо, но у меня есть одна и та же ошибка, потому что у меня есть опция "ограничить фоновые данные приложения" для сервисов google на моем xperia)