我有一个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
答案 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或以上。