Android6.0以上系统获取权限
来源:互联网 发布:mac能玩什么网游 编辑:程序博客网 时间:2024/05/17 02:08
Android6.0以上系统获取权限
一、Android6.0以上系统都有那些权限需要动态获取
参考这个博客:http://blog.csdn.net/jianesrq0724/article/details/55211918
二、检查并获取
/*** 检查权限 */public static boolean checkPermission(final Activity activity, ArrayList<String> permissionsList) { //判断手机是否是6.0以上 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { for (int i = 0; i < permissionsList.size(); i++) { if (ContextCompat.checkSelfPermission(activity, permissionsList.get(i)) == PackageManager.PERMISSION_GRANTED) { permissionsList.remove(i); i--; } } } if (permissionsList.size() > 0) {//有权限没有给,返回false ActivityCompat.requestPermissions(activity,permissionsList.toArray(new String[permissionsList.size()]),1); return false; } return true;}
三、例子:百度地图定位获取权限
/** 需要请求的权限集合*/private ArrayList<String> mPermissionsList;
mPermissionsList = new ArrayList<>();//这两个属于一类权限,一类权限只显示一个获取对话框mPermissionsList.add(Manifest.permission.ACCESS_COARSE_LOCATION);//网络定位权限mPermissionsList.add(Manifest.permission.ACCESS_FINE_LOCATION);//GPS定位权限mPermissionsList.add(Manifest.permission.READ_PHONE_STATE);//手机状态权限mPermissionsList.add(Manifest.permission.WRITE_EXTERNAL_STORAGE);//向扩展卡写入数据if (ViewTools.checkPermission(this,mPermissionsList)) { startLocate();}@Overridepublic void onRequestPermissionsResult(int requestCode,String permissions[], int[] grantResults) { switch (requestCode) { case 1: { if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { startLocate(); } else { Toast.makeText(this,"定位权限拒绝",Toast.LENGTH_SHORT).show(); } return; } }}
注:
1.这样,在获取权限对话框未消失之前,百度地图定位也继续在运行,只有获取权限对话框消失后,并且获取到了权限,百度地图定位才能获取到正确的位置信息
2.权限集合中不能有如下权限,否则显示权限未获取完全
mPermissionsList.add(Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);//向SD卡写入数据
阅读全文
0 0
- Android6.0以上系统获取权限
- Android6.0以上系统权限提示获取方法
- android6.0以上版本动态获取权限
- Android6.0以上版本打电话获取权限
- Android6.0以上弹框获取权限
- Android6.0以上获取相关权限
- android6.0以上获取权限简单封装
- Android6.0极其以上系统获取Dangerous系统权限问题及其解决方案
- Android6.0以上权限获取权限的问题
- Android6.0(棉花糖)以上动态获取权限方法
- 动态一次获取多种android6.0以上的权限
- 关于Android6.0以上系统的权限问题
- Android6.0以上权限检查
- Android6.0以上权限申请
- android6.0以上特殊权限
- Android6.0以上权限申请
- Android6.0系统动态获取权限<一>
- Android6.0权限获取
- java调用tensorflow模型进行图片分类识别
- ECMAScript6
- summernote附件上传及图片上传
- codeforces 864E 背包
- 关于创建趣味编程文章列表的倡议和通告
- Android6.0以上系统获取权限
- mysql-mysql跨机器数据迁移(命令方式)
- spring+springmvc的例子
- 如何将自己的项目添加Pod
- DeepID人脸识别算法之三代
- 安全测试常用几个工具
- Java集合——HashMap、HashTable以及ConCurrentHashMap异同比较
- jq操作select
- go语言学习-变量声明