【发布时间】: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