很多人和我一样被官网的

 ActivityCompat.checkSelfPermission(context, Manifest.permission."XXX XXX XXX")== PackageManager.PERMISSION_GRANTED;获取权限功能忽悠了。这个对于某些权限不适应,比如获取通讯录读写权限等等。这里给出我自己的获取权限方法,很好用的。话不多说直接上代码:
/*** 判断是否拥有联系人读取权限** @param context* @return* XXX代表权限字符串,比如 READ_CONTACTS 通讯录读取权限*/
public static boolean havaReadContacts(Context context,String xxx) {boolean have = false;ActivityCompat.checkSelfPermission(context, Manifest.permission.xxx);if (Build.VERSION.SDK_INT >= 23) {AppOpsManager appOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);int checkOp = appOpsManager.checkOp(AppOpsManager.OPSTR_READ_CONTACTS, android.os.Process.myUid(), context.getPackageName());LogUtil.e(TAG, "checkOp:" + checkOp);switch (checkOp) {case AppOpsManager.MODE_ALLOWED:LogUtil.e(TAG, "AppOpsManager.MODE_ALLOWED :有权限");have = true;break;case AppOpsManager.MODE_IGNORED:LogUtil.e(TAG, "AppOpsManager.MODE_IGNORED:被禁止了");have = false;break;case AppOpsManager.MODE_DEFAULT:LogUtil.e(TAG, "AppOpsManager.MODE_DEFAULT");break;case AppOpsManager.MODE_ERRORED:LogUtil.e(TAG, "AppOpsManager.MODE_ERRORED:出错了");have = false;break;case 4:LogUtil.e(TAG, "AppOpsManager.OTHER:权限需要询问");have = false;break;}} else {have = ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_CONTACTS)== PackageManager.PERMISSION_GRANTED;}return have;
}

Android获取通讯录权限6.0及以上相关推荐

  1. Android获取通讯录信息

    Android获取通讯录信息 欢迎关注本人网站:rytter的私人博客网站 权限申请 自Android6.0以后,Android权限申请全部要求为动态申请(注:通讯录权限为危险权限),权限申请方法如下 ...

  2. Android 获取通讯录联系人,打开通讯录获取联系人信息;整个流程封装在基类中;

    打开原生通讯录获取联系人姓名和手机号 1.获取通讯录权限: <!--访问通讯录--><uses-permission android:name="android.permi ...

  3. Android获取Root权限

    对于新近入手Android系统手机的机友来说,一定会接触到一个新词"ROOT",他的出现频率很高,在各个论坛上,网友的字里行间经常会出现,那么获取Root权限呢? [b]工具/原料 ...

  4. android6.0获取通讯录权限

    android6.0中,获取通讯录的权限是     <uses-permission android:name="android.permission.GET_ACCOUNTS&quo ...

  5. android 获取手机号码 权限,Android跳转到通讯录获取用户名称和手机号码

    思路: 1.点击跳转到通讯录界面 ` Uri uri = Uri.parse("content://contacts/people"); Intent intent = new I ...

  6. android获取通讯录的权限错误

    写个获取通讯录信息的小东东,运行发现权限出错,于是在AndroidManifest.xml加了权限,结果还是权限出错,郁闷了半天... 解决办法:再Permissions里手动添加就不会了...

  7. android动态获取地理位置权限,Android6.0获取GPS定位和获取位置权限和位置信息的方法...

    1.添加权限--6.0之后要动态获取,下面会说 2.直接上代码,不多说,代码中注释很详细. private static final int BAIDU_READ_PHONE_STATE = 100; ...

  8. android 4.0 打开gps,Android获取定位权限,手动打开GPS

    获取定位权限,并且在没有打开GPS的时候引导用户打开手机GPS定位. 超级简单的 private Button button; private int GPS_REQUEST_CODE = 1; @O ...

  9. android 获取通讯录全选反选_Xamarin.Forms读取并展示Android和iOS通讯录 TerminalMACS客户端...

    本文同步更新地址: https://dotnet9.com/11520.html https://terminalmacs.com/861.html 阅读导航: 一.功能说明 二.代码实现 三.源码获 ...

最新文章

  1. 清除vs2003-vs2008起始页最近打开项目
  2. 【MySQL】玩转定时器
  3. 训练机器人看脸读“心”,真的靠谱吗?
  4. ios10前台收到推送_IOS - 前台时的推送弹窗效果
  5. Bailian2944 单词替换【字符串流】
  6. 牛客小白月赛6 A 鲲
  7. Java中文乱码解决方式
  8. Gradle下载官方地址
  9. 这个网站堪称宝藏,收藏起来吧
  10. 【119天】尚学堂高琪Java300集视频精华笔记(24-30)
  11. mysql 内联注释_TSRC挑战赛:WAF之SQL注入防御思路分享
  12. This is probably not a problem with npm. There is likely additional logging output above.
  13. EXCEL应用:数据可视化终极教程
  14. SpringBoot+OAuth2+JWT实现单点登录SSO完整教程,竟如此简单优雅!
  15. win10桌面计算机在哪里打开,Win10计算器在哪里?三种可以打开Win10计算器的方法图文介绍...
  16. 3*3 数字拼图(去除无解的随机组合)
  17. CV深度学习项目调试开发过程中报错记录【持续更新】
  18. 2021年成都列五高中高考成绩查询,2021年成都高考各高中成绩及本科升学率数据排名及分析...
  19. mysql 人名用什么类型_MySQL 基础(二)
  20. 为什么需要运营商级NAT设备?

热门文章

  1. java点击按钮隐藏图片6_原生JS实现隐藏显示图片 JS实现点击切换图片效果
  2. 几何画板中去除画出的线段的教程
  3. 第八篇order订单专题(2)订单通知及属性
  4. 获取浏览器中鼠标选中的文本内容
  5. go环境搭建开发工具安装配置
  6. 中国工程科学院计算机院士,重磅!中国科学院和中国工程院2019新院士名单公布!50所高校新晋院士77人...
  7. Youtube2016推荐召回算法细节及最终实现(离线服务)——完整版
  8. iOS平台手机银行App大多存安全风险漏洞
  9. 生日游戏html,创意生日聚会游戏
  10. Flume 海量日志收集利器