Android TV не может получать сообщения FCM, когда устройство находится в режиме ожидания - PullRequest
0 голосов
/ 06 декабря 2018

Как мы знаем, телевизор не имеет системной панели, поэтому я просто отправляю сообщения только с данными, он работает, когда приложение для обмена сообщениями находится на переднем плане, в фоновом режиме и даже не работает.Но когда я нажимаю клавишу «Питание» (с включенным мгновенным включением), устройство переходит в режим ожидания (режим ожидания str), я могу обещать, что сообщение успешно отправлено:

{
 "to" : "xxx",
 "collapse_key" : "tv",
 "priority": "high",
 "content_available":true,
 "data" : {
     "body" : "wake up"
 }
}

{
    "multicast_id": xxx,
    "success": 1,
    "failure": 0,
    "canonical_ids": 0,
    "results": [
        {
            "message_id": "xxx"
        }
    ]
}

И я вижу журнал:

broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE flg=0x10000000 pkg=com.tcl.fcmapp (has extras) }

Когда телевизор находится в режиме ожидания, я просыпаю устройство, вызывая метод, как показано ниже:

/**
 * Called when message is received.
 *
 * @param remoteMessage Object representing the message received from Firebase Cloud Messaging.
 */
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    Log.d(TAG, "From: " + remoteMessage.getFrom());

    // Check if message contains a data payload.
    if (remoteMessage.getData().size() > 0) {
        Log.d(TAG, "Message data payload: " + remoteMessage.getData());
        wakeUpScreen();
    }
}

private void wakeUpScreen() {
    PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
    @SuppressLint("InvalidWakeLockTag") PowerManager.WakeLock wakeLock = pm.newWakeLock
            (PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "LiveTV");
    wakeLock.setReferenceCounted(false);
    try {
        wakeLock.acquire();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

Я прочитал документы о FCM, там говорится, что поддержка FCM активируетсяустройство, так что-нибудь не так с моими способами использования?

...