關(guān)于Android權(quán)限檢測問題 在6.0系統(tǒng)以后由于使用的是動態(tài)權(quán)限 很好判斷 關(guān)鍵是6.0之前的系統(tǒng)發(fā)現(xiàn)沒有可用的API來獲取相應(yīng)的權(quán)限是否被用戶禁用或者允許使用。
其中有相應(yīng)的checkPermission()方法 但是這些方法只是判斷清單文件中是否注冊過此類權(quán)限。用戶的操作是獲取不到的。
Android6.0的處理方式:
PackageManager packageManager = getPackageManager();
int permission = packageManager.checkPermission("android.permission.CAMERA", "your packageName");
if(PackageManager.PERMISSION_GRANTED == permission){
//有這個(gè)權(quán)限
}else {
//沒有這個(gè)權(quán)限
}
那我們?nèi)绾卧?.0以下的系統(tǒng)檢測權(quán)限呢?
目前的方法是使用 try{ } catch() {} 的方式 :
/**
* 返回true 表示可以使用 返回false表示不可以使用
*/
public boolean cameraIsCanUse() {
boolean isCanUse = true;
Camera mCamera = null;
try {
mCamera = Camera.open();
Camera.Parameters mParameters = mCamera.getParameters(); //針對魅族手機(jī)
mCamera.setParameters(mParameters);
} catch (Exception e) {
isCanUse = false;
}
if (mCamera != null) {
try {
mCamera.release();
} catch (Exception e) {
e.printStackTrace();
return isCanUse;
}
}
return isCanUse;
}
這也算是一種折中方式實(shí)現(xiàn)拍照權(quán)限的判斷。