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>