使用
1 添加依赖
add to module’s dependencies.
dependencies {
compile 'com.github.dfqin:grantor:2.5'
}
2 使用
PermissionsUtil.requestPermission(Context context, PermissionListener listener, String[] permissions);
use in your code.
3 案例
private void requestCemera() {
PermissionsUtil.requestPermission(getApplication(), new PermissionListener() {
@Override
public void permissionGranted(@NonNull String[] permissions) {
Toast.makeText(MainActivity.this, "访问摄像头", Toast.LENGTH_LONG).show();
}
@Override
public void permissionDenied(@NonNull String[] permissions) {
Toast.makeText(MainActivity.this, "用户拒绝了访问摄像头", Toast.LENGTH_LONG).show();
}
}, Manifest.permission.CAMERA);
}
还能定制自己的提示语
private void requestReadContact() {
PermissionsUtil.TipInfo tip = new PermissionsUtil.TipInfo("注意:", "我就是想看下你的通讯录", "不让看", "打开权限");
PermissionsUtil.requestPermission(this, new PermissionListener() {
@Override
public void permissionGranted(@NonNull String[] permissions) {
JSONArray arr = null;
try {
arr = getContactInfo(MainActivity.this);
if (arr.length() == 0) {
Toast.makeText(MainActivity.this, "请确认通讯录不为空且有访问权限", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, arr.toString(), Toast.LENGTH_LONG).show();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void permissionDenied(@NonNull String[] permissions) {
Toast.makeText(MainActivity.this, "用户拒绝了读取通讯录权限", Toast.LENGTH_LONG).show();
}
}, new String[]{Manifest.permission.READ_CONTACTS}, true, tip);
}
private void requestSms() {
PermissionsUtil.requestPermission(this, new PermissionListener() {
@Override
public void permissionGranted(@NonNull String[] permissions) {
Toast.makeText(MainActivity.this, "访问消息", Toast.LENGTH_LONG).show();
}
@Override
public void permissionDenied(@NonNull String[] permissions) {
Toast.makeText(MainActivity.this, "用户拒绝了读取消息权限", Toast.LENGTH_LONG).show();
}
}, new String[]{Manifest.permission.READ_SMS}, false, null);
}