EN: Fix permission granting on Android 11

This commit is contained in:
Christian Grigis 2021-07-15 18:07:00 +02:00 committed by Marvin W
parent 1d747f6a83
commit a0558a5f38
1 changed files with 15 additions and 3 deletions

View File

@ -118,14 +118,26 @@ class ExposureNotificationsConfirmActivity : AppCompatActivity() {
}
private fun requestPermissions() {
if (Build.VERSION.SDK_INT >= 23) {
requestPermissions(permissions, ++permissionRequestCode)
when {
Build.VERSION.SDK_INT >= 30 -> requestPermissions(
permissions.toSet().minus("android.permission.ACCESS_BACKGROUND_LOCATION").toTypedArray(), ++permissionRequestCode
)
Build.VERSION.SDK_INT >= 23 -> requestPermissions(permissions, ++permissionRequestCode)
}
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
if (requestCode == this.permissionRequestCode) checkPermissions()
if (requestCode == this.permissionRequestCode) {
when {
Build.VERSION.SDK_INT >= 30 && permissions.contains("android.permission.ACCESS_FINE_LOCATION") ->
requestPermissions(
arrayOf("android.permission.ACCESS_BACKGROUND_LOCATION"),
++permissionRequestCode
)
else -> checkPermissions()
}
}
}
// Bluetooth