Как мы получаем регистрационный идентификатор из c2dm (Android)?

#android #android-c2dm

#Android #android-c2dm

Вопрос:

Как получить регистрационный идентификатор в приложениях Android?

Ответ №1:

Из документации C2DM

Это последовательность событий, которая происходит, когда приложение Android, запущенное на мобильном устройстве, регистрируется для получения сообщений:

  • В первый раз, когда приложению необходимо использовать службу обмена сообщениями, оно отправляет намерение регистрации на сервер C2DM. Это намерение регистрации (com.google.android.c2dm.intent.РЕГИСТРАЦИЯ) включает идентификатор отправителя (то есть учетную запись, авторизованную для отправки сообщений в приложение, которая обычно является адресом электронной почты учетной записи, созданной разработчиком приложения) и идентификатор приложения.

  • Если регистрация прошла успешно, сервер C2DM передает намерение РЕГИСТРАЦИИ, которое присваивает приложению регистрационный идентификатор. Приложение должно сохранить этот идентификатор для последующего использования. Обратите внимание, что Google может периодически обновлять регистрационный идентификатор, поэтому вам следует разрабатывать свое приложение с учетом того, что намерение РЕГИСТРАЦИИ может вызываться несколько раз. Ваше приложение должно быть в состоянии реагировать соответствующим образом.

  • Для завершения регистрации приложение отправляет регистрационный идентификатор на сервер приложений. Сервер приложений обычно сохраняет регистрационный идентификатор в базе данных. Регистрационный идентификатор сохраняется до тех пор, пока приложение явно не отменит регистрацию само себя или пока Google не обновит регистрационный идентификатор для вашего приложения.

Ответ №2:

Вот ссылка на страницу C2DM. http://code.google.com/android/c2dm/index.html#registering

Внизу страницы есть ссылки на пример приложения, которое использует C2DM.

По сути, вам нужно объявить получателя, чтобы получить registration_id от Google, а затем отправить запрос на регистрацию следующим образом:

 Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); // boilerplate
registrationIntent.putExtra("sender", emailOfSender);
startService(registrationIntent);