android - 为什么 Android 收不到 FCM 推送通知?

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

我正在开发一个 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/

相关文章:

android - 任务应用程序执行失败 :generateDebugRFile Error: ':' is not a valid resource name character

ios - 如何访问传入推送通知的值

android - 单击通知时更新 Activity

android - 如何在 FCM 通知中创建主题

java - 转换为 Dalvik 失败 - 某处未初始化的变量

java - 为什么第一个 Log.e() 方法不像第二个 Log.e() 方法那样工作?

java - 如何调试(测试)GcmNetworkManager?

notifications - 如何让用户关注问题?

java - Java Web 应用程序中的事件。何时使用

java - 通过android中的接口(interface)将gcm注册ID从GCMBaseIntentService类传递到MainActivity