How do I open the "front camera" on the Android platform?
android, android-camera, camera
Solution
private Camera openFrontFacingCameraGingerbread() {
int cameraCount = 0;
Camera cam = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
cameraCount = Camera.getNumberOfCameras();
for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
cam = Camera.open(camIdx);
} catch (RuntimeException e) {
Log.e(TAG, "Camera failed to open: " + e.getLocalizedMessage());
}
}
}
return cam;
}
Add the following permissions in the `AndroidManifest.xml` file:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
Note: This feature is available in Gingerbread(2.3) and Up Android Version.
Problem
More generally, if a device has more than one embedded camera, is there a way to initialize one of them in particular? I didn't find it in Android reference documentation: - https://developer.android.com/reference/android/hardware/Camera.html - https://developer.android.com/reference/android/hardware/camera2/package-summary.html - https://developer.android.com/reference/android/hardware/camera2/CameraManager.html Samsung SHW-M100S has two cameras. If there is no reference to use two cameras, any idea how Samsung did...?