Как использовать Compose Accompanist для работы с новыми разрешениями на старых устройствах?Android

Форум для тех, кто программирует под Android
Ответить
Гость
 Как использовать Compose Accompanist для работы с новыми разрешениями на старых устройствах?

Сообщение Гость »

Использование разрешений Jetpack Compose из библиотеки разрешений аккомпаниатора (https://google.github.io/accompanist/permissions/) — хороший способ реагирования. Однако мне неясно, как быть с разрешениями, которые зависят от версии ОС, в которой они используются.
Например, отказ от уведомлений изменился в Android Tiramisu/33, поэтому это теперь он включен с использованием разрешения POST_NOTIFICATIONS. Тогда вопрос в том, как вы используете

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

val permissionState: PermissionState = rememberPermissionState(
permission = Manifest.permission.POST_NOTIFICATIONS
)
...когда на API POST_NOTIFICATIONS нельзя ссылаться, скажем, на Android 9. Единственный обходной путь, который я могу придумать, который выглядит как взлом, - это вернуться к какому-то другому разрешение, которое предоставляется автоматически по умолчанию, т.е. разрешение ИНТЕРНЕТ. Вот так:

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

val permissionState: PermissionState = rememberPermissionState(
permission = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU)
Manifest.permission.POST_NOTIFICATIONS else Manifest.permission.INTERNET
)
Есть ли лучшее решение, чем упомянутое выше?

Подробнее здесь: https://stackoverflow.com/questions/781 ... ld-devices
Ответить

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

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

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

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

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