美文网首页android基础知识
当Android targetSdkVersion小于23时如何

当Android targetSdkVersion小于23时如何

作者: zhh_happig | 来源:发表于2017-06-14 17:50 被阅读3229次

问题:

在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包介绍文章。

以上文章内容,是本人工作中的总结,供大家参考,有误的地方还请指正。

相关文章

网友评论

    本文标题:当Android targetSdkVersion小于23时如何

    本文链接:https://www.haomeiwen.com/subject/krdjvttx.html