checkSelfPermission 总是 returns GRANTED
checkSelfPermission always returns GRANTED
我有一个 Android 应用程序,我想检查相机权限。但是,即使我将其关闭(在模拟器或真实设备的应用程序设置中),结果始终为 0(GRANTED)。
我用的模拟器和真机是SDK 23,AndroidM.
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或以上,可能问题是你将构建版本设置为23但目标版本小于23。请确保所有您的 sdk 版本(构建、目标、编译)设置为 23 或更高版本。
事实上,targetSdkVersion 在 build.gradle 中必须至少为 23,但解决此问题的方法是使用:
int permissionCheck = PermissionChecker.checkSelfPermission(getReactApplicationContext(), Manifest.permission.CAMERA);
而不是:
int permissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA);
PermissionChecker returns 正确答案但不是 ContextCompat。
我有一个 Android 应用程序,我想检查相机权限。但是,即使我将其关闭(在模拟器或真实设备的应用程序设置中),结果始终为 0(GRANTED)。 我用的模拟器和真机是SDK 23,AndroidM.
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或以上,可能问题是你将构建版本设置为23但目标版本小于23。请确保所有您的 sdk 版本(构建、目标、编译)设置为 23 或更高版本。
事实上,targetSdkVersion 在 build.gradle 中必须至少为 23,但解决此问题的方法是使用:
int permissionCheck = PermissionChecker.checkSelfPermission(getReactApplicationContext(), Manifest.permission.CAMERA);
而不是:
int permissionCheck = ContextCompat.checkSelfPermission(mActivity, Manifest.permission.CAMERA);
PermissionChecker returns 正确答案但不是 ContextCompat。