/ / Czy com.google.android.c2dm.intent.RECEIVE jest nadal używany? - Android, zamiar androida, powiadomienie push, wiadomości z chmury Google

Czy com.google.android.c2dm.intent.RECEIVE jest nadal używany? - Android, intencja Android, powiadomienia push, Google-cloud-messaging

Widziałem, że sam c2dm jest przestarzały, ale nowa metoda, Google Cloud Messaging, wydaje się wysyłać zamiary za pomocą com.google.android.c2dm.intent.RECEIVE jak akcja.

Mój kod używa tego do uzyskania klucza rejestracyjnego:

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

Rzeczy przychodzą prawidłowo, ale zastanawiam się, czy nie zostawiłem czegoś w stanie pół-przestarzałym.

Odpowiedzi:

8 dla odpowiedzi № 1

Tak, com.google.android.c2dm.intent.RECEIVE jest nadal w użyciu. Jest używany podczas odbierania transmisji z serwera GCM, który zawiera komunikat GCM. Mimo że C2DM jest już nieaktualny, GCM nadal używa niektórych nazw, które zawierają c2dm.

Jak widać w tej manifestowanej próbce (pobranej z Przewodnik GCM), istnieje wiele miejsc, które nadal używają nazw zawierających c2dm lub 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>


2 dla odpowiedzi nr 2

Jeśli chodzi o deklarację odbiorcy

    <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 zasugerował zastąpienie odbiornika BroadcastReceiver com.google.android.gms.gcm.GcmReceiver, jak poniżej.

<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>