请求权限调不起来,Can request only one set of permissions at a time

来源:互联网 发布:软件模块接口 规范 编辑:程序博客网 时间:2024/05/21 06:53

前天遇到个奇怪的问题,也不奇怪。

就是在扫码界面请求拍照权限,请求权限弹窗始终不会出来。

一路debug进去,发现是activity类下的

public final void requestPermissions(@NonNull String[] permissions, int requestCode) {    if (mHasCurrentPermissionsRequest) {        Log.w(TAG, "Can reqeust only one set of permissions at a time");        // Dispatch the callback with empty arrays which means a cancellation.        onRequestPermissionsResult(requestCode, new String[0], new int[0]);        return;    }    Intent intent = getPackageManager().buildRequestPermissionsIntent(permissions);    startActivityForResult(REQUEST_PERMISSIONS_WHO_PREFIX, intent, requestCode, null);    mHasCurrentPermissionsRequest = true;}
此方法里的mHasCurrentPermissionsRequest为true,log显示也是 Can request only one set of permissions at a time。一次只能请求一组权限。

问题是我就单单请求了一个拍照权限,没有同时多次请求

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {    if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CAMERA}, PERMISSION_CAMERA_CODE);    }}
无奈,只好各种调试,发现在其他界面是可以正常调起来,总结下就是requestPermissions方法的第一个参数有问题。

但是看了半天activity类,还是没看懂mHasCurrentPermissionsRequest这个变量是怎么就被赋值为true了。

求哪位大神阅读这块的源码可以给个正确的解释,跪谢!!!

阅读全文
0 0
原创粉丝点击