Проверьте, предоставил ли пользователь разрешение на доступ к соседнему устройству

#android #kotlin #android-permissions #android-bluetooth #android-12

Вопрос:

Я читаю документацию здесь для разрешения Android поблизости специально для Android 12. Я хочу проверить, предоставил ли пользователь доступ к разрешению на соседнее устройство программно. Следующая проверка постоянно возвращает true для меня

  ContextCompat.checkSelfPermission(context,Manifest.permission.BLUETOOTH_CONNECT) == 
 PackageManager.PERMISSION_GRANTED
 

Я вручную отозвал разрешение «рядом» после его предоставления один раз в приложении, а также подтвердил, перейдя в настройки приложения, в которых указано, что разрешение «рядом» не предоставлено. Есть ли способ проверить эту среду выполнения и показать разрешение на соседнее устройство (системный диалог), если оно не предоставлено

введите описание изображения здесь

Комментарии:

1. Против. То же самое, мое приложение предназначено для Android 11. Если пользователь отменит разрешение на соседние устройства на телефоне Android 12, мое приложение не сможет сканировать периферийные устройства BLE, даже если ему предоставлено разрешение на точное местоположение (точная точность). Я хотел бы, по крайней мере, иметь возможность предупреждать пользователя в пользовательском интерфейсе приложения. Все разрешения BLUETOOTH_CONNECT, BLUETOOTH_SCAN и BLUETOOTH_ADVERTISE возвращают PERMISSION_GRANTED независимо от настройки.

2. Я обновил цель до 31, и, похоже, это сработало