我未能在Codename One,Android中实施推送通知。
由于public void registeredForPush(String deviceId)
接口的PushCallback
方法被成功调用,因此现在注册push正好如下所示。
Display.getInstance().callSerially(() -> Display.getInstance().registerPush());
但是,似乎服务器无法正常工作。
new Push(PUSH_TOKEN, "Hello World", deviceId)
.gcmAuth(GCM_SERVER_API_KEY)
.send();
以上,deviceId
来自Android手机本身,也就是说,app可用作推送通知服务器以及客户端。
我认为这段代码应该将通知推送到手机本身。
当然,我遵循指南here。
我还在手机设置中打开了此应用的通知,我的代号是一个专业的帐号,但我不知道为什么通知会到达我的Android手机。
请帮我解决这个问题。
(NetBeans IDE 8.2(Build 201705191307)
Codename One Version:3.7.1)
答案 0 :(得分:1)
我找到了原因。
首先,我必须使用Push.getPushKey()
方法来获取手机的设备ID。
但我管理的手机设备ID如下:
public void registeredForPush(String deviceId) {
store(deviceId); //this should be store(Push.getPushKey()); instead.
}
但这绝对是错误的。
正如Shai在评论中所说,推送通知的设备ID应该从'cn1-gcm'
开始,但这里deviceId
并非如此。
我很困惑为什么registeredForPush()
方法有devieId
作为参数,这让开发人员感到困惑。
无论如何,当我在我的代码中使用Push.getPushKey()
时,它现在可以正常工作。
我现在非常高兴,感谢Shai和所有的Codename One。