FCM: функция Firebase отправляет push-уведомление с высоким приоритетом.Устройство не восстанавливается, когда приложение убито - PullRequest
0 голосов
/ 18 декабря 2018

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

У меня есть:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    NotificationChannel notificationChannel = new NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_HIGH);
    notificationChannel.setLightColor(Color.BLUE);
    notificationChannel.setLockscreenVisibility(Notification.VISIBILITY_PUBLIC);
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    if (notificationManager != null) {
       notificationManager.createNotificationChannel(notificationChannel);
    }
}

и для создания уведомления:

Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

        NotificationCompat.Builder notificationBuilder =
                new NotificationCompat.Builder(context, channelId)
                        .setSmallIcon(smallIconRes)
                        .setContentTitle(title)
                        .setContentText(body)
                        .setStyle(new NotificationCompat.BigTextStyle().bigText(body))
                        .setPriority(NotificationCompat.PRIORITY_MAX)
                        .setAutoCancel(true)
                        .setDefaults(Notification.DEFAULT_VIBRATE)
                        .setColor(ContextCompat.getColor(context, notificationColor))
                        .setSound(defaultSoundUri)
                        .setContentIntent(pendingIntent);

        NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);

        if (notificationManager != null) {
            notificationManager.notify(id, notificationBuilder.build());
        }

Функция Firebase просто делает это:

    var options = {
        priority: "high",
        timeToLive: 60 * 60 * 24
    };

    const payload = {

        "notification":{
            "title":`${notifiTitle}`,
            "body":`${notifiBody}`,
            "click_action":".MainActivity",
            "sound":"default"
        }
    };

    return admin.messaging().sendToDevice(snapshot.val(), payload, options);

Я пытаюсь с "Lenovo Moto G5S Plus XT1805", Android 8.1.0, и у меня нет проблем.Устройство получает уведомление, как когда приложение закрыто, так и когда оно открыто.Хорошо!

Проблема с другим устройством, "Lenovo Tablet TB-X103X", Android 7.0.Это устройство получает уведомление, только если приложение запущено!Когда приложение убито, не получает уведомление.Жду 1 час, открываю приложение и приходит уведомление.Я не знаю, если это проблема с режимом DOZE, я отправляю уведомление с высоким приоритетом с функциями firebase.Или это конфигурация LENOVO для своих планшетов.

Я пытаюсь добавить разрешение запроса:

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

, но безрезультатно!

Может ли кто-нибудь мне помочь?

Спасибо!

...