如何检查设备摄像头是否已启用



是否有任何方法可以检查设备摄像头是否已启用?如果是,我该怎么办?

是的,有可能,但它需要设备管理员权限。如果你已经实现了,请使用该代码:

DevicePolicyManager mDPM =
    (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
if(mDPM.getCameraDisabled(adminComponentName))
{
//do something if camera is disabled
}

如果所说的enabled,意味着打开或当前正在使用,那么是的,有一种方法。

如果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();

然后自己使用。

您可以使用软件包管理器检查设备是否有摄像头(如果这就是您所说的启用):

http://developer.android.com/reference/android/content/pm/PackageManager.html#hasSystemFeature(java.lang.String)

PackageManager pm = context.getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
   // do your camera stuff
}

相关内容

  • 没有找到相关文章

最新更新