#android #permissions #bluetooth
Вопрос:
Согласно документации, мы можем удалить разрешения на определение местоположения для Bluetooth, если мы ориентируемся на Android 12. Проблема в том, что я не уверен в этом, потому что это означало бы, что Android 11 или ниже не требует НИКАКИХ разрешений во время выполнения при использовании Bluetooth. Поскольку новые разрешения могут использоваться только в Android 12, например:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
when {
hasBluetoothPermissions() -> startScanning()
shouldShowRequestPermissionRationale(Manifest.permission.BLUETOOTH_SCAN) ||
shouldShowRequestPermissionRationale(Manifest.permission.BLUETOOTH_CONNECT) -> {
showDialog()
}
else -> requestPermissionLauncher.launch(
arrayOf(
Manifest.permission.BLUETOOTH_SCAN,
Manifest.permission.BLUETOOTH_CONNECT
)
)
}
} else {
startScanning()
}
Будет ли это работать для Android 11 или ниже, не имея разрешений на местоположение в манифесте? Я использую эти разрешения:
<uses-permission
android:name="android.permission.BLUETOOTH"
android:maxSdkVersion="30" />
<uses-permission
android:name="android.permission.BLUETOOTH_ADMIN"
android:maxSdkVersion="30" />
<uses-permission
android:name="android.permission.BLUETOOTH_SCAN"
android:usesPermissionFlags="neverForLocation"
tools:targetApi="s" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />