我有一个第三方服务器的工作示例,用于向设备发送推送通知,这完全适用于我使用的Android模拟器。一旦我尝试在我的真实设备(三星Galaxy S)上使用它,我就不再接收我的通知,即使很难我在谷歌服务器上重新注册设备(因为我使用相同的Gmail帐户)。我基本上不知道从哪里开始看,因为Logcat没有给我任何有趣的信息。代码在模拟器设备中工作,所以我的猜测是开始查看权限规则。有什么想法吗?
我不知道这是否重要,但我正在使用Ubuntu 10.10进行开发/调试。
答案 0 :(得分:4)
您的ROLE帐户是否与手机上配置的gmail ID相同?我确实遇到了这个问题。如果是这样,你可以尝试在手机上使用其他一些Gmail密码吗?有关详情,请参阅this。
答案 1 :(得分:0)
这可能是一个许可问题吗?你在清单中设置了正确的权限吗? 也许模拟器在缺乏权限方面并不是那么严格(我有时经历过,有些设备有效,有些设备无效,而我所遗漏的只是明显的许可)
你必须设置两个
<permission
android:name="your.packagename.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
和
<uses-permission android:name="your.packagename.matchtracker.permission.C2D_MESSAGE" />
在清单的主要部分中,并使用
声明一个brodcast接收器<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>