我已为我的应用程序启用了推送,我的清单如下所示:
包名:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.norton.mobile"
android:versionCode="1"
android:versionName="1.0" >
我的收件人如下:
<receiver
android:name="com.pravaa.mobile.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receives the actual messages. -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.stanley.mobile" />
</intent-filter>
</receiver>
通过上述配置,我可以在任何具有OS&gt;的设备上成功接收通知。 4.1,但不在具有OS&lt;的设备上4.1。在将接收器类别配置修改为**<category android:name="com.norton.mobile" />**
时,即使在具有OS&lt; 1的设备上,我也能够成功地接收通知。 4.1。我确实理解文档说“com.google.android.c2dm.intent.RECEIVE的接收器,类别设置为applicationPackage。”但它如何适用于具有OS的设备&gt; 4.1虽然类别与applicationPackage不匹配。
有人知道这背后的原因吗?提前谢谢。
答案 0 :(得分:1)
也许您写了一个错误的类别名称,并且它的工作原因是OS 4.1上面不需要类别名称。
” 请注意,类别标记中的android:name必须替换为应用程序的包名称(并且针对minSdkVersion 16及更高版本的应用程序不需要类别标记。)
http://developer.android.com/google/gcm/helper.html#android-app “
答案 1 :(得分:0)
使用
确认您的配置<!-- GCM PERMISSIONS START -->
<permission
android:name="com.norton.mobile.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.norton.mobile.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<permission
android:name="com.norton.mobile.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.norton.mobile.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- GCM PERMISSIONS END -->
<!-- GCM RECEIVER And SERVICE START -->
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="com.google.android.c2dm.intent.GCM_RECEIVED_ACTION" />
<category android:name="com.norton.mobile" />
</intent-filter>
</receiver>
<service
android:name="com.norton.mobile.GCMIntentService"
android:enabled="true" />
<!-- GCM RECEIVER And SERVICE END -->