[Android] Fix location permission check below Android 12 (#23567)
diff --git a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt
index 4f5b910..263e979 100644
--- a/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt
+++ b/examples/android/CHIPTool/app/src/main/java/com/google/chip/chiptool/SelectActionFragment.kt
@@ -109,15 +109,21 @@
}
private fun hasLocationPermission(): Boolean {
- val locationPermissionState =
- ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.ACCESS_FINE_LOCATION)
- var blePermissionState = 1
+ val locationPermissionGranted =
+ ContextCompat.checkSelfPermission(
+ requireContext(),
+ Manifest.permission.ACCESS_FINE_LOCATION
+ ) == PackageManager.PERMISSION_GRANTED
+
+ // Android 12 new permission
+ var bleScanPermissionGranted = true
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
- blePermissionState =
- ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.BLUETOOTH_SCAN)
+ bleScanPermissionGranted =
+ ContextCompat.checkSelfPermission(requireContext(), Manifest.permission.BLUETOOTH_SCAN) ==
+ PackageManager.PERMISSION_GRANTED
}
- return PackageManager.PERMISSION_GRANTED == (locationPermissionState + blePermissionState)
+ return locationPermissionGranted && bleScanPermissionGranted
}