Идентификатор регистрации устройства / токен устройства не генерируется
Я пытаюсь работать с GCM(Google Cloud Messaging) для push-уведомлений, я пробовал с примером приложения, оно отлично работает на моем устройстве, а Device Id/Token генерирует и может отправлять уведомления.
Если я попробую то же самое приложение с другим приложением устройства, запущенного, но Идентификатор устройства / Регистрационный номер устройства не генерируется.
Я не знаю, где я делаю ошибку, нужна помощь, чтобы понять это.
Заранее спасибо.
Вот мой фрагмент кода
public void onCreate(){
super.onCreate();
final String preferences = getString(R.string.preferences);
savedValues = getSharedPreferences(preferences, Context.MODE_PRIVATE);
// In later versions multi_process is no longer the default
if(VERSION.SDK_INT > 9){
savedValues = getSharedPreferences(preferences, Context.MODE_MULTI_PROCESS);
}
gcm = GoogleCloudMessaging.getInstance(getBaseContext());
SharedPreferences savedValues = PreferenceManager.getDefaultSharedPreferences(this);
if(savedValues.getBoolean(getString(R.string.first_launch), true)){
register();
SharedPreferences.Editor editor = savedValues.edit();
editor.putBoolean(getString(R.string.first_launch), false);
editor.commit();
}
// Let AndroidMobilePushApp know we have just initialized and there may be stored messages
sendToApp(new Bundle(), this);
}
а затем мой метод регистрации,
private void register() {
new AsyncTask<Object, Object, Object>(){
protected Object doInBackground(final Object... params) {
String token;
try {
token = gcm.register(getString(R.string.project_number));
Log.i("registrationId", token);
}
catch (IOException e) {
Log.i("Registration Error", e.getMessage());
}
return true;
}
}.execute(null, null, null);
}
1 ответ
На каком устройстве вы тестируете? Если это до 4.0.4, то вы должны войти в систему с какой-либо учетной записью Google. См. Для справки: Почему для работы GCM на устройствах ниже 4.0.4 требуется логин аккаунта Google?
Также проверьте, установлены ли на устройстве службы Google Play.
Проверьте в Android манифест, если пакет приложения такой же, как в широковещательном приемнике, который вы зарегистрировали.