相关疑难解决方法(0)

如果片段和活动中都定义了onRequestPermissionsResult,则不会在片段中调用它

我有一个片段,我在其中使用recyclerview适配器在recyclerview中使用recyclerview和设置数据.

现在,我在适配器的列表项中点击了一个按钮,我需要在android中检查android中的新权限模型的READ_EXTERNAL_STORAGE权限.

我已在此适配器的片段中创建了一个新函数,以检查是否授予了权限,如果尚未授予权限,则请求权限.

我已经通过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);
    }
Run Code Online (Sandbox Code Playgroud)

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 {}
Run Code Online (Sandbox Code Playgroud)

但它没有被调用,而是调用了这个Activity的onRequestPermissionsResult方法.

我已经在片段的父活动中定义了相同的onRequestPermissionsResult方法,并且它被调用.

我无法删除活动的onRequestPermissionsResult方法,但是当我请求片段的权限时,我想调用片段的onRequestPermissionsResult方法.我怎样才能做到这一点?我在这里做错了什么,如果有人在这里有想法,请帮助我.

android android-6.0-marshmallow

132
推荐指数
7
解决办法
5万
查看次数

Android权限:用户按"允许"后执行任务

我想知道当用户按下"允许"按钮进行联系方式访问/日历访问等时,我们是否有办法识别事件,

我知道有一种方法可以通过ActivityCompat.requestPermissions请求权限,但有没有办法在用户授​​予权限后立即执行操作?

android android-permissions

18
推荐指数
1
解决办法
2万
查看次数