Android 7.0以上照相機許可權問題處理
阿新 • • 發佈:2019-01-11
開發時遇到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);
}