当Android targetSdkVersion小于23时如何检查权限

xiaoxiao2021-02-27  132

问题:

在Android M(API 23)及更高版本机器上运行targetSdkVersion < 23的应用时,当调用checkSelfPermission,返回值始终为PERMISSION_GRANTED,即使用户关闭了该权限,返回值还是PERMISSION_GRANTED。

解决办法:

1、获取应用的 targetSdkVersion 值

PackageInfo info = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(),0);

targetSdkVersion = info.applicationInfo.targetSdkVersion;

2、当targetSdkVersion >= 23时,用mContext.checkSelfPermission检查权限;

当targetSdkVersion < 23时,用PermissionChecker.checkSelfPermission检查权限

PermissionChecker.checkSelfPermission(mContext,permission)

注意:要想正常使用PermissionChecker.checkSelfPermission方法,必需依赖support v4包中的:support-core-utils-25.1.0和support-compat-25.1.0,版本号25.1.0及以上都可以,25.1.0以下会出现Do not find class AppOpsManagerCompat23的错误。

转载请注明原文地址: https://www.6miu.com/read-16097.html

最新回复(0)