我com.example.myapp
安装了一个收到C2DM
Intent
s 的应用程序 ( )。我想借助它来执行我自己的处理,以Intent
在单独的应用程序 ( com.example.myapp2
) 中响应这些 s。根据this answer,C2DM
客户端系统寻找:
Intent 的广播接收器:
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
的 for com.google.android.c2dm.intent.RECEIVE
Intent
s 中,我过滤了两者com.example.myapp
和com.example.myapp2
category
s,因为C2DM
并没有具体说明 a 的C2DM
Intent
外观。任何帮助将不胜感激。
我已经验证com.example.myapp2
有com.example.myapp.permission.C2D_MESSAGE
权限。如果我使用调试密钥运行,我没有它,但如果我使用释放密钥运行,我有它。显然,我正在使用发布密钥在我的设备上运行该版本。
当com.example.myapp
收到一个C2DM
Intent
com.example.myapp2
不收到它。关于如何调试或如何使其工作的任何想法?甚至可能吗?