2015-06-09 4 views
2

Когда я пытаюсь получить InstanceID из GCM за the doc, Android Studio жалуется на отсутствие параметра контекста. В документации это не упоминается. Как это разрешить? Должен ли я просто передать контекст как таковой:Android GCM get instance id error

String iid = InstanceID.getInstance(this).getID(); 
+0

Ваш объект призывающую указанного метода 'context' или подкласс таких как' Activity'? – ianhanniballake

+0

@ ianhanniballake Документы говорят, что String iid = InstanceID.getInstance(). GetID(); но AS хочет передать Context. Я вызываю это из Activity и хочу отправить его в backend после успешного получения идентификатора экземпляра с серверов GCM. Надеюсь, я поняла. –

ответ

1

Да, согласно InstanceID Javadoc, вы должны пройти Context к InstanceID.getInstance() - будь то ваша деятельность или другой контекст.

+0

Я зарегистрировал ошибку с командой документации, чтобы обновить документы. – ianhanniballake

+0

Примечание: [документация] (https://developers.google.com/instance-id/guides/android-implementation) теперь обновлена, чтобы отразить, что вы должны передать «Контекст». – ianhanniballake

0

Попробуйте

try { 
      InstanceID instanceID = InstanceID 
        .getInstance(getApplicationContext()); 
      token = instanceID.getToken(ApplicationConstants.SENDER_ID, 
        GoogleCloudMessaging.INSTANCE_ID_SCOPE, null); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     }  
+1

Я пробовал это, и я получаю: java.io.IOException: MISSING_INSTANCEID_SERVICE. Какие-либо предложения? – bashan

+1

В этом коде вы видите ApplicationConstants.SENDER_ID, это ваш номер проекта из консоли разработчика, который вы сначала создаете ключ api и номер проекта с консоли разработчика Google, он исправит это исключение. удачи –

+0

Спасибо, я уже сделал это, когда вопрос был задан. – bashan