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

2024-03-25

因此,我买不起 codeameone 专业帐户,因此我使用 GCM 为 Android 实现了本机推送通知。经过一番努力,我终于成功了。

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

我在这里描述了这些:

https://stackoverflow.com/questions/52278220/codenameone-firebaseapp-not-initializing

还尝试使用专业帐户的一些功能,以便向我的应用程序添加正确的 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 支持,而无需拥有专业帐户并且必须使用 codenameone 服务器来中继推送?

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

Thanks.


最终,我通过 android.gradle Dep 构建提示添加所有必需的依赖项并手动初始化 FirebaseApp,成功地本地实现了 FCM 支持,如下所述:我可以在不使用 google-services.json 的情况下初始化 Firebase 吗? https://stackoverflow.com/questions/38962025/can-i-initialize-firebase-without-using-google-services-json

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CodenameOne - Android 推送通知支持,无需专业帐户 的相关文章

随机推荐

  • 将参数发送到驻留在另一个进程中的应用程序实例

    我有一个单实例应用程序 c WPF net3 51 检查应用程序是否已实例化是通过互斥体完成的 如果应用程序已在运行 我会从已打开的应用程序实例中打开一个新窗口 到目前为止效果很好 但是 由于应用程序扩展 我现在必须将 e Args 或至少
  • C# .net读取.mdb文件

    我有必要使用 C net 编写一个应用程序来编辑特定的 mdb 文件 它纯粹是一个部门内应用程序 用于读取部门内文件 有争议的是 这些文件不应该是 mdb 文件 但我在这方面没有选择 我正在推动更改为 XML 文件 但那是另一回事 这些文件
  • PlotLegends 使 Manipulate[] ing 图形变得慢如爬行

    我设置了一个简短的程序 使用 Manipulate 显示具有不同参数的相同函数的三个图 我想用参数的值来标记每个函数 我的出发点是让一个传奇人物出现 在绘图中添加 PlotLegend 会导致 Mathematica 变得异常缓慢 我的代码
  • C# 中两个 List<> 相交

    我有两个List
  • Three.js 在平面上旋转相机

    我的应用程序中有一个相机 camera new THREE PerspectiveCamera 75 window innerWidth window innerHeight 0 1 1000 camera position z 1 cam
  • Python OOP 继承:方法解析顺序 (MRO)

    当我使用方法解析顺序 MRO 时 输出存在变化 任何人都可以解释为什么结果会出现这种差异 class A def init self pass def abc self print A class B A def init self pas
  • Python 字符串的所有可能组合

    你好 我正在使用 python 我正在尝试编写一个方法 其中给定一个字符串 它会找到该字符串的每个组合并将其附加到列表中 我将给出字符串并显示我想要的结果 string x god outcome lst g o d go gd og od
  • Passport.js + Express.js 在身份验证后将用户转发到原始目的地

    我有一个应用程序 服务器上是 Node Express Passport 客户端上是 jQuery Backbone js 客户端在 URL 中使用哈希标签 但对于某些功能来说 用户登录非常重要 我希望可以通过 URL 访问该应用程序 例如
  • PHP 阿拉伯文文本使用 strpos 进行比较

    我在 mysql 表中有一个阿拉伯语关键字 例如 1591 1610 1585 1575 1606 请考虑用 代替 带有 的值会自动转换为阿拉伯语 Mysql表编码 utf8 general ci 我从外部资源示例 twitter 中获取一
  • laravel 5 - css 文件未在资产清单中定义?

    我收到 laravel 5 的错误消息 我不明白 Next exception ErrorException with message File build css all css not defined in asset manifest
  • 在 C++ 中如何知道数组包含多少个元素? [复制]

    这个问题在这里已经有答案了 例如 我有一个包含 3 个元素的数组 int array 1 4 66 我怎么知道有多少个元素array包含 执行此操作 std size myarray std size https en cppreferen
  • 无法导入 play.api.db.databases

    我正在 Scala Play 2 5 4 中开发一个应用程序 我想测试我的数据库交互 并尝试通过中推荐的方法来测试这一页 https www playframework com documentation 2 5 x ScalaTestin
  • 如何从命令行使用密码生成 openSSL 密钥?

    首先 如果我不提供密码会怎样 是否使用了某种伪随机短语 我只是在寻找 足够好 的东西来阻止休闲黑客 第二 如何从命令行生成密钥对 并在命令行上提供密码 我终于使用这些命令让它工作 使用 exec 通常认为使用不安全 最好在文件中给出 Pas
  • 使用相对 URL 切换到 SSL

    我想创建一个相对链接来切换当前协议http to https 我工作的最后一个地方在服务器上设置了一些东西 以便您可以实现这一点 但我不太记得它 而且我从来不知道它是如何工作的 这样做的理由是 我不需要在需要在生产和开发环境之间移动的文件中
  • 使用 C#/Win32 将文本写入记事本

    我正在摆弄 Win32 API 和 Windows 消息传递 试图弄清楚事情是如何工作的 我发现了这个问题非常有帮助 https stackoverflow com questions 523405 how to send text to
  • Android M 不允许硬链接吗?

    我有一个带有一些 C 代码的 Android 应用程序 它使用 link 2 系统调用来创建到现有文件的硬链接 当我在 Android 5 0 2 上执行该应用程序时 该应用程序的这一部分可以工作 当我在 Android M 设备上执行完全
  • 使用 mysqli 来自 MySQL 列的下拉列表[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个名为的 MySQL 表Users有柱子Name and NameID Like 名称 名称ID布拉德 BD汤姆 ts 我试图拉动所有
  • Heroku:将容器部署到 dyno 时“heroku ps:exec”不起作用

    我正在将 Tensorflow Serving 容器部署到 Heroku 一切正常 但是当我尝试 ssh 到容器中执行某些命令时 Heroku 返回此错误 C Users whitm Desktop CodeProjects deep de
  • CSS 变换比例 - 图像仍然占用空间

    当将以下 CSS 属性添加到图像时 图像仍然占据与大小为 100 时相同的空间 有没有办法让文本填充该图像周围的空间 transform scale 0 2 height auto float right 据我了解 这不是转换的工作原理 它
  • CodenameOne - Android 推送通知支持,无需专业帐户

    因此 我买不起 codeameone 专业帐户 因此我使用 GCM 为 Android 实现了本机推送通知 经过一番努力 我终于成功了 现在 GCM 已弃用 我想迁移到 FCM 但是 我遇到了一些问题 因为代号一不允许我将正确的依赖项注入到