Android 6.0权限控制

来源:互联网 发布:冰岛旅游 知乎 编辑:程序博客网 时间:2024/06/07 00:42
1:在BaseActiviy或者BaseFragment中添加代码:
/** * Manifest.permission. READ_PHONE_STATE * Manifest.permission. WRITE_EXTERNAL_STORAGE * Manifest.permission.ACCESS_FINE_LOCATION * Manifest.permission.CAMERA * Manifest.permission.RECORD_AUDIO * Manifest.permission.READ_PHONE_STATE * Manifest.permission.WRITE_EXTERNAL_STORAGE *权限检查 */public final static int REQ_CAMERA_PMS = 0x001;public final static int REQ_RECORD_PMS = 0x002;public final static int REQ_lOCATION_PMS = 0x003;public final static int REQ_READ_PHONE_STATE_PMS = 0x004;public final static int REQ_WRITE_EXTERNAL_STORAGE_PMS = 0x005;public boolean permissionIsGet(int reqCode,String permission){    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {        requestPermissions(new String[]{permission}, reqCode);        return false;    }else{        return true;    }}//并监听用户权限选择返回@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {    switch (requestCode) {        case REQ_RECORD_PMS:            if (grantResults != null && grantResults.length != 0)                if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {                    ToastUtil.show("您需要开启语音权限,并重启应用");                }            break;        case REQ_CAMERA_PMS:            if (grantResults != null && grantResults.length != 0)                if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {                    ToastUtil.show("您需要开启照相权限,并重启应用");                }            break;        case REQ_lOCATION_PMS:            if (grantResults != null && grantResults.length > 1)                if (grantResults[0] != PackageManager.PERMISSION_GRANTED && grantResults[1] != PackageManager.PERMISSION_GRANTED) {                    ToastUtil.show("您需要开启定位权限,并重启应用");                }else{                    permissionLocGeted();                }            break;        case REQ_READ_PHONE_STATE_PMS:            if (grantResults != null && grantResults.length > 1)                if (grantResults[0] != PackageManager.PERMISSION_GRANTED && grantResults[1] != PackageManager.PERMISSION_GRANTED) {                    ToastUtil.show("您需要开启获取手机状态权限,并重启应用");                }else{                    permissionLocGeted();                }            break;        case REQ_WRITE_EXTERNAL_STORAGE_PMS:            if (grantResults != null && grantResults.length > 1)                if (grantResults[0] != PackageManager.PERMISSION_GRANTED && grantResults[1] != PackageManager.PERMISSION_GRANTED) {                    ToastUtil.show("您需要开启读取内存权限,并重启应用");                }else{                    permissionLocGeted();                }            break;        default:            super.onRequestPermissionsResult(requestCode, permissions, grantResults);    }}/** *定位权限获取到时候的处理 */public void permissionLocGeted(){}
2:使用:
if (!permissionIsGet(REQ_RECORD_PMS, Manifest.permission.RECORD_AUDIO)) {    return true;}

                                             
0 0
原创粉丝点击