【问题标题】:FCM notifications not received when phone enters deep sleep手机进入深度睡眠时未收到 FCM 通知
【发布时间】:2018-04-09 09:29:40
【问题描述】:

我对 FCM 功能有疑问。当手机处于唤醒状态时,一切正常(当应用程序处于前台、后台或即使应用程序死机时也会收到通知)。

当手机进入深度睡眠时,问题就开始了。

我记得唤醒锁对于 FCM 不是强制性的。

我正在推送“优先级”:“高”的“数据”类型通知,这应该会唤醒设备。

问题是手机唤醒时会收到通知。

public class FCMCallbackService extends FirebaseMessagingService {
    private static final String TAG = "FCMCallbackService";

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        Intent i = new Intent(this, MainActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(i);
    }
}

public class FCMInitializationService extends FirebaseInstanceIdService {

    @Override
    public void onTokenRefresh() {

        ...

    }
}

在清单中:

<service android:name="gcmpush.FCMInitializationService">
    <intent-filter>
        <action android:name="com.google.firebase.INSTANCE_ID_EVENT" />
    </intent-filter>
</service>

<service android:name="gcmpush.FCMCallbackService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

如果手机处于睡眠状态,如何使用推送唤醒应用程序?缺少什么?

BDW - 如果我连接到 WiFi 并且手机会进入睡眠状态,但应用程序不工作 - 它会使用 WiFi 接收推送吗? FCM 可以启动死掉的应用程序。但如果应用死机,则不会获取 WiFi 锁定。在这种情况下设备可以与 FCM 服务器通信吗?

【问题讨论】:

  • 我缺少什么?检查 FCM 消息类型。
  • 你能发布你从服务器发送的 JSON 数据吗

标签: android firebase firebase-cloud-messaging


【解决方案1】:

当您的应用在后台或被杀死时,以下消息将不会调用您的 onMessageReceived(),并且您无法自定义通知。

{
   "to": "/topics/journal",
   "notification": {
   "title" : "title",
   "text": "data!",
   "icon": "ic_notification"
    }
}

但是使用它会起作用

{
  "to": "/topics/dev_journal",
   "data": {
       "text":"text",
       "title":"",
       "line1":"Journal",
       "line2":"some data"
   }
} 

见参考链接here

【讨论】:

  • 谢谢,我的错。 FCM 控制台只能发送通知消息。感谢您的帮助!!!
  • 如果真的对您有帮助,请接受我的回答。 :) ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-15
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
相关资源
最近更新 更多