我们正在使用 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/