Ho un frammento in cui sono presenti dati di riciclo e impostazione in questa panoramica di riciclaggio utilizzando l'adattatore Recyclerview.onRequestPermissionsResult che non viene chiamato in frammento se definito sia in frammento che in attività
Ora, ho un pulsante nella voce di elenco dell'adattatore che fa clic su cui ho bisogno di controllare il permesso READ_EXTERNAL_STORAGE in Android per il nuovo modello di permesso in Android.
Ho creato una nuova funzione nel frammento di questo adattatore per verificare se il permesso è concesso o meno e richiedere l'autorizzazione se non è già stato concesso.
Ho passato MyFragment.questo come un parametro in adattatore e chiamando il metodo del frammento sul pulsante clic in adattatore.
Ho usato il seguente codice per chiamare requestPermission in frammento.
if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED)){
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
ConstantVariables.READ_EXTERNAL_STORAGE);
}
ho ignorato il metodo onRequestPermissionsResult
nel frammento utilizzando il codice qui sotto:
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
switch (requestCode) {
case ConstantVariables.READ_EXTERNAL_STORAGE:
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, proceed to the normal flow.
startImageUploading();
} else {}
Ma non è sempre chiamato, invece di metodo onRequestPermissionsResult di questa attività è sempre chiamato.
Ho definito lo stesso metodo onRequestPermissionsResult anche nell'attività padre di frammento e viene richiamato.
Non riesco a rimuovere il metodo onRequestPermissionsResult dell'attività ma desidero richiamare il metodo onRequestPermissionsResult di fragment quando richiedo l'autorizzazione dal frammento. Come posso fare questo? Sto facendo qualcosa di sbagliato qui, per favore aiutatemi se qualcuno ha un'idea qui.
riferiscono questo link [permessi runtime in frammento] (http://stackoverflow.com/questions/34342816/android-6-0-multiple-permissions/38563687#38563687) Questa è la soluzione esatta –