From 128ded7a68d7884c373bbe2e4bdb1bd294a85e58 Mon Sep 17 00:00:00 2001 From: Andre Kirchhoff Date: Wed, 19 Jan 2022 01:06:38 -0300 Subject: [PATCH] fix permissions for android >= 31 --- .../java/com/geeksville/mesh/MainActivity.kt | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/geeksville/mesh/MainActivity.kt b/app/src/main/java/com/geeksville/mesh/MainActivity.kt index b78999949..2fe89c6f1 100644 --- a/app/src/main/java/com/geeksville/mesh/MainActivity.kt +++ b/app/src/main/java/com/geeksville/mesh/MainActivity.kt @@ -247,12 +247,16 @@ class MainActivity : AppCompatActivity(), Logging, */ private fun updateBluetoothEnabled() { var enabled = false // assume failure + val requiredPerms: MutableList = mutableListOf() - val requiredPerms = listOf( - Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.BLUETOOTH, - Manifest.permission.BLUETOOTH_ADMIN - ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + requiredPerms.add(Manifest.permission.BLUETOOTH_SCAN) + requiredPerms.add(Manifest.permission.BLUETOOTH_CONNECT) + } else { + requiredPerms.add(Manifest.permission.ACCESS_FINE_LOCATION) + requiredPerms.add(Manifest.permission.BLUETOOTH) + requiredPerms.add(Manifest.permission.BLUETOOTH_ADMIN) + } if (getMissingPermissions(requiredPerms).isEmpty()) { /// ask the adapter if we have access @@ -272,14 +276,20 @@ class MainActivity : AppCompatActivity(), Logging, val perms = mutableListOf( Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.BLUETOOTH, - Manifest.permission.BLUETOOTH_ADMIN, Manifest.permission.WAKE_LOCK // We only need this for logging to capture files for the simulator - turn off for most users // Manifest.permission.WRITE_EXTERNAL_STORAGE ) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + perms.add(Manifest.permission.BLUETOOTH_SCAN) + perms.add(Manifest.permission.BLUETOOTH_CONNECT) + } else { + perms.add(Manifest.permission.BLUETOOTH) + perms.add(Manifest.permission.BLUETOOTH_ADMIN) + } + // Some old phones complain about requesting perms they don't understand if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { perms.add(Manifest.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND)