I am developing a camera app. Picture is being successfully taken and saved. The issue is saved image appeared rotated when viewed. I came across several examples on internet to rotate the saved image. My code is as follows:
    @Override
    public void onPictureTaken(byte[] data, Camera camera) {
        Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data 
        .length);
            try {
                ContentValues v = new ContentValues();
                v.put(MediaStore.Images.Media.TITLE, 
                "test"+System.currentTimeMillis());
                v.put(MediaStore.Images.Media.DISPLAY_NAME, 
                "test"+System.currentTimeMillis());
                v.put(MediaStore.Images.Media.DESCRIPTION, "Test picture");
                v.put(MediaStore.Images.Media.DATE_ADDED, 
                 System.currentTimeMillis());
                v.put(MediaStore.Images.Media.DATE_TAKEN, 
                System.currentTimeMillis());
                v.put(MediaStore.Images.Media.DATE_MODIFIED, 
                System.currentTimeMillis());
                v.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg");
                v.put(MediaStore.Images.Media.ORIENTATION,90);
                Uri uriTarget = 
                getContentResolver().
                insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, v);
                String imagePath = getRealPathFromURI(uriTarget);
                ExifInterface ei = new ExifInterface(imagePath);
                int orientation = 
                ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, 
                ExifInterface.ORIENTATION_NORMAL);
                switch(orientation) {
                    case ExifInterface.ORIENTATION_ROTATE_90:
                       data= RotateBitmap(bitmap, 90);
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_180:
                       data= RotateBitmap(bitmap, 180);
                        break;
                    case ExifInterface.ORIENTATION_ROTATE_270:
                       data= RotateBitmap(bitmap, 180);
                        break;
                    // etc.
                }
                OutputStream imageFileOS;
                imageFileOS = 
                getContentResolver().openOutputStream(uriTarget);
                imageFileOS.write(data);
                imageFileOS.flush();
                imageFileOS.close();
                Log.d("URI",uriTarget.toString());
            } catch (Exception e) {
                e.printStackTrace();
            }
            finally
            {
                camera.startPreview();
            }
    }
};
Here is the function to get path of saved image:
    public String getRealPathFromURI(Uri contentUri) {
    String[] proj = { MediaStore.Images.Media.DATA };
    CursorLoader loader = new CursorLoader(this, contentUri, proj, null,   
    null, null);
    Cursor cursor = loader.loadInBackground();
    int column_index = 
    cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}
The issue is ExifInterface ei = new ExifInterface(imagePath); says E/JHEAD﹕ can't open '/storage/emulated/10/Pictures/1442234633142.jpg'
Check Full source code: https://github.com/SohaibFarooqi/CameraFilter/