2012-06-14 2 views
0

Пытается внедрить службу Google C2DM.Служба c2dm для Android

registrationIntent.putExtra("app", PendingIntent.getBroadcast(context,0,new Intent(), 0)); 
registrationIntent.putExtra("sender","[email protected]"); 
context.startService(registrationIntent); 

Практически каждый учебник имеет эту строку кода. Является ли это службой, которую я должен кодировать? или Android знает, как справиться с этим типом намерений. Я вызываю этот метод из класса-помощника со стандартным конструктором. Я передаю текущий контекст этому методу, чтобы создать Интенсивность регистрации. У кого-нибудь есть представление о том, как это работает или куда моя программа пойдет?

ответ

0

Нет, вам не нужно писать услугу. Вам нужно отправить намерение в службу Google. Вы опустили первую строку, в которой создано намерение, и которое содержит имя службы. Обычно это что-то вроде этого:

Intent registrationIntent = новое намерение ("com.google.android.c2dm.intent.REGISTER");

В строке com.google.android.c2dm.intent.REGISTER указан сервис Google.

Теперь вам все равно нужно написать широковещательный приемник, который получит результат регистрации (идентификатор или ошибка). И приемник для приема фактических сообщений C2DM.

+0

Я знаю, что пропустил первую строчку. Был в надежде найти кого-то знакомого с c2dm ... как кажется. Является ли служба Google в Android 2.2 API? или мне нужно вытащить его из другого места? –

+0

Он присутствует в Android 2.2 и выше, за исключением некоторых экстремальных настроек. –

+0

Дополнение: на устройствах, таких как Kindle Fire и Nook Tablet, он, вероятно, не будет присутствовать. Те поставщики (Amazon и B & N) изо всех сил пытаются избавиться от всякой запутанности облачными сервисами Google. –

0

Вы оставили из наиболее интересный кусок кода

Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER"); 

Является ли это сервис, который я должен закодировать? или Android знает, как справиться с этим типом намерений.

Обратите внимание, что цель находится в домене com.google.android.c2dm. Реализация Android C2DM на устройстве знает, как справиться с этим намерением, и вы начнете свой собственный сервис для его обработки.

+0

Отличное спасибо. Я знаю о первой строке, не думал, что это будет важно, поскольку я нацелен на членов, знакомых с c2dm. Является ли реализация c2dm всегда на устройстве, если она равна V2.2 и выше? или мне нужно вытащить каталог c2dm откуда-нибудь? –

+0

@ Ryan Grey: Служба _C2DM_ в комплекте с _Android Market_, поскольку некоторые (не помнят, какая) версия вам не нужна (и не может) вытащить ее из другого места. –

Смежные вопросы