Android - Фотосъемка с фронтальной камеры поворачивает фото

Я создаю приложение на Android, в котором пользователь сможет делать снимки с фронтальной камеры только в портретном режиме. Я добился того, чтобы зафиксировать изображение с камеры в портретной ориентации, но при съемке изображение поворачивается. Хуже всего то, что направление вращения у разных телефонов разное, в одном телефоне он вращается вправо, а в другом - влево.

Вот мои фрагменты кода

Чтобы убедиться, что активность играет только в портретной

 
        
            

            
        
    

Достать камеру

   @Override
  public void onResume() {
    super.onResume();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) {
      Camera.CameraInfo info=new Camera.CameraInfo();

      for (int i=0; i < Camera.getNumberOfCameras(); i++) {
        Camera.getCameraInfo(i, info);

        if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
          camera=Camera.open(i);
        }
      }
    }

    if (camera == null) {
      camera=Camera.open();
    }
  }

Повернуть камеру

    @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
        int height) {
    if(previewing){
        camera.stopPreview();
        previewing = false;
    }

    if (camera != null){
        try {
            camera.setPreviewDisplay(surfaceHolder);
            camera.setDisplayOrientation(90);
            initPreview(width, height);
            startPreview();

            previewing = true;
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

Фото сделано

     PictureCallback myPictureCallback_JPG = new PictureCallback(){

    @Override

     public void onPictureTaken(byte[] data, Camera arg1) {
         // new SavePhotoTask().execute(data);
        Intent myIntent = new Intent(MainActivity.this, CropActivity.class);
        Bitmap bitmap = BitmapFactory.decodeByteArray(data , 0, data .length);
        myIntent.putExtra("image", bitmap);
        MainActivity.this.startActivity(myIntent);

     }};

Посылка BMP всегда появляется в повернутой форме, но не всегда с углом 90 градусов. Похоже, Android 4.0 не только вращает, но и переворачивает изображение. Есть ли хороший способ обнаружить и убедиться, что я всегда получаю правильное изображение?

Ответы на вопрос(1)

Ваш ответ на вопрос