checkSelfPermission始终返回GRANTED

时间:2017-06-12 20:13:57

标签: java android permissions android-camera

我有一个Android应用程序,我想查看相机权限。但是,即使我关闭它(在模拟器或真实设备的应用程序设置中),结果始终为0(GRANTED)。 我使用的模拟器和真实设备是在SDK 23,Android M。

int permissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA);

在AndroidManifest.xml中,我有:

<uses-permission android:name="android.permission.CAMERA" />

当我记录下来时:

System.out.println("Build.VERSION.SdkInt : " + VERSION.SDK_INT);
System.out.println("permissionCheck : " + permissionCheck);

我明白了:

Build.VERSION.SdkInt : 23
permissionCheck : 0

2 个答案:

答案 0 :(得分:2)

实际上build.dkVersion必须在build.gradle中最少为23,但是这个问题的解决方案是使用:

int permissionCheck = PermissionChecker.checkSelfPermission(getReactApplicationContext(), Manifest.permission.CAMERA);

而不是:

int permissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA);

PermissionChecker返回正确的答案,但不返回ContextCompat。

答案 1 :(得分:0)

检查“build.gradle”中的“targetSdkVersion”,它必须是23或更高,可能问题是您已将构建版本设置为23但目标版本小于23.请确保所有sdk版本( build,target,compile)设置为23或以上。