最近更新:2020-04-22,添加“不再提醒”选项的处理逻辑;重构。
支持:
- 权限不足时,可使用默认提示框;
- 权限不足时,也可自定义提示框
宗旨:减少Ctrl+Ctrl+V的重复劳动。
注意:用户选择“不再提示”选项,requestPermissions会调用失败,但是会走onRequestPermissionsResult回调。所以可以在onRequestPermissionsResult方法中判断shouldShowRequestPermissionRationale方法。
shouldShowRequestPermissionRationale返回值:
- true:再次申请权限,会出现一个“权限被拒后,不再提示”的选项;
- false: 如果用户选择“不再提示”选项,会返回false。表示用户不想再看。 具体可以参考:这篇文章或者官网
该库的使用方式:
maven { url 'https://jitpack.io' }
implementation 'com.github.jjjSilence:PermissionUtils:1.0.5'
默认提示框的示例代码
private PermissionManager mPermissionManager;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xxx);
mPermissionManager = new PermissionManager(this, NEEDED_PERMISSIONS,
new DefaultPermissionCallback() {
@Override
public void grantedPermissions() {
//初始化工作
//init();
mStatusButton.setText("已获取权限");
}
@Override
public void deniedPermissions() {
mStatusButton.setText("未获取权限");
}
});
}
@Override
protected void onResume() {
super.onResume();
mPermissionManager.onResume();
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
mPermissionManager.onRequestPermissionsResult(requestCode);
}