CodenameOne-Android推送通知支持,无需专业帐户

CodenameOne-Android推送通知支持,无需专业帐户,codenameone,Codenameone,所以,我买不起codeameone pro帐户,所以我用GCM为Android实现了本机推送通知。经过一番挣扎,我终于成功了 现在GCM已被弃用,我想迁移到FCM。但是,我遇到了一些问题,因为codename one不允许我将正确的依赖项注入build.gradle文件,以便firebase应用程序正确初始化 我在这里描述了这些: https://stackoverflow.com/questions/52278220/codenameone-firebaseapp-not-initializi

所以,我买不起codeameone pro帐户,所以我用GCM为Android实现了本机推送通知。经过一番挣扎,我终于成功了

现在GCM已被弃用,我想迁移到FCM。但是,我遇到了一些问题,因为codename one不允许我将正确的依赖项注入build.gradle文件,以便firebase应用程序正确初始化

我在这里描述了这些:

https://stackoverflow.com/questions/52278220/codenameone-firebaseapp-not-initializing
还尝试使用th pro帐户的一些功能,以便向我的应用程序添加正确的fcm依赖项,这意味着让我的主应用程序在类中实现PushCallback接口,但我遇到了其他问题。例如,codenameone使用一个专有的实现覆盖我的FirebaseMessagingService实现,该实现在我通过google fcm端点发送自定义通知有效负载时抛出错误,该端点以前与我的本机实现一起工作

我得到的错误是:

09-12 14:50:19.581 14378 14397 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.io.DataOutputStream.writeUTF(DataOutputStream.java:347)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.io.DataOutputStream.writeUTF(DataOutputStream.java:323)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.codename1.impl.android.AndroidImplementation.appendNotification(AndroidImplementation.java:470)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.codename1.impl.android.CN1FirebaseMessagingService.onMessageReceived(CN1FirebaseMessagingService.java:83)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.google.firebase.messaging.FirebaseMessagingService.zzc(Unknown Source)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at com.google.firebase.iid.zzc.run(Unknown Source)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
09-12 14:50:19.581 14378 14397 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:761)
显然,CN1FirebaseMessagingService实现希望在通知上有一个“body”参数

所以现在我陷入困境,要么无法向构建添加正确的fcm依赖项,要么无法在FirebaseMessagingService上实现我的功能

我的问题是:有没有一种方法可以向我的应用程序添加fcm支持,而不必使用pro帐户和codenameone服务器来中继推送

我更喜欢使用fcm端点从我的服务器发送推送通知,并在设备上添加自定义通知处理


谢谢

最终,我通过android.gradleDep构建提示加载所有必需的依赖项并手动初始化FirebaseApp,实现了对FCM的本地支持,如下所述:

嗨,Adrian,请分享您的工作代码。我还需要实现推送…或一篇博客文章,其中详细介绍了实现过程。电子邮件是lukmanjaji.com上的lukman。提前感谢您好,我没有时间详细介绍实现,但没有什么特别之处。只需使用一些本机代码来实现android通知支持,就像任何android应用程序一样。请参阅fcm文档:。然后使用android.xapplication cn1标志注入清单确认。最后,使用cn1本机接口初始化fcm服务,如接受答案链接中所述。