Android6.0的权限问题
来源:互联网 发布:泉州师范学院软件学院 编辑:程序博客网 时间:2024/05/22 10:41
最近解决了Android6.0的权限问题,查了许多资料,也看了好多许多大神博客,现在梳理一下,总结为自己的问题。
一.检测权限的地方
我的项目:写在基类里面(BaseActivity:所有Activity继承的类)
二.代码如下:
/** * 需要进行检测的权限数组 */ protected String[] needPermissions = { Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE }; /** * 判断是否需要检测,防止不停的弹框 * true弹出权限框,false不弹出权限 */ private boolean isNeedCheck = true; @Override protected void onResume() { super.onResume(); if(isNeedCheck){ checkPermissions(needPermissions); } } /** * 判断权限,若无权限则弹框 * @param permissions */ private void checkPermissions(String... permissions) { List<String> needRequestPermissonList = findDeniedPermissions(permissions); if (null != needRequestPermissonList && needRequestPermissonList.size() > 0) { ActivityCompat.requestPermissions(this, needRequestPermissonList.toArray( new String[needRequestPermissonList.size()]), PERMISSON_REQUESTCODE); } } /** * 获取权限集中需要申请权限的列表 * @param permissions */ private List<String> findDeniedPermissions(String[] permissions) { List<String> needRequestPermissonList = new ArrayList<String>(); for (String perm : permissions) { if (ContextCompat.checkSelfPermission(this, perm) != PackageManager.PERMISSION_GRANTED) { needRequestPermissonList.add(perm); } else { if (ActivityCompat.shouldShowRequestPermissionRationale( this, perm)) { needRequestPermissonList.add(perm); } } } return needRequestPermissonList; } /** * 检测是否说有的权限都已经授权 * @param grantResults * @return */ private boolean verifyPermissions(int[] grantResults) { for (int result : grantResults) { if (result != PackageManager.PERMISSION_GRANTED) { return false; } } return true; } @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] paramArrayOfInt) { if (requestCode == PERMISSON_REQUESTCODE) { if (!verifyPermissions(paramArrayOfInt)) { showMissingPermissionDialog(); isNeedCheck = false; } } }
1 0
- Android6.0的权限问题
- android6.0权限问题
- Android6.0权限问题
- Android6.0权限问题
- android6.0权限问题
- Android6.0权限问题
- Android6.0权限问题
- android6.0权限问题
- Android6.0权限问题
- Android6.0权限问题
- 关于android6.0权限的问题
- Android6.0的蓝牙权限问题
- android6.0以上的权限问题
- Android6.0以上权限获取权限的问题
- Android6.0-蓝牙权限问题
- android6.0手机权限问题
- Android6.0权限问题处理
- 关于android6.0 权限问题
- 教你步步为营掌握自定义View
- windows-protoc buffer
- JS中在当前日期上追加一天或者获取上一个月和下一个月
- --华丽的分割线--
- CentOS 6.8上编译并安装emacs 24.5
- Android6.0的权限问题
- 关于php的全局变量global
- 代理模式——游戏代练
- Codeforces 459E 最长路
- 获得手机的IP(联网的ip)
- 说说json和jsonp,也许你会豁然开朗,含jQuery用例
- 高通平台修改LK(bootloader)开机logo
- Javascript—var操作符
- Sublime Text中文乱码的解决方法