我有一个android应用程序,我想检查一下相机许可。但是,即使我关闭了它(在模拟器或实际设备的应用程序设置中),结果始终是0(允许)。
我使用的模拟器和真正的设备是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

最佳答案

实际上,build.gradle中的targetsdkversion必须至少为23,但解决此问题的方法是使用:

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

而不是:
int permissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA);

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

10-05 22:20