I want to force the default android camera to take photo in landscape mode only. I have tried following:
Intent cameraIntent=new Intent("android.media.action.IMAGE_CAPTURE");
File photo = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "Pic.jpg");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
startActivity(cameraIntent);
but this works only in 2.1 not for later. I just want to have photo image to be saved in landscape mode. I don't want to use any image processing such as matrix or custom camera.
Note: I am calling this intent from the activity which has the orientation fixed as "portrait"
Using
ACTION_IMAGE_CAPTURE
intent you have limited control of the app that actually drives the camera. You can expect it to comply with the Intent contract, but nothing more than that.You can receive the image from this intent and force rotate it to Landscape, if you are interested. Note that many camera apps today only produce Landscape photos anyway.
In androidmanifest.xml
This activity will be your image capturing activity.