依赖库:
compile 'pub.devrel:easypermissions:0.2.0'
public class RuntimePermissionsActivity extends BaseNewActivity implements EasyPermissions.PermissionCallbacks {
@Override
protected int getLayoutResID() {
return 0;
}
@Override
protected void initViews() {
}
@Override
protected void initData() {
requestPermisions();
}
private static final int REQUEST_CODE_CAMERA = 1;
private void requestPermisions() {
String camera = Manifest.permission.CAMERA;
if (EasyPermissions.hasPermissions(this, camera)) {
} else {
// Ask for one permission
EasyPermissions.requestPermissions(this, "需要请求运行时权限",
REQUEST_CODE_CAMERA, camera);
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {//安卓api
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
handleResult(requestCode, permissions, grantResults);
}
private void handleResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
}
@Override
public void onPermissionsGranted(int requestCode, List<String> perms) {//EasyPermissions框架的api
switch (requestCode) {
case REQUEST_CODE_CAMERA:
//相机权限申请成功
break;
}
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {//EasyPermissions框架的api
switch (requestCode) {
case REQUEST_CODE_CAMERA:
//相机权限申请失败,弹出跳转系统权限设置界面
new AppSettingsDialog.Builder(this, "当前App需要申请相机权限,需要打开设置页面么?")
.setTitle("权限申请")
.setPositiveButton("确认")
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
} )
.setRequestCode(REQUEST_PERMS)
.build()
.show();
break;
}
}
}