安卓6.0以后的权限需要动态申请,很是头疼的一个问题,搞了两天,用了一个第三方直接封装好的框架,完美解决,下面请看源码:
build.gradle中添加
dependencies {
compile 'pub.devrel:easypermissions:0.1.5'
}
获取权限的界面实现
EasyPermissions.PermissionCallbacks接口,
在点击相机时,获取判断有没有相应的权限,有的话,直接调用相机,没有则动态获取权限,
private static final int RC_CAMERA_PERM = 123; @AfterPermissionGranted(RC_CAMERA_PERM) public void cameraTask() { if (EasyPermissions.hasPermissions(this, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { // Have permission, do the thing! Toast.makeText(this, "TODO: Camera things", Toast.LENGTH_LONG).show(); photo();//调用相机照相 } else {//没有相应权限,获取相机权限 // Ask for one permission EasyPermissions.requestPermissions(this, "", RC_CAMERA_PERM, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE); } }@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // 将结果转发给EasyPermissions EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); }@Override public void onPermissionsGranted(int requestCode, List<String> perms) { Log.e("已获取权限", "权限"); } @Override public void onPermissionsDenied(int requestCode, List<String> perms) { Log.e("未获取权限", "未获取权限"); }完成,安卓6.0的手机获取相机权限问题解决。