android - 如何从 ADB 向设备发送 FCM(firebase 云消息传递)推送通知

标签 android firebase google-cloud-messaging firebase-cloud-messaging adb

我们正在使用 Firebase 云消息传递将推送通知发送到 Android 应用程序。

目前要测试推送通知,我们需要将消息发送到 FCM 服务器并等待消息到达设备。大多数情况下,设备需要很长时间才能从 FCM 服务器获取通知。

我可以在下面看到一些链接,这些链接解释了使用 adb 广播命令向设备发送推送通知(此示例解释了使用 GCM 框架发送消息,但我们使用 FCM) Is it possible to simulate a GCM receive from the adb shell / am command line? I'm getting an error

是否有任何类似的方法可以使用 adb 向具有 FCM 的设备发送推送通知?

最佳答案

可以通过 adb 发送 FCM 负载。

虽然 com.google.android.c2dm.permission.SEND 权限确实存在问题,但有一种解决方法。

gradle 将 FirebaseInstanceIdReceiver 添加到 merged list 中。解决方法是将您的自己的副本添加到 list 并覆盖权限 使用 tools:replace="android:permission"android:permission="@null"

<receiver
        android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver"
        android:exported="true"
        android:permission="@null"
        tools:replace="android:permission">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="your.package.name" />
        </intent-filter>
</receiver>

然后发出

adb shell "am 广播 -n your.package.name/com.google.firebase.iid.FirebaseInstanceIdReceiver -c your.package.name -a com.google.android.c2dm.intent.RECEIVE .. . 通过终端

(PS - 我强烈建议仅在调试版本中进行,通过 gradle 的 list 占位符或在您的调试/开发版本中使用单独的 AndroidManifest.xml)

关于android - 如何从 ADB 向设备发送 FCM(firebase 云消息传递)推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40289999/

相关文章:

android - 无法使用适用于 Android 的 Google Cloud Messaging(不是帮助程序库)接收消息

javascript - 使用来自已加载网页的 JavaScript 调用重新加载 WebView

cordova - Firebase - 有没有办法查看有多少人安装了该应用程序?

Android onLongClickListener 用于查看和冒泡子事件

firebase - 如何覆盖 firebase 云消息传递中的 onMessage 方法?

ios - 配置应用程序时出现 Firebase 错误 - 无法识别的选择器已发送至类

visual-studio-2015 - 设备没有包 com.google.android.gsf (Visual Studio Android Emulator)

java - 覆盖公共(public)图书馆处理推送通知的方式

android - 如何在 iOS 和 Android 上正确使用 -webkit-device-pixel-ratio?

android - 使用 ImageView 作为 Android 布局的背景