Как проверить, включена ли камера устройства?

Есть ли способ проверить, включены ли камеры камеры? Если да, что мне делать?

3 ответа

Решение

Да, такая возможность есть, но для этого требуются разрешения администратора устройства. Если вы реализовали это, используйте этот код:

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

Если под включенным, вы имеете в виду открытый или используемый в данный момент, то да, есть способ.

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

PackageManager pm = context.getPackageManager();

if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)) {
   // do your camera stuff
}
Другие вопросы по тегам