Подтвердить что ты не робот

Передняя камера Android

Мне нужна ОДНА функция, чтобы проверить, существует ли передняя камера, и если да - показать предварительный просмотр. Я нашел несколько ссылок, но каждый из них говорит о конкретном устройстве:

Может ли кто-нибудь предоставить общий код для этого? Или, может быть, комбинированный код, который будет работать со всеми устройствами?

4b9b3361

Ответ 1

Для API >= 9 вы можете использовать класс Camera: http://developer.android.com/reference/android/hardware/Camera.html, чтобы узнать, он имеет более одной камеры и запрашивает CameraInfo

  • getNumberOfCameras

  • getCameraInfo:

http://developer.android.com/reference/android/hardware/Camera.CameraInfo.html

Константы

int CAMERA_FACING_BACK Лицевая сторона камеры противоположна поверхности экрана.

int CAMERA_FACING_FRONT Вид камеры такой же, как на экране.


Для API >= 5 можно прочитать public List<Camera.Size> getSupportedPictureSizes (). Передние камеры, как правило, имеют намного меньшее максимальное разрешение, чем задние камеры.

http://developer.android.com/reference/android/hardware/Camera.Parameters.html

Ответ 2

Это было опубликовано kcoppock, но я подумал, что кто-то встретит это сообщение. Я проверил его лично, отлично поработал над Froyo.

PackageManager pm = getPackageManager();
boolean frontCam, rearCam;

//It would be safer to use the constant PackageManager.FEATURE_CAMERA_FRONT
//but since it is not defined for Android 2.2, I substituted the literal value
frontCam = pm.hasSystemFeature("android.hardware.camera.front");

rearCam = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);