Проблема при установлении полноэкранного уведомления на телефоне в React NativeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Проблема при установлении полноэкранного уведомления на телефоне в React Native

Сообщение Anonymous »

Я пытаюсь реализовать функцию полного экрана в моем приложении Android, аналогично поведению приложения Google Clock, где сигнал тревоги отображается на экране блокировки с опциями Snooze и Demiss. В настоящее время я получаю только стандартный пузырь уведомлений на экране блокировки, несмотря на различные попытки запустить полноэкранное намерение. Стоит отметить, что приложение Google Clock достигает этой функции, не требуя всех этих разрешений, что добавляет моей путанице. Высокий высокоприоритетный канал «тревоги» канал и использовал свой полноценный , чтобы попытаться запустить приложение в полноэкранном режиме, когда запланированное уведомление.

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

AlarmFullScreenModule
и armernotificationhelper.kt ) для непосредственного создания и отображения уведомлений Android, отмеченных как полноэкранные тревоги. Этот модуль предназначен для запуска моего MainActivity .

[*]

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

MainActivity.kt
Модификации: [/b] Я экспериментировал с добавлением конкретных флагов окон в мой MainActivity (условно и безоговорочно) с целью создания его появления на экране блокировки при запуске по намерению тревоги (идентифицировано is_alarm дополнительным). Используемые флаги включают FLAG_SHOW_WHEN_LOCKED , FLAG_TURN_SCREEN_ON и flag_dismiss_keyguard .

[*]

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

AlarmNotificationHelper.kt
), я внедрил Wakelock , приобретенный непосредственно перед отображением уведомления, чтобы предотвратить сну с помощью устройства до того, как можно обработать полноэкранное намерение. AndroidManifest.xml и что требуются необходимые разрешения во время выполнения (например, «тревоги и напоминания»). напрямую. android manifest.xml Конфигурации активности:
  • mainActivity:
< /code>

armiddisplayactivity: < /strong> < /li>
< /ol>
флаги окон (применяются в обеих действиях): [/b]

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

window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD)
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED)
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON)
Настройки канала уведомления:

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

NotificationChannel(
"alarm-notifications",
"Alarm Notifications",
NotificationManager.IMPORTANCE_HIGH
).apply {
enableLights(true)
lightColor = Color.RED
enableVibration(true)
vibrationPattern = longArrayOf(100, 500, 100, 500)
setBypassDnd(true)
lockscreenVisibility = Notification.VISIBILITY_PUBLIC
setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM), null)
audioAttributes = AudioAttributes.Builder()
.setUsage(AudioAttributes.USAGE_ALARM)
.setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION)
.build()
notificationManager.createNotificationChannel(this)
}
Настройки уведомления:
NotificationCompat.Builder(context, "alarm-notifications")
.setPriority(NotificationCompat.PRIORITY_MAX)
.setCategory(NotificationCompat.CATEGORY_ALARM)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setFullScreenIntent(fullScreenPendingIntent, true)
.setOngoing(true)
.setAutoCancel(true)
// ... other configurations like sound, vibration, etc.
.build()
< /code>
Несмотря на эти усилия, результат остается таким же: небольшой пузырь уведомлений появляется на экране блокировки вместо полноэкранного управления с контролем тревоги. Любые предложения по шагам устранения неполадок или альтернативных подходов были бы очень оценены.


Подробнее здесь: https://stackoverflow.com/questions/796 ... act-native
Ответить

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

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

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

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

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