を受け取ったアプリ(com.example.myapp
)をインストールしましたC2DM
Intent
。Intent
これに便乗して、別のアプリでこれらに応答して独自の処理を実行したいと思います( com.example.myapp2
)。この回答によると、C2DM
クライアントシステムは以下を探します。
インテントの放送受信機:
com.google.android.c2dm.intent.REGISTRATION
それには許可があります:
.permission.C2D_MESSAGE
元のアプリでは、C2DMドキュメントで指定されているように、次の権限が定義されて使用されています
<!-- Only this application can receive the messages and registration result -->
<permission android:name="com.example.myapp.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.example.myapp.permission.C2D_MESSAGE" />
これはcom.example.myapp2
のマニフェストであり、その中で私はその許可も使用します。
<manifest package="com.example.myapp2" ...>
<!-- Only this application can receive the messages and registration result -->
<uses-permission android:name="com.example.myapp.permission.C2D_MESSAGE" />
<!-- This app has permission to register and receive message -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- Send the registration id to the server -->
<uses-permission android:name="android.permission.INTERNET" />
<application...>
<!-- Only C2DM servers can send messages for the app. If permission is not set - any other app can generate it -->
<receiver android:name=".C2DMReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<!-- Receive the actual message -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.example.myapp" />
<category android:name="com.example.myapp2" />
</intent-filter>
</receiver>
...
</application>
...
</manifest>
私C2DMReceiver
はcom.example.myapp2.C2DMReceiver
です。com.google.android.c2dm.intent.REGISTRATION
Intent
登録は気にしないので、sをリッスンしていないことに注意してください。私はすでに受信しているIntent
sを受信することだけを気にします。com.example.myapp
私IntentFilter
のforsでは、aがどのように見えるかについて正確に特定されていないため、とsのcom.google.android.c2dm.intent.RECEIVE
Intent
両方をフィルタリングします。どんな助けでもいただければ幸いです。com.example.myapp
com.example.myapp2
category
C2DM
C2DM
Intent
許可com.example.myapp2
があることを確認しました。com.example.myapp.permission.C2D_MESSAGE
デバッグキーを使用して実行する場合は持っていませんが、リリースキーを使用して実行する場合は持っています。明らかに、リリースキーを使用してデバイスでバージョンを実行しています。
受け取ったときcom.example.myapp
は受け取りC2DM
Intent
com.example.myapp2
ません。デバッグする方法やこれを機能させる方法についてのアイデアはありますか?それも可能ですか?