Android 6.0权限管理 private static final String TAG = "MainActivity"; private static final int REQUEST_CODE_CAMERA = 0x01; private RelativeLayout activity_main; private PermissionManager mPermissionManager= null; @Override protected voi
private static final String TAG = "MainActivity"; private static final int REQUEST_CODE_CAMERA = 0x01; private RelativeLayout activity_main; private PermissionManager mPermissionManager= null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); activity_main = (RelativeLayout) findViewById(R.id.activity_main); getPermission(); } public void getPermission() { mPermissionManager = PermissionManager.with(this) // 添加权限请求码 .addRequestCode(REQUEST_CODE_CAMERA) // 设置权限 .permissions(Manifest.permission.CAMERA) // 设置权限监听器 .setPermissionsListener(new PermissionListener() { @Override public void onGranted() { // 当权限被授予时 Log.e(TAG, "onGranted: 权限被授予"); } @Override public void onDenied() { // 用户拒绝该权限 Log.e(TAG, "onDenied: 用户拒绝该权限"); } @Override public void onShowRationale(String[] permissions) { Log.e(TAG, "onShowRationale: 再次请求"); // 当用户拒绝某权限时并点击`不再提醒`的按钮时,下次应用再请求该权限时, // 需要给出合适的响应(比如,给个展示对话框来解释应用为什么需要该权限) Snackbar.make(activity_main, "需要相机权限", Snackbar.LENGTH_INDEFINITE) .setAction("ok", new View.OnClickListener() { @Override public void onClick(View v) { // 必须调用manager.setIsPositive(true); mPermissionManager.setIsPositive(true); mPermissionManager.request(); } }) .show(); } }) .request(); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode){ case REQUEST_CODE_CAMERA: mPermissionManager.onPermissionResult(permissions,grantResults); break; } }permission.jar permission.jar PermissionDemo.zip PermissionDemo.zip