MULTIPLE_PERMISSIONS setzen und abfragen in Kotlin

  • Antworten:1
  • Bentwortet
Robbiani Renato
  • Forum-Beiträge: 648

25.12.2023, 17:57:47 via Website

Hallo zusammen

Meine App verwendet mehrere Rechte.

var rechte = arrayOf(
    Manifest.permission.WRITE_EXTERNAL_STORAGE,
    Manifest.permission.READ_EXTERNAL_STORAGE
)

Mit einem Launcher kann ich aber nur ein Recht abfragen.

private val requestPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestPermission()){ isGranted : Boolean ->
    if(isGranted){
        str_text = getString(R.string.lbl_recht_neu)
        Toast.makeText(ctx, str_text, Toast.LENGTH_SHORT).show()
    }else{
        str_text = getString(R.string.lbl_recht_fasch)
        Toast.makeText(ctx, str_text, Toast.LENGTH_SHORT).show()
        finish()
    }
}

und Starten

requestPermissionLauncher.launch(Manifest.permission.WRITE_EXTERNAL_STORAGE)

Ist es möglich mehrere Rechte mit einem Launcher abzufragen oder muss ich für jedes Recht ein eigener Launcher erstellen?

Gruss Renato

Kommentieren
Beste Antwort
Robbiani Renato
  • Forum-Beiträge: 648

25.12.2023, 18:35:45 via Website

Hallo zusammen

Ist das eine mögliche Lösung?

private val requestPermissionLauncher = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()){ isRecht : Map<String, Boolean> ->
    if( (isRecht.get(Manifest.permission.READ_EXTERNAL_STORAGE)!!) && (isRecht.get(Manifest.permission.WRITE_EXTERNAL_STORAGE)!!)){
        str_text = getString(R.string.lbl_recht_neu)
        Toast.makeText(ctx, str_text, Toast.LENGTH_SHORT).show()
    }else{
        str_text = getString(R.string.lbl_recht_fasch)
        Toast.makeText(ctx, str_text, Toast.LENGTH_SHORT).show()
        finish()
    }
}

Oder geht es besser?

Gruss Renato

Hilfreich?
Kommentieren