Android 6.0权限处理

来源:互联网 发布:纪元1404 类似 知乎 编辑:程序博客网 时间:2024/06/06 08:35

一个工具类PermissionUtils
原理 : 判断是否授权 如果未授权就请求授权
优点 : 简单
缺点 : 没有做二次调用的操作,所以部分权限操作时,需要授权确认之后再次调用
直接在代码中使用即可

    /**     * 短信     */    public static boolean getSmsPermission(Activity mActivity) {        if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.READ_SMS}, REQUEST_CODE);            return true;        }        if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.RECEIVE_WAP_PUSH) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.RECEIVE_WAP_PUSH}, REQUEST_CODE);            return true;        }        if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.RECEIVE_MMS) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.RECEIVE_MMS}, REQUEST_CODE);            return true;        }        if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.RECEIVE_SMS}, REQUEST_CODE);            return true;        }        if (ActivityCompat.checkSelfPermission(mActivity, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(mActivity, new String[]{Manifest.permission.SEND_SMS}, REQUEST_CODE);            return true;        }        return false;    }

使用方法

    public void callPhone(View view) {        Intent intent = new Intent(Intent.ACTION_CALL);        intent.setData(Uri.parse("tel:10086"));        if (PermissionsUtils.getPhonePermission(this)) {            return;        }        startActivity(intent);    }

完整代码请见Github

Github地址

原创粉丝点击