所以我一直在使用 Pubnub 和 GCM。尽管这个问题比 Pubnub 更具体于 GCM/Android。我有 2 个应用程序 - 一个是我自己的,另一个是 pubnub 的示例。
Pubnub list 的接收者标签:
<receiver
android:name="com.pubnub.pubnubexample.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>
我的应用程序的接收者标签:
<receiver
android:name="com.myapp.app.MyReceiver"
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>
显然,pubnub 示例应用程序的广播接收器确实被调用,但不是我的那个。他们都有这些uses-permission
:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
事实上我有更多。
当通过它发送通知时,我自己的应用程序的接收器没有被 GCM 调用,我可能做错了什么?我的期望是,因为它是广播,所以具有类似接收器的多个应用程序会收到它们?
注意:这在我的工作中并不是真正的要求,而是测试并试图理解这个概念是如何工作的。
最佳答案
我看到的一个问题是您的 AndroidManifest 文件中的类别标签必须更新为您的包名称。
<category android:name="com.myapp.app." />
关于android - GCM 广播接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27316455/