有什么方法可以检查是否启用了设备摄像头?如果是,我该怎么办?
问问题
2252 次
3 回答
2
是的,有可能,但它需要Device Admin Permissions。如果您已经实现,请使用该代码:
DevicePolicyManager mDPM =
(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
if(mDPM.getCameraDisabled(adminComponentName))
{
//do something if camera is disabled
}
于 2013-08-10T17:16:01.710 回答
2
如果启用,您的意思是打开或当前正在使用,那么是的,有办法。
如果 Camera 正在使用中,Camera.open() 会给你一个异常。
因此,您可以使用它来检查摄像头是否已启用、当前正在使用,或者是否真的有摄像头。
/** how to get the camera object savely */
public static Camera getCameraInstance(){
Camera c = null;
try {
c = Camera.open(); // try to get camera
}
catch (Exception e){
// Camera is not available (in use) or does not exist
}
return c; // null will be returned if unavailable, or non existent
}
如果相机当前正在使用但您想使用它,只需调用
Camera.release();
然后自己使用。
于 2013-08-10T17:17:06.657 回答
0
您可以使用包管理器检查设备是否有摄像头(如果这就是启用的意思):
PackageManager pm = context.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
// do your camera stuff
}
于 2013-08-10T17:43:28.673 回答