Полноэкранный режим не открывается на Android 14Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Полноэкранный режим не открывается на Android 14

Сообщение Anonymous »

Я создаю приложение для будильника для Android и пытаюсь запустить полноэкранный режим из уведомления, когда будильник звонит, когда телефон заблокирован (как предполагает документация). Он работает без проблем на Samsung A51 под управлением Android 13, но на моем Pixel 8 Pro с Android 14 — нет. На Android 14 я получаю уведомление, но экран не просыпается и нет полноэкранного режима. Однако, когда я разблокирую телефон и снова блокирую его, пока уведомление все еще присутствует, я получаю полноэкранный режим.
У меня есть настройка одного действия с помощью Jetpack Compose. BroadcastReceiver просто создает уведомление и намерение открыть основное действие (которое позже перейдет на экран тревоги) следующим образом:

Код: Выделить всё

val notificationManager = context?.getSystemService(NOTIFICATION_SERVICE) as NotificationManager
notificationManager.createNotificationChannel(mChannel)
val alarmIntent = Intent(context, MainActivity::class.java)
alarmIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
val options = ActivityOptions.makeBasic().setPendingIntentCreatorBackgroundActivityStartMode(ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOWED)
// Create a pending intent with the above intent
val fullScreenPendingIntent = PendingIntent.getActivity(
context, 0, alarmIntent, PendingIntent.FLAG_IMMUTABLE, options.toBundle()
)

val builder = NotificationCompat.Builder(context!!, "alarm_channel")
.setSmallIcon(android.R.drawable.ic_lock_idle_alarm)
.setContentTitle("My notification")
.setContentText("Hello World!")
.setPriority(NotificationCompat.PRIORITY_HIGH)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setCategory(NotificationCompat.CATEGORY_ALARM)
.setOngoing(true)
.setFullScreenIntent(fullScreenPendingIntent, true)
// Build the notification

// Show the notification
with(NotificationManagerCompat.from(context)) {
notify(Random().nextInt(32), builder.build())
}
Вот что я пробовал:
  • Код: Выделить всё

    setShowWhenLocked(true)
  • Код: Выделить всё

    setTurnScreenOn(true)
  • Код: Выделить всё

    window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
  • Код: Выделить всё

    Permissions in manifest: USE_EXACT_ALARM, POST_NOTIFICATIONS, USE_FULL_SCREEN_INTENT
  • Код: Выделить всё

    MainActivity manifest: android:showWhenLocked="true", android:turnScreenOn="true", android:showForAllUsers="true, android:launchMode="singleInstance"
  • Код: Выделить всё

    pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK or PowerManager.FULL_WAKE_LOCK, TAG).acquire(TIMEOUT)
  • Разрешить фоновую активность в настройках.
  • Нет режима энергосбережения.
  • Включить экран. пока звенит будильник
Честно говоря, я в растерянности. Я знаю, что они ввели ограничения на полноэкранный режим в Android 14, но, насколько я понял, со мной все будет в порядке, пока у меня есть разрешение USE_FULL_SCREEN_INTENT. Я даже обновился до бета-версии Android 15, чтобы проверить, не ошибка ли это, но история та же.
Я предполагаю, что это как-то связано с тем, что экран/процессор не активируется, но я перепробовал все, что смог найти, но безуспешно.

Подробнее здесь: https://stackoverflow.com/questions/788 ... android-14
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»