2

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

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

当我发送到我的 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 中运行良好。

你觉得是什么?

4

2 回答 2

1

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

您应该在两个地方都使用应用程序的包名称。出于某种原因,这种不匹配只会在较旧的 Android 版本中引起问题。较新的版本可以两种方式工作。

于 2013-09-23T00:09:04.590 回答
0

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

于 2014-12-21T06:35:53.983 回答