2012-06-03 3 views
0

Я разрабатываю приложение (на версии 2.2), которое использует камеру для захвата фотографий.Снимайте фотографии с фронтальных и задних камер на Android 2.2

Я прочитал от http://developer.android.com/sdk/android-2.3.html, что версия 2.3 и выше поддерживает несколько камер. Но я все еще немного смущен, потому что, когда камера запущена, у нее обычно есть кнопка, которую пользователь может щелкнуть, чтобы переключиться между фронтальной и задней камерами, не так ли?

или

2.2 не имеет этого переключателя?

Я хочу, чтобы пользователь мог использовать как переднюю, так и заднюю камеры. Возможно ли это на версии 2.2 или я должен использовать 2,3 и выше?

ответ

1

Да, 2.2 может управлять только камерой заднего вида. Для фронтальной камеры вам необходимо перейти на 2.3+.

private int getBestCameraId() { 

     PackageManager pm = m_mainThreadContext.getPackageManager(); 

     try { 
      if (pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) { 
       Log.i(TAG, "Phone has a frontal camera."); 
       return Camera.CameraInfo.CAMERA_FACING_FRONT; 
      } else { 
       Log.i(TAG, "Phone has only rear camera."); 
       return Camera.CameraInfo.CAMERA_FACING_BACK; 
       } 
     } catch (Exception e) { 
       return Camera.CameraInfo.CAMERA_FACING_BACK; 
    } 

} 

С помощью этой простой функции он проверяет, имеет ли телефон фронтальную или заднюю камеру и возвращает лучшее. Возвращенный идентификатор может использоваться в Camera.open (id) для выбора нужной камеры.

Если в вашем манифесте вы пишете:

<uses-sdk android:minSdkVersion="8" /> 

и развивать свой проект с библиотеками 2.3 (или +), функцию я выложил работаю как шарм! Я использовал в проекте камеры, поэтому поверьте мне;)

0

См этот this & this

Для интерфейсов> = 9, вы можете использовать Camera class, чтобы увидеть, если она имеет более чем одну камеру, и запросить CameraInfo

getNumberOfCameras 

getCameraInfo: 

И для Android 2.2 и более низкие версии, поддерживает одну камеру в SDK.

Смежные вопросы