【问题标题】:Push notifications on emulator working, but not on real device在模拟器工作时推送通知,但不在真实设备上
【发布时间】:2011-04-14 08:26:29
【问题描述】:

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

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

【问题讨论】:

标签: android push-notification android-c2dm


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    你必须同时设置

     <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-05-29
      • 2014-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-09
      • 1970-01-01
      • 2016-02-14
      相关资源
      最近更新 更多