我正在更新我的Android应用程序以使用支持Google Cloud Messaging的新Urban Airship库。
我做了以下事情:
注册GCM API密钥。
转到设置:服务:配置GCM,添加API密钥并输入我们应用的包名称。
将客户端库从1.1.3更新到3.0.0(是的,我知道,哎哟!)
从API控制台仪表板中获取项目编号(这是一个12位整数)并将其添加到airshipconfig.properties中,如下所示:
transport = gcm
gcmSender = [project-number]
从airshipconfig.properties中删除这些行:
transport = c2dm
c2dmSender = [我们的电子邮件]
在接收到具有意图PushManager.ACTION_REGISTRATION_FINISHED的通知时添加日志行,打印出: logger.w(“注册完成.APID:”+ intent.getStringExtra(PushManager.EXTRA_APID)+“。有效:”+ intent.getBooleanExtra(PushManager.EXTRA_REGISTRATION_VALID,false));
ACTION_REGISTRATION_FINISHED通知返回的内容似乎是有效的APID。当我在Urban Airship中查找时,我可以确认它在那里:
APID
83014cb8-a573-45f9-9265-b95a8e21e7df
Alias
XDVRKQZ5WOGH
Active
True
Created
2 minutes ago
Tags
Phone, USA, PDT Group 7, PDT, HTC Glacier, App Version internal-4.4-b1, API 10, eng, receivesWeeklySpinTheWheelNotifications
C2DM Registration ID
None
但是当我使用UA“测试通知”控制台触发此APID的通知时,设备从未接收到它(没有生成日志消息或生成用户可见通知,表明传入推送)并且UA中没有显示错误安慰。我该怎么从这里调试?
编辑:实际上,某些设备接收我的测试通知(当我使用该程序发送它们时),而有些则没有。我无法辨别APID查找的任何差异。成功接收的设备是运行Android 2.3.3的手机,运行3.1的平板电脑和运行Android 4.1.1的两部手机。它失败的设备是运行4.0.3的平板电脑和运行2.3.4的手机。