Android ContextCompat.checkSelfPermission 无效问题 | 幸福的猪窝

Android ContextCompat.checkSelfPermission 无效问题

起因

最近给客户的Android App中。在使用ContextCompat.CheckSelfPermission()时无论如何开关权限返回值都是PackageManager.PERMISSION_GRANTED。导致在Android 6.0以上的系统中运行APP时无法正确获得位置服务的状态。 网上搜索许久后终于找到原因 : 只要App的targetSDKVersion < 23,那么ContextCompat.CheckSelfPermission()无论什么请款都返回PackageManager.PERMISSION_GRANTED,就算是运行在Android 6.0以上版本的系统中也不行。

解决办法:

使用PermissionChecker.checkSelfPermission() 方法检查权限。 这个方法在 android.support.v4.content 包下。官网的描述这个对象专门就是用于在 targetSDKVersion < 23 的情况下检查权限使用的。对比android.support.v4 类库代码后发现也是在23.0.0这个版本中加入的,所以必须要有android-23的SDK包才能使用。如果找不到这个类请升级一下SDK后再看看。或者检查一下引用的android.support.v4 类库版本。

参考原文: https://my.oschina.net/u/990728/blog/549914
参考链接: Permission Checker

  • 本文作者: Vincent Dong
  • 本文链接: 124.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!