有没有办法检查(/是)设备摄像头是否已启用?如果是,我该怎么办?
答案 0 :(得分:2)
是的,有可能,但需要Device Admin Permissions。如果已实现,请使用该代码:
DevicePolicyManager mDPM =
(DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
if(mDPM.getCameraDisabled(adminComponentName))
{
//do something if camera is disabled
}
答案 1 :(得分:2)
如果启用,则表示打开或当前正在使用,是的,有一种方法。
如果正在使用相机,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();
然后自己使用它。
答案 2 :(得分:0)
您可以使用包管理器检查设备是否有相机(如果这是您启用的意思):
PackageManager pm = context.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
// do your camera stuff
}