Передняя камера Android
Мне нужна ОДНА функция, чтобы проверить, существует ли передняя камера, и если да - показать предварительный просмотр.
Я нашел несколько ссылок, но каждый из них говорит о конкретном устройстве:
Может ли кто-нибудь предоставить общий код для этого? Или, может быть, комбинированный код, который будет работать со всеми устройствами?
Ответы
Ответ 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);
Ответ 3
в 2.3 это возможно. http://developer.android.com/sdk/api_diff/9/changes/android.hardware.Camera.html
Но до этого у Android-sdk не было никакого общего api для поиска и использования второй передней камеры.
Ответ 4
Я думаю, вы можете прокрутить доступные камеры по телефону и проверить facing информацию о камере, чтобы найти ее (но это только доступный уровень API уровня 9)
этот ответ может помочь вам: Как открыть "переднюю камеру" ? на платформе Android?