web-dev-qa-db-ja.com

com.google.Android.c2dm.intent.RECEIVEはまだ使用されていますか?

私はc2dm自体が非推奨であることを見てきました。しかし、新しいメソッドであるGoogleクラウドメッセージングは​​、アクションとしてcom.google.Android.c2dm.intent.RECEIVEを使用してインテントを送信するようです。

私のコードはこれを使用して登録キーを取得しています:

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

物事は正しく到着していますが、何かを非推奨の状態のままにしていたのではないかと思っています。

11
Carlos

はい、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>
14
Eran

受信者宣言も

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

com.google.Android.c2dm.intent.RECEIVEは、firebaseクラウドメッセージングでも使用されます

0
hari