diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 29e88dc..9e0389f 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -5,6 +5,7 @@ + = Build.VERSION_CODES.Q) { + if (ContextCompat.checkSelfPermission( + this, + Manifest.permission.ACCESS_FINE_LOCATION + ) != PackageManager.PERMISSION_GRANTED + ) { + // Request permission + ActivityCompat.requestPermissions( + this, + arrayOf(Manifest.permission.ACCESS_FINE_LOCATION), + REQUEST_LOCATION_PERMISSION + ) + return + } + } + + // Permission granted, get SSID val wifiManager = applicationContext.getSystemService(WIFI_SERVICE) as WifiManager val wifiInfo = wifiManager.connectionInfo val ssid = wifiInfo.ssid.replace("\"", "") @@ -145,6 +172,26 @@ class SettingsActivity : AppCompatActivity() { } } + override fun onRequestPermissionsResult( + requestCode: Int, + permissions: Array, + grantResults: IntArray + ) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults) + + when (requestCode) { + REQUEST_LOCATION_PERMISSION -> { + if (grantResults.isNotEmpty() && + grantResults[0] == PackageManager.PERMISSION_GRANTED) { + // Permission granted, try again + detectCurrentSSID() + } else { + showToast("Standort-Berechtigung benötigt um WLAN-Name zu erkennen") + } + } + } + } + override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { android.R.id.home -> {