案例:动态获取读写手机联系人的权限、读写手机短信的权限
1、需要先检查程序,到底有没有开启联系人的读写权限
2、如果没有开启,就打开弹窗,让用户选择是否开启此项权限
3、根据用户在弹窗中选择的结果,进行回调方法的处理。
4、若用户拒绝,可以跳转到设置界面,对该应用进行权限的管理设置
工具类
package com.example.client.util;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Build;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class PermissionUtil {
//检查多个权限,返回true表示已经完全开启权限,返回false表示未完全启用权限,需要打开弹窗让用户选择是否开启
public static boolean checkPermission(Activity act, String[] permissions, int requestCode) {
//只有在Android 6.0之后,才需要做动态的权限管理
int check = PackageManager.PERMISSION_GRANTED;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
for (String permission : permissions) {
check = ContextCompat.checkSelfPermission(act, per