2012-10-07 3 views
3

Я пытаюсь создать приложение для работы с GCM, но каждый раз, когда я получаю ошибку phone_registration_error согласно документации GCM эта ошибка означает:GCM phone_registration_error

Incorrect phone registration with Google. 
This phone doesn't currently support GCM. 

Но я не понимаю, почему мой это не поддерживается, я испытал это на реальном устройстве Android и эмулятор с Google API,

Мой MainActivity:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    checkNotNull(SENDER_ID, "SENDER_ID"); 

    GCMRegistrar.checkDevice(this); 
    GCMRegistrar.checkManifest(this); 

    final String regId = GCMRegistrar.getRegistrationId(this); 
    Log.i(TAG, "registration id ===== "+regId); 
    if(regId.equals("")){ 
     GCMRegistrar.register(this, SENDER_ID); 

    } else { 
     Log.v(TAG, "Already Registred"); 
    } 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

} 

и мой манифест:

Manifest on pastebin

+0

Какая версия Android работает на телефоне? – Givi

+0

попробуйте использовать приложение на другом устройстве с более высокой версией Android и не все подразделения поддерживают Google Apis. Если вы запустите эмулятор, просто создайте версию для Android с эмулятором gois apis и создайте учетную запись google на этом эмуляторе. Это необходимо для работы с GCM. – JunR

+0

На реальном устройстве я запускаю 2.3.4, а эмулятор работает 2.2, и у эмулятора есть учетная запись google. –

ответ

2

GCM работает только на устройствах, работающих под управлением Android 2.2 или более поздней версии. Также GCM работает только в том случае, если для устройства установлена ​​учетная запись google. Это также является причиной того, что Google рекомендует использовать <uses-permission android:name="android.permission.GET_ACCOUNTS" /> в манифесте, поэтому вы уверены, что у устройства есть учетная запись google.

+1

Часть о «GCM работает только если для вашей учетной записи установлена ​​учетная запись google »больше не верна в последних версиях Android. –

1

У меня была такая же проблема, и после многих сеансов в Интернете в течение многих дней я заметил это в группах google (https://groups.google.com/forum/#!topic/cerberus-support-forum/eJxOsYqkTxo) и попробовал, и он работал безупречно для меня.

С вашей учетной записью Google что-то не так. Пожалуйста, попробуйте следующее:

  • Перейдите в раздел Настройки -> Приложения -> Управление приложениями -> Все

или

Перейти в раздел Настройки -> Apps-> Все (на более новых версиях)

  • Выберите "Очистить данные" для "Google Play услуги" и "рамки услуг Google"
  • Reboot телефон

Затем проверьте идентификатор GCM из своего приложения.

Если он по-прежнему не работает, удалите все ваши учетные записи google с телефона и перезагрузите телефон и добавьте учетную запись еще раз.

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

Надеется, что это помогает !!

0

Я посмотрел ваш манифест, и вы забыли передать метаданные служб GooglePlay.

  1. Проверьте, если вы связали библиотеки услуг GooglePlay к вашему проекту

  2. Попробуйте добавить это в вашем

<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>

Это хорошо работает для меня.

Затем перекомпилируйте и повторите попытку.Надеюсь, поможет.

Смежные вопросы