permissionsdispatcher
引用
permissionsdispatcher引用地址
implementation’com.github.hotchemi:permissionsdispatcher:3.1.0’
AndroidMenifest添加权限
//拨打电话的权限
<uses-permission android:name="android.permission.CALL_PHONE" />
使用
/**
* 1,在需要动态申请权限的类上添加 @RuntimePermissions 的注解
*/
@RuntimePermissions
public class MainActivity extends AppCompatActivity
/**
* 1,检查是否有权限
*/
MainActivityPermissionsDispatcher.callPhoneWithPermissionCheck(MainActivity.this);
/**
* 2.需要哪些权限并获取到权限后的处理
*/
@NeedsPermission(Manifest.permission.CALL_PHONE)
void callPhone() {
}
/**
*3,对需要该权限的解释
*/
@OnShowRationale(Manifest.permission.CALL_PHONE)
void showWhy(final PermissionRequest request) {
}
/**
*4,当用户拒绝获取权限的提示
*/
@OnPermissionDenied(Manifest.permission.CALL_PHONE)
void showDenied() {
Toast.makeText(MainActivity.this, "无法获得权限", Toast.LENGTH_SHORT).show();
}
/**
*5,当用户勾选不再提示并且拒绝的时候调用的方法
*/
@OnNeverAskAgain(Manifest.permission.CALL_PHONE)
void showNeverAskAgain() {
}
/**
*6,权限回调,调用PermissionsDispatcher的回调方法
*/
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
MainActivityPermissionsDispatcher.onRequestPermissionsResult(MainActivity.this, requestCode, grantResults);
}