Проблема в получении идентификатора токена в Android
Я знаю, что есть много вопросов по этому поводу, но я не мог найти решение по этим вопросам.
Я получаю ноль в токене от GCM. многие люди делали это, используя класс, но я делаю это в фоновом потоке в том же классе. Возвращает ноль в регистре.
OnCreate
if (checkPlayServices()) {
gcm = GoogleCloudMessaging.getInstance(this);
regid = getRegistrationId(context);
if (regid.isEmpty()) {
Log.e(TAG, "registering in background");
registerInBackground();
} else {
Log.e(TAG, "Notification Token : " + regid);
user.setNotificationToken(regid);
}
} else {
MyLog.i(TAG, "No valid Google Play Services APK found.");
}
RegisterInBackgroud (), если устройство не было зарегистрировано ранее.
private void registerInBackground() {
new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
String msg = "";
try {
Log.e(TAG, "doing in background");
if (gcm == null) {
gcm = GoogleCloudMessaging.getInstance(context);
}
if(gcm != null)
{
Log.e(TAG, "GCM is not null");
}
regid = gcm.register(SENDER_ID);
Log.e(TAG, "token id:" + regid);
msg = "Device registered, registration ID=" + regid;
storeRegistrationId(context, regid);
} catch (IOException ex) {
msg = "Error :" + ex.getMessage();
}
return msg;
}
}.execute(null, null, null);
}
Я попытался войти в него, ошибка, это показывает ноль в regId. в чем может быть проблема в этом?
1 ответ
Решение
Некоторые, как мой идентификатор приложения не работал. При воссоздании приложения на консоли google был создан новый идентификатор, который я использовал в своем проекте, и он начал работать.