android targetsdkversion 23权限,当Android targetSdkVersion小于23时如何检查权限
问题:在Android M(API 23)及更高版本机器上运行targetSdkVersion < 23的应用时,当调用checkSelfPermission,返回值始终为PERMISSION_GRANTED,即使用户关闭了该权限,返回值还是PERMISSION_GRANTED。解决办法:1、获取应用的 targetSdkVersion 值PackageInfo info = mContex
问题:
在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的错误。
不了解support v4版本的,可以查看support v4包介绍文章。
以上文章内容,是本人工作中的总结,供大家参考,有误的地方还请指正。
更多推荐
所有评论(0)