Я пытаюсь установить идентификатор отправителя проекта динамически, извлекая его с сервера, но он выдает исключение из-за неправильного идентификатора отправителя. Я собираю идентификатор отправителя с сервера в базовом классе Application, чтобы убедиться, что я его до запуска приложения, и я также переопределил метод getSenderIds() в GCMIntentService.Динамическая настройка SENDER_ID в GCM
public GCMIntentService() {
super();
}
@Override
protected String[] getSenderIds(Context context) {
String[] ids = new String[1];
ids[0] = SENDER_ID;
return ids;
}
Но я получаю исключение исключительного идентификатора отправителя. Я был бы очень признателен, если бы кто-нибудь мог дать мне обоснованное мнение о том, как установить идентификатор отправителя с помощью динамического с сервера.
Когда вы получаете это исключение? Из того, что я вижу в коде GCMBaseIntentService, метод getSenderIds используется только при повторной попытке зарегистрироваться в GCM после сбоя. Это не влияет на код, в котором вы первоначально регистрировались в GCM. Используете ли вы одинаковый идентификатор отправителя в обоих местах? – Eran
Да, я использую один и тот же идентификатор где угодно. Конструктор GCMIntentService использует идентификатор отправителя. Thats где исключение бросается. Я использую пустой конструктор super(), потому что в java-документе говорится, что вы должны использовать его для динамических идентификаторов. –