每次使用不同的请求代码调用 onRequestPermissionsResult
onRequestPermissionsResult called with a different request code each time
我使用此代码在片段中请求许可
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
,我将在 onRequestPermissionsResult
上获得请求代码 65550
。如果我拒绝许可请求而不是再次请求它,我会得到一个不同的请求代码。这是使用相同的 requestPermissions
和代码 14
调用的 5 onRequestPermissionsResult
的输出
Request Code: 65550
Request Code: 131086
Request Code: 196622
Request Code: 262158
Request Code: 327694
您的 activity 不知道哪个片段在调用 startActivityForResult
因此,如果您从片段中调用 startActivityForResult(intent, 1)
,则需要将其替换为 getActivity().startActivityForResult(intent, 1)
它很可能会解决您的问题
希望对您有所帮助。
我使用此代码在片段中请求许可
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
,我将在 onRequestPermissionsResult
上获得请求代码 65550
。如果我拒绝许可请求而不是再次请求它,我会得到一个不同的请求代码。这是使用相同的 requestPermissions
和代码 14
onRequestPermissionsResult
的输出
Request Code: 65550
Request Code: 131086
Request Code: 196622
Request Code: 262158
Request Code: 327694
您的 activity 不知道哪个片段在调用 startActivityForResult
因此,如果您从片段中调用 startActivityForResult(intent, 1)
,则需要将其替换为 getActivity().startActivityForResult(intent, 1)
它很可能会解决您的问题
希望对您有所帮助。