Intereting Posts
Как проверить, включен ли режим экономии батареи на Android <5.0? Android: рекомендации AsyncTask: частный класс или открытый класс? Как установить высоту gridview программно андроида Интерфейс входа в facebook исчезает вскоре после загрузки Как изменить цвет края прокрутки и пролить свет Как обернуть текстовый контент в ActionBarSherlock навигация GetColorStateList устарел Google Play Services требуется, но Google Play (рынок) не установлен .. что делать? Использование пользовательского представления для пунктов меню переполнения Расширяемый список просмотра setOnChildClickListener не работает Изменение вида в AsyncTask doInBackground () не исключает (всегда) исключение Сбой приложения Android на addAccountExplicitly (учетная запись, пароль, null); Каковы наилучшие методы создания приложения чата в android Откройте «Добавить контактный экран» с уже установленными именами Проблемы с использованием android Wi-Fi Direct API: mChannel = mManager.initialize ()

Com.google.android.c2dm.intent.RECEIVE все еще используется?

Я видел, что сама c2dm устарела. Но новый метод Google Cloud Messaging, похоже, отправляет намерения с com.google.android.c2dm.intent.RECEIVE в качестве действия.

Мой код использует это, чтобы получить ключ регистрации:

gcm = GoogleCloudMessaging.getInstance(getApplicationContext()); gcm.register(SENDER_ID); 

Все поступает правильно, но мне интересно, оставил ли я что-то в полугосударственном состоянии.

Да, com.google.android.c2dm.intent.RECEIVE все еще используется. Он используется при получении широковещательной передачи с сервера GCM, который содержит сообщение GCM. Несмотря на то, что C2DM долгое время не рекомендуется, GCM по-прежнему использует некоторые имена, содержащие c2dm .

Как вы можете видеть в этом примере манифеста (взято из руководства GCM ), есть несколько мест, которые все еще используют имена, содержащие c2dm или C2D :

 <manifest package="com.example.gcm" ...> ... <permission android:name="com.example.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" /> <uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" /> <application ...> <receiver android:name=".GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcm" /> </intent-filter> </receiver> <service android:name=".GcmIntentService" /> </application> 

Что касается декларации Получателя

  <receiver android:name=".GcmBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcm" /> </intent-filter> </receiver> 

Google предложил заменить BroadcastReceiver com.google.android.gms.gcm.GcmReceiver, как показано ниже.

 <receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="com.example.gcm" /> </intent-filter> </receiver>