2

我得到了一个第三方服务器的工作示例,可以将推送通知发送到在我使用的 Android 模拟器中完美运行的设备。一旦我尝试在我的真实设备(Samsung Galaxy S)上使用它,我就不再收到我的通知,即使我在谷歌服务器上重新注册了设备(因为我使用相同的 gmail 帐户)。我基本上不知道从哪里开始寻找,因为 Logcat 没有给我任何有趣的信息。该代码在模拟器设备中运行,所以我的猜测是开始查看权限规则。有任何想法吗?

我不知道这是否重要,但我正在使用 Ubuntu 10.10 进行开发/调试。

4

2 回答 2

4

您的 ROLE Account gmail ID 是否与手机上配置的 gmail ID 相同?我确实有这个问题。如果是这样,您可以尝试在手机上使用其他 gmail ID 吗?有关更多信息,请参阅

于 2011-04-15T15:48:45.873 回答
0

这可能是许可问题吗?您是否在清单中设置了正确的权限?也许模拟器在缺乏权限方面并不那么严格(我经历过,有时,有些设备可以工作而其他设备没有,我所缺少的只是一个清单权限)

你必须同时设置

 <permission
        android:name="your.packagename.permission.C2D_MESSAGE"
        android:protectionLevel="signature" />

<uses-permission android:name="your.packagename.matchtracker.permission.C2D_MESSAGE" />

在清单的主要部分并声明一个广播接收器

<receiver
            android:name=".push.RegistrationReceiver"
            android:permission="com.google.android.c2dm.permission.SEND" >
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.RECEIVE" />

                <category android:name="your.packagename" />
            </intent-filter>
            <intent-filter>
                <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

                <category android:name="your.packagename" />
            </intent-filter>
        </receiver>
于 2012-05-23T15:35:11.240 回答