Любой, кто делает C2DM на Android

Мне нужно реализовать c2dm в моем приложении. Есть ли кто-нибудь, кто это делает? Пожалуйста, помогите. Некоторые учебные пособия будут очень полезны или если вы завершили реализацию c2dm, то учебное пособие будет более чем оценено.

Пожалуйста помоги.

Я пошел вперед и загрузил исходный код Chrome2Phone для Android и понял, как он работает через этот пример, у меня было больше всего проблем с реализацией серверной части приложения.

Загрузите его с: http://code.google.com/p/chrometophone/source/checkout.

Или svn:

svn checkout http://chrometophone.googlecode.com/svn/trunk/ chrometophone-read-only 

Основные вещи, которые вы должны понимать.

В классе C2DMBaseReciever у вас есть:

 @Override public final void onHandleIntent(Intent intent) { try { Context context = getApplicationContext(); if (intent.getAction().equals(REGISTRATION_CALLBACK_INTENT)) { handleRegistration(context, intent); } else if (intent.getAction().equals(C2DM_INTENT)) { onMessage(context, intent); } else if (intent.getAction().equals(C2DM_RETRY)) { C2DMessaging.register(context, senderId); } } finally { // Release the power lock, so phone can get back to sleep. // The lock is reference counted by default, so multiple // messages are ok. // If the onMessage() needs to spawn a thread or do something else, // it should use it's own lock. mWakeLock.release(); } } 

Этот метод получает намерения от службы C2DM и обрабатывает их.

В методе handleRegistration вы увидите код, который выглядит так:

 } else { try { onRegistrered(context, registrationId); C2DMessaging.setRegistrationId(context, registrationId); //Add some code here to send your server the registration ID for this phone. } catch (IOException ex) { Log.e(TAG, "Registration error " + ex.getMessage()); } } 

Затем вам необходимо использовать службу входа в систему google oAuth для регистрации вашего сервера в службе, как только это будет сделано, вы можете отправить сообщение. Когда я тестировал, я использовал curl для отправки HTTP-сообщений на сервер.

Для регистрации с сервера:

 curl https://www.google.com/accounts/ClientLogin -d Email=theEmailYouWhitelisted -d Passwd=pass****word -d accountType=HOSTED_OR_GOOGLE -d source=Google-cURL-Example -d service=ac2dm 

Вы получите сообщение с идентификатором auth. Затем вы используете это для отправки сообщений. Чтобы отправить сообщение, используйте:

 curl --header "Authorization: GoogleLogin auth=**authFromRegistrationAbove**" "https://android.apis.google.com/c2dm/send" -d registration_id=**phoneRegistrationId(reciever)** -d "data.message=StringToPass" -d collapse_key=something -k 

Загрузить завиток из: CURL

Надеюсь это поможет.

Учебное пособие по регистрации / отправке / приему сообщений c2dm client / server.

http://android.arnodenhond.com/tutorials/cloud-to-device-messaging

  • Намерение запросить идентификатор регистрации
  • Приемник для получения идентификатора регистрации
  • Url для регистрации на сервере
  • Url для отправки сообщения
  • Широковещательный приемник для приема сообщения
Intereting Posts
Уведомления Android Remote View ListView повторно использует представления, когда … Я не хочу, чтобы он Преобразование изображений Base64 в android, приводящее к поврежденному изображению Масштабирование в андроиде – сохранение изображения в поле зрения Является ли Fuse Location Provider хорошим выбором? Измените локаль, но сохраните влево-вправо и другие ориентации телефона Событие Spinner OnclickListener выполняется дважды, как обрабатывать оба события Лучший способ иметь оверлей для масштабирования и панорамирования на Android? Android_asset не работает на Honeycomb? Как иметь EditText с границей в Android Lollipop Решенный цвет вместо идентификатора ресурса Какую коммуникацию между приложениями я должен выбрать? Listview с edittext – автоматический прокрутка на "следующий" Я прав насчет основных различий между деятельностью, сервисом и трансляцией на Android Специальные клавиши KeyEvent (например, немой)