我正在开发一个 Android 项目并尝试使用 FCM 接收推送通知。我按照描述的方式实现了所有内容 here , 关于 FCM 的官方文档。
我通过从 Firebase 控制台发送演示通知来测试我的工作并且它有效。我在我的 Django 网站上使用了网络 key ,它向 FCM 服务器发送通知,我的 Android 应用程序正确接收。但这有一个问题。应用程序仅在连接到 Android Studio 并且调试应用程序已安装并运行时才会收到通知。如果我退出调试应用程序并尝试,它不会收到它。我将 priority
更改为 hight
,添加了 content_available
= true
但仍然无法正常工作。
我查看了 Android Studio 中的错误日志,发现了这一点,
W/GCM-DMM: broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=com.app.android (has extras) }
我认为 GCM 正在发挥作用,我不知道该怎么做才能解决这个错误,因为我根本没有使用 GCM 代码,因为所有内容都已迁移到 FCM。当我的设备未连接 Android Studio 且调试应用程序未运行时,谁能告诉我还需要做什么才能开始接收推送通知?
注意:我的 Django 代码运行良好,我看到 FCM 服务器响应的成功消息。
谢谢。
最佳答案
将此添加到服务 list :
android:enabled="true"
android:exported="true">
就像这样:
<service
android:name=".firebase.MyFirebaseMessagingService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<service
android:name=".firebase.MyFirebaseInstanceIDService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
</intent-filter>
</service>
关于android - 为什么 Android 收不到 FCM 推送通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42600537/