#android
Вопрос:
У меня есть 2 кнопки, у первой кнопки есть этот идентификатор id="@ id/button_A"
, а у второй кнопки есть этот идентификатор id="@ id/button_B"
button_A
Я назвал его text="areNotificationsEnabled ( On )"
button_B
Я назвал его text="canDrawOverlays ( Off )"
Я хочу, чтобы пользователь блокировал или разблокировал уведомление о приложении, поэтому обновите button_A
его до включения или выключения. То же самое с button_B.
Я могу решить проблему с помощью onResume
, но есть исключения, такие как пользователь может блокировать уведомления из строки состояния, не выходя из приложения или используя разделенный экран для включения или выключения canDrawOverlays
Я решил проблему с помощью обратного отсчета и проверяю каждые 250 миллисекунд, но я думаю, что это не лучший способ сделать это, как насчет изменения фокуса на окне или есть лучший способ?
Ответ №1:
Насколько я знаю, это невозможно в традиционной системе взглядов.
Тем не менее, это возможно с помощью Jetpack Compose, аккомпаниатора и некоторых экспериментальных api — см. Github Аккомпаниаторов для получения подробной информации и документов Android о том, как реализовать это в традиционных системах просмотра
//inside a composable
val cameraPermissionState = rememberPermissionState(android.Manifest.permission.CAMERA)
Text("camera permission enabled = ${cameraPermissionState.hasPermission}")
Хотя это решение будет работать «просто отлично», оно может сопровождаться довольно крутой кривой обучения. Я предлагаю вам пойти по этому пути, только если вы все равно собираетесь начать использовать compose.