Tüm eski yanıtların yöntemleri Google tarafından (sözde bunun gibi sorunlar nedeniyle) kullanımdan kaldırılmıştır, API 21'den beri Camera 2 API'sini kullanmanız gerekir :
Bu sınıf, API seviyesi 21'de kullanımdan kaldırılmıştır. Yeni uygulamalar için yeni android.hardware.camera2 API'sini kullanmanızı öneririz.
Gelen yeni API var neredeyse tam güç Android cihazı kamera ve belgelere açıkça tavsiye üzerine
String[] getCameraIdList()
ve ardından kamerayı açmak için elde edilen CameraId'yi kullanın:
void openCamera(String cameraId, CameraDevice.StateCallback callback, Handler handler)
Buna göre ön kameraların% 99'u id = "1" ve arka kamera kimliği = "0"
değerine sahiptir:
Çıkarılamayan kameralar, tanımlayıcıları için 0'dan başlayan tamsayılar kullanırken, çıkarılabilir kameralar, aynı model olsalar bile her bir cihaz için benzersiz bir tanımlayıcıya sahiptir.
Bununla birlikte , bu, cihaz durumu sadece 1 ön kameralı tablet gibi nadirse, kaç tane gömülü kameranız olduğunu saymanız ve kameranın önem derecesine göre sırasını ("0") vermeniz gerektiği anlamına gelir . Dolayısıyla CAMERA_FACING_FRONT == 1 CAMERA_FACING_BACK == 0, bu da arka kameranın önden daha önemli olduğu anlamına gelir .
Tüm Android cihazlarda ön kamerayı tanımlamak için tek tip bir yöntem bilmiyorum . Basitçe söylemek gerekirse, cihazın içindeki Android işletim sistemi, bazı nedenlerden ötürü hangi kameranın tam olarak nerede olduğunu tam olarak bulamıyor: belki de kodlanmış tek kamera kimliği, önemini temsil eden bir tamsayıdır veya belki bazı cihazlarda hangi tarafa bakarsanız bakın .. " geri".
Belgeler : https://developer.android.com/reference/android/hardware/camera2/package-summary.html
Açık Örnekler : https://github.com/googlesamples/android-Camera2Basic
Eski API için (tavsiye edilmez, çünkü modern telefonlarda daha yeni Android sürümünde çalışmayacaktır ve aktarım bir acıdır). Bu cevapta olduğu gibi ön kamerayı açmak için aynı Tamsayı Kamera Kimliğini (1) kullanın :
cam = Camera.open(1)
OpenCV'nin kamera bölümünü yapması için güveniyorsanız :
İçeride
<org.opencv.android.JavaCameraView
../>
ön kamera için aşağıdakileri kullanın:
opencv:camera_id="1"