开发时遇到7.0手机如果相机权限为询问或者禁止时,点击拍照没有任何作用
使用官方推荐配置AndroidManiFest的方法依旧不行
选择使用大部分app权限没有时的做法
如果权限是询问:则申请允许权限
如果权限是禁止:则跳转权限管理app,并申请开启相机权限
如果遇到其他权限方法类似
1.创建判断当前摄像头是否有用的工具类
public class CameraCanUseUtils {/*** 测试当前摄像头能否被使用** @return*/public static boolean isCameraCanUse() {boolean canUse = true;//Camera mCamera = null;try {mCamera = Camera.open(0);mCamera.setDisplayOrientation(90);} catch (Exception e) {canUse = false;}if (canUse) {mCamera.release();mCamera = null;}//Timber.v("isCameraCanuse="+canUse);return canUse;}
}
2.如果摄像头可用,走正常操作;不可用,申请开启权限
if(CameraCanUseUtils.isCameraCanUse()) {//摄像头可用selectPicFromCamera();} else{//摄像头不可用ToastUtils.toastS(mContext, "没相机权限,请到应用程序权限管理开启权限");//跳转至app设置getAppDetailSettingIntent();}//跳转app设置
private void getAppDetailSettingIntent() {Intent localIntent = new Intent();if (Build.VERSION.SDK_INT >= 9) {localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");localIntent.setData(Uri.fromParts("package", context.getPackageName(), null));} else if (Build.VERSION.SDK_INT <= 8) {localIntent.setAction(Intent.ACTION_VIEW);localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");localIntent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName());}startActivity(localIntent);
}