Eu tenho um fragmento no qual tenho uma visão de reciclagem e definindo dados nessa visão de reciclagem usando o adaptador de visão de reciclagem.
Agora, estou com um botão no item de lista do adaptador clicando no qual preciso verificar a permissão READ_EXTERNAL_STORAGE no android para obter um novo modelo de permissão no android.
Eu criei uma nova função no fragmento deste adaptador para verificar se a permissão foi concedida ou não e, se já não tiver sido concedida, solicitar a permissão.
Passei MyFragment.this como um parâmetro no adaptador e, chamando o método do fragmento no botão, clique no adaptador.
Eu usei o código abaixo para chamar requestPermission no 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);
}
Eu substituí o onRequestPermissionsResult
método no fragmento usando o código abaixo:
@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 {}
Mas não está sendo chamado, em vez do método onRequestPermissionsResult desta atividade ser chamado.
Eu defini o mesmo método onRequestPermissionsResult na atividade pai do fragmento também e está sendo chamado.
Não consigo remover o método onRequestPermissionsResult da atividade, mas quero chamar o método onRequestPermissionsResult do fragmento quando solicito permissão do fragmento. Como posso fazer isso? Estou fazendo algo errado aqui, por favor me ajude se alguém tiver idéia aqui.