У меня есть приложение для будильника, а с 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));
}
Есть ли решение этой проблемы?