權限請求工具類
public class PermissionsTools {
public static PermissionsTools.Builder with(Activity activity) {
return new Builder(activity);
}
public static class Builder {
private Activity mActivity;
private List<String> permissionList;
private List<String> hasPermissionList;
public Builder(@NonNull Activity activity) {
mActivity = activity;
permissionList = new ArrayList<>();
hasPermissionList = new ArrayList<>();
}
//添加需要請求的權限
public Builder addPermission(@NonNull String permission) {
if (!permissionList.contains(permission)) {
permissionList.add(permission);
}
return this;
}
public Builder checkPermission(@NonNull String permission) {
if (ActivityCompat.checkSelfPermission(mActivity, permission) != PackageManager.PERMISSION_GRANTED) {
hasPermissionList.add(permission);
}
return this;
}
public List<String> initPermission() {
List<String> list = new ArrayList<>();
for (String permission : permissionList) {
if (ActivityCompat.checkSelfPermission(mActivity, permission) != PackageManager.PERMISSION_GRANTED) {
list.add(permission);
}
}
if (list.size() > 0) {
ActivityCompat.requestPermissions(mActivity, list.toArray(new String[list.size()]), 1);
}
return list;
}
public boolean requestPermission() {
List<String> list = new ArrayList<>();
for (String permission : hasPermissionList) {
if (ActivityCompat.checkSelfPermission(mActivity, permission) != PackageManager.PERMISSION_GRANTED) {
list.add(permission);
}
}
if (list.size() > 0) {
ActivityCompat.requestPermissions(mActivity, list.toArray(new String[list.size()]), 1);
return false;
} else {
return true;
}
}
}
}
PermissionsTools
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.