I want to make a app in which I have to open only front camera, How can i do it using intent
?
private void captureImage() {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
// start the image capture Intent
startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);
}
Intent camera_intent = new Intent(MediaStore. ACTION_IMAGE_CAPTURE); startActivityForResult(camera_intent, pic_id); Now use onActivityResult() method to get the result, here the captured image.
Just double-press the power button and the camera will launch. Simple as that.
The Android Camera application encodes the photo in the return Intent delivered to onActivityResult() as a small Bitmap in the extras, under the key "data" . The following code retrieves this image and displays it in an ImageView .
java
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri photoUri = Uri.fromFile(getOutputPhotoFile());
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
intent.putExtra("android.intent.extras.CAMERA_FACING", 1);
startActivityForResult(intent, CAMERA_PHOTO_REQUEST_CODE);
Other/Alternate 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.toString());
}
}
}
return cam;
}
add these 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" />
only available in Gingerbread(2.3) and Up Android Version.
otherwise you can also check these example
1. android-Camera2Basic
2. Camera Example 2
3. Vogella example
hope it helps you..
Note: you're trying to use Intent correctly (and also note @skydroid answer below). However, it doesn't work for you probably because of below:
Using Intent
you only open the standard android camera application (back camera is default there).
Never use android.intent.extras.CAMERA_FACING
property - this is an undocumented feature that stopped working starting from some of the android versions.
To open a front camera you should use Camera API - do things like choosing the front camera, showing a preview in a view, and taking pictures manually. Answer of @skydroid shows how to find the front camera. Note that Camera.open()
doesn't open a camera for the user as you might expect, you should manually show the preview.
Also note, since API level 21 the Camera API is deprecated and docs recommend to use Camera 2 API instead. But Camera API remains fully functional and you have no other choice if you want support older versions (< API level 21) as well.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With