所有舊的答案的方法都被Google棄用(據推測是因爲這樣的麻煩),因爲API 21你需要use Camera 2 API:
這個類是在API級別21.我們建議使用新 android.hardware.camera2 API爲新的應用不推薦使用。
在the newer API你有在Android設備上的攝像頭和文檔幾乎完整的電源明確意見,
String[] getCameraIdList()
,然後用獲得的CameraId打開攝像頭:
void openCamera(String cameraId, CameraDevice.StateCallback callback, Handler handler)
99%的正面相機的ID =「1」,後置相機ID =「0」根據本:從0開始爲他們的 標識符
不可移動相機使用整數,而可移動的攝像機對每個個體 設備的唯一標識符,即使是同一型號。
然而,這意味着如果設備情況很少見像剛纔1-正面-camera平板電腦就需要數多少嵌入式相機你有,並通過它的重要性將相機的順序(」 0" )。因此,CAMERA_FACING_FRONT == 1 CAMERA_FACING_BACK == 0,這意味着後置攝像頭比正面更重要重要。
我不知道制服確定所有Android設備上的正面相機的方法。簡而言之,設備內部的Android操作系統無法真正發現哪個相機正是由於某些原因而存在的地方:也許唯一的相機硬編碼ID是一個代表其重要性的整數,或者可能在某些設備上,無論您轉向哪一方。「背部」。
文檔:https://developer.android.com/reference/android/hardware/camera2/package-summary.html
明確例子:https://github.com/googlesamples/android-Camera2Basic
對於老年API(不推薦,因爲它不會在現代的手機上運行新的Android版本,轉移是一個痛苦的屁股)。只要使用相同的整數 CameraID(1)this answer打開前攝像頭,如:
cam = Camera.open(1);
如果您信任OpenCV做攝像頭部分:
內
<org.opencv.android.JavaCameraView
../>
使用以下爲正面相機:
opencv:camera_id="1"
可能重複[如何使用Front三星置攝像頭Galaxy S](http://stackoverflow.com/questions/4241292/how-to-use-front-facing-camera-on-samsung-galaxy-s) – voyager 2010-12-28 00:07:21