Android: Die Berechtigungsanforderung wird in einer unendlichen Schleife ausgeführtAndroid

Forum für diejenigen, die für Android programmieren
Anonymous
 Android: Die Berechtigungsanforderung wird in einer unendlichen Schleife ausgeführt

Post by Anonymous »

Nach der Installation der App, die ich zu Zugriff auf das Mikrofon anfordern (mir sind die Empfehlungen bekannt, ist dies eine schnelle und schädliche Version.) Hier ist der relevante Code: < /p>

Code: Select all

override fun onResume() {
super.onResume()
checkPermissions()
// once the user selects an option in the permissions activity, this onResume fires again
}

private fun checkPermissions() {
if (ContextCompat.checkSelfPermission(
this, Manifest.permission.RECORD_AUDIO
)
== PackageManager.PERMISSION_GRANTED
) {
// we're good, proceed
checkSignIn()
} else {
if (ActivityCompat.shouldShowRequestPermissionRationale(
this, Manifest.permission.RECORD_AUDIO
)
) {
// branch A
explainRecordingRequest()
} else {
// branch B
ActivityCompat.requestPermissions(
this@MainActivity, arrayOf(Manifest.permission.RECORD_AUDIO), 1000
)
}
}
}

override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
Timber.d("FLOW: received req=$requestCode, len(grants)=${grantResults.size}")
when (requestCode) {
1000 -> {
if (grantResults.isNotEmpty() &&
grantResults[0] == PackageManager.PERMISSION_GRANTED)
{
Timber.d("FLOW: ...granted")
} else {
Timber.d("FLOW: ...not granted")
}
}
else -> {
Timber.e("FLOW: unhandled permission request for $requestCode")
}
}
}

private fun explainRecordingRequest() {
val builder: AlertDialog.Builder = AlertDialog.Builder(this)
builder
.setTitle("Why we're requesting this")
.setMessage(getString(R.string.record_audio_permission_explanation))
.setPositiveButton("Got it!") { it, _ ->
it.dismiss()
ActivityCompat.requestPermissions(
this@MainActivity, arrayOf(Manifest.permission.RECORD_AUDIO), 1000
)
}
val dialog: AlertDialog = builder.create()
dialog.show()
}
Die MIC -Erlaubnis Reque sieht folgendermaßen aus:

Die "Roy Path" - Benutzer autorisiert " - Benutzerfine; Der semi-rosy-Pfad-der Benutzer lehnt zunächst ab, liest die Erklärung und autorisiert-funktioniert auch gut. Nach dem, was ich sagen kann: < /p>

OnResume -Brände < /li>
CheckPermissions fordert Zugriff auf (Zweig B im obigen Code) < /li>
Onrequest ... erhält -1 (nicht gewährt) < /li>
< /ul> < /ul> < /ul> < /ul> < /ul> < /> < />
Vielen Dank

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post