NotificationManager.notify () не запускает полноэкранный режим при включенном экране - PullRequest
1 голос
/ 03 февраля 2020

У меня есть приложение для будильника, а с android 10 я должен использовать полноэкранные намерения для срабатывания будильника. Когда устройство выключено, все работает отлично, но когда устройство включено, оно просто показывает сообщение в верхней части экрана, на которое пользователь может щелкнуть, и затем оно переходит к экрану, который должен был запускаться автоматически. Вот код:

NotificationManager mgr = (NotificationManager) context.getApplicationContext().getSystemService(Context.NOTIFICATION_SERVICE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { // This is at least android 10...

            if (mgr.getNotificationChannel(CHANNEL_WHATEVER) == null) {
                mgr.createNotificationChannel(new NotificationChannel(CHANNEL_WHATEVER,
                        context.getString(R.string.alarms_channel_name), NotificationManager.IMPORTANCE_HIGH));
                }

                mgr.notify(NOTIFY_ID, buildNormal(context, i).build());

            } else { // This is android 9 or below...

                context.startActivity(i);

            }
}

private NotificationCompat.Builder buildNormal(Context context, Intent intent) {

    NotificationCompat.Builder b =
            new NotificationCompat.Builder(context, CHANNEL_WHATEVER);

    b.setAutoCancel(true)
            .setDefaults(Notification.DEFAULT_ALL)
            .setSmallIcon(android.R.drawable.ic_lock_idle_alarm)
            .setStyle(new NotificationCompat.BigTextStyle()
                    .bigText(context.getString(R.string.message, context.getString(R.string.alarms_channel_name))))
            .setContentText(context.getString(R.string.message, context.getString(R.string.alarms_channel_name)))
            .setFullScreenIntent(buildPendingIntent(context, intent), true);

    return (b);

}

private PendingIntent buildPendingIntent(Context context, Intent intent) {

    return (PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
}

Есть ли решение этой проблемы?

...