Google द्वारा सभी पुराने उत्तरों के तरीकों को चित्रित किया गया है (इस तरह की परेशानियों के कारण), एपीआई 21 के बाद से आपको कैमरा आईडी एपीआई का उपयोग करने की आवश्यकता है :
यह वर्ग एपीआई स्तर 21 में पदावनत किया गया था। हम नए अनुप्रयोगों के लिए नए android.hardware.camera2 एपीआई का उपयोग करने की सलाह देते हैं।
में नए एपीआई आप लगभग पूरा हो गया बिजली एंड्रॉयड डिवाइस कैमरा और प्रलेखन स्पष्ट रूप से करने के लिए सलाह से अधिक
String[] getCameraIdList()
और फिर कैमरा खोलने के लिए प्राप्त CameraId का उपयोग करें:
void openCamera(String cameraId, CameraDevice.StateCallback callback, Handler handler)
ललाट कैमरों के 99% में आईडी = "1" है, और बैक कैमरा आईडी = "0"
इस के अनुसार:
गैर-हटाने योग्य कैमरे अपने पहचानकर्ताओं के लिए 0 से शुरू होने वाले पूर्णांक का उपयोग करते हैं, जबकि हटाने योग्य कैमरों में प्रत्येक व्यक्तिगत डिवाइस के लिए एक विशिष्ट पहचानकर्ता होता है, भले ही वे एक ही मॉडल हों।
हालांकि , इसका मतलब यह है कि अगर डिवाइस की स्थिति दुर्लभ है जैसे कि 1-ललाट -कैमरा टैबलेट आपको गिनने की जरूरत है कि आपके पास कितने एम्बेडेड कैमरे हैं, और कैमरे के क्रम को इसके महत्व ("0") के साथ रखें। तो CAMERA_FACING_FRONT == 1 CAMERA_FACING_BACK == 0, जिसका अर्थ है कि बैक कैमरा ललाट से अधिक महत्वपूर्ण है।
मुझे सभी Android उपकरणों पर ललाट कैमरे की पहचान करने के लिए एक समान विधि के बारे में नहीं पता है। सीधे शब्दों में कहा जाए, तो डिवाइस के अंदर का Android OS वास्तव में यह पता नहीं लगा सकता कि कौन सा कैमरा कुछ कारणों से ठीक है: शायद केवल कैमरा हार्डकोड आईडी एक पूर्णांक है जो इसके महत्व का प्रतिनिधित्व करता है या हो सकता है कि जो भी आपके पास होगा कुछ उपकरणों पर। " वापस"।
प्रलेखन : https://developer.android.com/reference/android/hardware/camera2/package-summax.html
स्पष्ट उदाहरण : https://github.com/googlesamples/android-Camera2Basic
पुराने एपीआई के लिए (यह अनुशंसित नहीं है, क्योंकि यह आधुनिक फोन पर नए एंड्रॉइड संस्करण पर काम नहीं करेगा और हस्तांतरण एक दर्द-इन-गधा है)। इस उत्तर में ललाट कैमरा खोलने के लिए बस एक ही Integer CameraID (1) का उपयोग करें :
cam = Camera.open(1)
अगर आपको कैमरा पार्ट करने के लिए ओपनसीवी पर भरोसा है :
के भीतर
<org.opencv.android.JavaCameraView
../>
ललाट कैमरे के लिए निम्नलिखित का उपयोग करें:
opencv:camera_id="1"