没有从gcm获取android推送通知消息

时间:2013-09-22 21:28:50

标签: android notifications push-notification google-cloud-messaging

我正在开发一个使用GCM推送通知的Android应用程序(一步一步:http://developer.android.com/google/gcm/index.html),但并非所有设备都从GCM服务器获取通知。

我调试了它,我看到我的3d-party服务器成功发送了消息。

当我发送到我的Galaxy-S4设备时,我收到了通知,但在我的Galaxy-S2中,我没有收到通知。

的AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

<permission android:name="com.example.gcm.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />

<receiver
        android:name=".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" />
            <category android:name="com.freco" />
        </intent-filter>
    </receiver>
    <service android:name=".gcm.GcmIntentService" />

我认为其他代码在这里没有必要,因为它在Galaxy-S4中运行良好。

你觉得怎么样?

2 个答案:

答案 0 :(得分:1)

你的app,com.freco(在广播接收器的类别中定义)或com.example.gcm(在你的权限中定义)的包是什么?

您应该在两个地方使用应用的包名称。出于某种原因,这种不匹配只会导致较旧的Android版本出现问题。较新的版本无论如何都可以。

答案 1 :(得分:0)

看起来像是复制粘贴错误。在您的清单中,将com.example更改为您的实际包名称