1

我正在开发一个使用 Google Cloud Messaging 使用推送通知来通知 android 应用程序的项目。我已经用 PHP 实现了应用程序服务器。当我运行 android 应用程序时,设备从 GCM 服务器获取注册 ID,并将注册 ID 发送到 PHP 服务器(应用程序服务器)。但我从服务器得到以下 httpresponse :

{
    "multicast_id": 7015234441922271670,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [{
        "message_id": "0:1344007383866721%2adac3a0ad8b3148"
    }]
}

但消息未传递到设备。任何建议请。

如果有人有上述问题,请检查下面它可能对你有帮助

最后我找到了解决方案在服务器端,只要应用程序表现良好,一切都应该正常工作。但是,如果应用程序中的错误触发同一设备的多个注册,则可能很难协调状态,并且您最终可能会收到重复的消息。

GCM 提供了一种称为“规范注册 ID”的工具,可以轻松地从这些情况中恢复。规范注册 ID 定义为您的应用程序请求的最后一次注册的 ID。这是服务器在向设备发送消息时应使用的 ID。

如果稍后您尝试使用不同的注册 ID 发送消息,GCM 将照常处理请求,但它将在响应的 registration_id 字段中包含规范注册 ID。确保使用此规范 ID 替换存储在您服务器中的注册 ID,因为最终您使用的 ID 将停止工作。

4

2 回答 2

3

如果有人有上述问题,请检查下面它可能对你有帮助

最后我找到了解决方案在服务器端,只要应用程序表现良好,一切都应该正常工作。但是,如果应用程序中的错误触发同一设备的多个注册,则可能很难协调状态,并且您最终可能会收到重复的消息。

GCM 提供了一种称为“规范注册 ID”的工具,可以轻松地从这些情况中恢复。规范注册 ID 定义为您的应用程序请求的最后一次注册的 ID。这是服务器在向设备发送消息时应使用的 ID。

如果稍后您尝试使用不同的注册 ID 发送消息,GCM 将照常处理请求,但它将在响应的 registration_id 字段中包含规范注册 ID。确保使用此规范 ID 替换存储在您服务器中的注册 ID,因为最终您使用的 ID 将停止工作。

于 2013-05-03T12:02:10.710 回答
0

这可以帮助您PushNotification使用您的包名 检查您Androidmanifest.xml的 GCM 通知

 <uses-permission android:name="yourpackege.permission.C2D_MESSAGE" />

    <receiver
            android:name="com.google.android.gcm.GCMBroadcastReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>

                <!-- Receives the actual messages. -->
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                <!-- Receives the registration id. -->
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
                <category android:name="yourpackege" />
            </intent-filter>
        </receiver>
于 2013-04-16T09:44:13.517 回答