Как использовать 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

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