我有一个片段,其中有recyclerview并使用recyclerview适配器在此recyclerview中设置数据。
现在,我在适配器的列表项中有一个按钮,单击该按钮后,我需要检查android中的READ_EXTERNAL_STORAGE权限以获取android中的新权限模型。
我在此适配器的片段中创建了一个新函数,以检查是否已授予许可,如果尚未授予许可,则请求许可。
我已将MyFragment.this作为适配器中的参数传递,并在按钮中单击适配器中的调用片段的方法。
我已使用以下代码在片段中调用requestPermission。
if(ContextCompat.checkSelfPermission(mContext, Manifest.permission.READ_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED){
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
ConstantVariables.READ_EXTERNAL_STORAGE);
}
我onRequestPermissionsResult
通过使用以下代码覆盖了片段中的方法:
@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 {}
但是不会被调用,而是会调用此Activity的onRequestPermissionsResult方法。
我在片段的父活动中也定义了相同的onRequestPermissionsResult方法,并且该方法被调用。
我无法删除活动的onRequestPermissionsResult方法,但是想在请求片段的权限时调用片段的onRequestPermissionsResult方法。我怎样才能做到这一点?我在这里做错什么,如果有人在这里有想法请帮助我。