关于Android权限检测问题 在6.0系统以后由于使用的是动态权限 很好判断 关键是6.0之前的系统发现没有可用的API来获取相应的权限是否被用户禁用或者允许使用。
其中有相应的checkPermission()方法 但是这些方法只是判断清单文件中是否注册过此类权限。用户的操作是获取不到的。
Android6.0的处理方式:
PackageManager packageManager = getPackageManager();
int permission = packageManager.checkPermission("android.permission.CAMERA", "your packageName");
if(PackageManager.PERMISSION_GRANTED == permission){
//有这个权限
}else {
//没有这个权限
}
那我们如何在6.0以下的系统检测权限呢?
目前的方法是使用 try{ } catch() {} 的方式 :
/**
* 返回true 表示可以使用 返回false表示不可以使用
*/
public boolean cameraIsCanUse() {
boolean isCanUse = true;
Camera mCamera = null;
try {
mCamera = Camera.open();
Camera.Parameters mParameters = mCamera.getParameters(); //针对魅族手机
mCamera.setParameters(mParameters);
} catch (Exception e) {
isCanUse = false;
}
if (mCamera != null) {
try {
mCamera.release();
} catch (Exception e) {
e.printStackTrace();
return isCanUse;
}
}
return isCanUse;
}
这也算是一种折中方式实现拍照权限的判断。