每次使用不同的请求代码调用onRequestPermissionsResult

时间:2016-09-28 12:20:59

标签: android android-studio android-permissions

我在使用此代码的片段中请求权限

requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE},14);

并在我的HomeActivity我使用此代码获取结果

@Override
    public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
        Log.i("permission", "Request Code: "+ requestCode);}

例如,如果我将代码设置为14,我会在65550上获得请求代码onRequestPermissionsResult。如果我拒绝许可请求而不是再次请求它,我会收到不同的请求代码。这是使用相同onRequestPermissionsResult并使用代码14

调用的5 requestPermissions的输出
Request Code: 65550
Request Code: 131086
Request Code: 196622
Request Code: 262158
Request Code: 327694

1 个答案:

答案 0 :(得分:2)

您的活动并不知道哪个片段正在调用startActivityForResult

因此,如果您从片段中调用startActivityForResult(intent, 1),则需要将其替换为getActivity().startActivityForResult(intent, 1)

它很可能会解决您的问题

希望它有所帮助。