Tengo un fragmento en el que tengo vista de reciclaje y datos de configuración en esta vista de reciclaje usando el adaptador de vista de reciclaje.
Ahora, tengo un botón en el elemento de la lista del adaptador haciendo clic en el cual necesito verificar el permiso READ_EXTERNAL_STORAGE en Android para obtener un nuevo modelo de permiso en Android.
He creado una nueva función en el fragmento de este adaptador para verificar si se otorga el permiso o no y solicitar permiso si ya no se ha otorgado.
He pasado MyFragment.this como parámetro en el adaptador y llamando al método del fragmento al hacer clic en el botón en el adaptador.
He usado el siguiente código para llamar a requestPermission en fragmento.
if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
ConstantVariables.READ_EXTERNAL_STORAGE);
}
He anulado el onRequestPermissionsResult
método fragmentado usando el siguiente código:
@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 {}
Pero no se llama, en lugar del método onRequestPermissionsResult de esta actividad se llama.
También he definido el mismo método onRequestPermissionsResult en la actividad principal del fragmento y se está llamando.
No puedo eliminar el método onRequestPermissionsResult de la actividad, pero quiero llamar al método onRequestPermissionsResult del fragmento cuando solicito permiso del fragmento. ¿Cómo puedo hacer esto? ¿Estoy haciendo algo mal aquí? Ayúdenme si alguien tiene una idea aquí.