현재 사진 저장은 간략하게 아래와 같은 형식으로 하고 있습니다.
landscape로 찍은 사진은 아무런 문제가 없지만 세로사진은 portrait를 인식하지 못해서 세로로 찍은 사진은 90도 돌아가는 현상이
발생하기에 OrientationEventListener를 이용해서 디바이스의 각도를 계산하여 portrailt일때는 90를 보정해서 저장하게 했습니다.

<저장부분>
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    
    File f = null;
    try {
     f = new File(Environment.getExternalStorageDirectory(), "tmp_photo_baby.jpg");
    }catch (Exception e){
     e.printStackTrace();
    }
    
    fullUri = Uri.fromFile(f);
    
    intent.putExtra(MediaStore.EXTRA_OUTPUT,fullUri);
    startActivityForResult(intent, TAKE_PICTURE);

===============

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

Uri photoUri = fullUri;
   try {
    
    Bitmap tmp = Images.Media.getBitmap(getContentResolver(), photoUri);
    int _height = tmp.getHeight();
    int _width = tmp.getWidth();
    
    //int height,width = 0;
    
    Bitmap photo = null;
    
    if (screenHeight > screenWidth){
     Matrix matrix = new Matrix();
     matrix.postRotate(90);

     // recreate the new Bitmap
     Bitmap resizedBitmap = Bitmap.createBitmap(tmp, 0, 0, _width, _height, matrix, true);
     fullBitMap = Bitmap.createScaledBitmap(resizedBitmap, 480, 800, true);
     photo = Bitmap.createScaledBitmap(resizedBitmap, 104, 104, true);
    }else{
     int height = _height*480 / _width;
     fullBitMap = Bitmap.createScaledBitmap(tmp, 480,height , true);
     photo = Bitmap.createScaledBitmap(tmp, 104, 104, true);
    }
    
    imgPhoto.setImageBitmap(photo);
    imgNoPhoto.setVisibility(View.GONE);
   } catch (FileNotFoundException e) {
    e.printStackTrace();
   } catch (IOException e) {
    e.printStackTrace();
   }
}

=============================================

일단 여기까지는 제대로 됩니다만 이렇게 저장한 사진을 사진첩에서 불러오기로 하면 다시 90도가 돌아가는 현상이 발생합니다.

기본 갤러리를 이용해서 확인하면 세로사진은 세로사진으로 제대로 보입니다만 아래 소스형태를 이용해서 setImageBitmap을 하면
다시 90가 돌아가네요. ㅜㅠ.
단 가져올 때 가로사진도 있기 때문에 무조건 돌릴 수는 없고 이게 가로 사진인지 세로사진인지 알 수 있어야 합니다.
사진을 불러오는 부분의 소스입니다.

<사진첩에서 가져올 때>
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(data != null) {
       
       Uri photoUri = data.getData();
       try {
          Bitmap tmp = Images.Media.getBitmap(getContentResolver(), photoUri);
        int _height = tmp.getHeight();
        int _width = tmp.getWidth();
        
        //int height,width = 0;
        Bitmap photo = Bitmap.createScaledBitmap(tmp, 104, 104, true);
     
     if (_height > _width)
      fullBitMap = Bitmap.createScaledBitmap(tmp, 480, 800, true);
     else
     {
      int height = _height*480 / _width;
      fullBitMap = Bitmap.createScaledBitmap(tmp, 480,height , true);
     }
     
     imgPhoto.setImageBitmap(photo);
     imgNoPhoto.setVisibility(View.GONE);
    } catch (FileNotFoundException e) {
     e.printStackTrace();
    } catch (IOException e) {
     e.printStackTrace();
    }
      }
     }
}

onActivityResult에서 받아오는 Intent를 분석해본 결과 미디어 데이터의 orientation을 구분할 수 있는 내용이 없더군요.
아무리 찾아봐도 저장하는 방식부터 다시 바꿔야 되는지 아니면 가져오는 방식만 바꾸면 되는지도 잘 모르겠습니다.
jpeg 형식으로 가져와서 header를 분석해야 되는건지, 아니면 간단한 다른 방식이 있는지 고수님들의 간략한 지도가 간절합니다.

*개발환경은 갤럭시S / OS 프로요 업데이트 순정상태(프로요 업데이트만 하고 아무것도 더하지 않은 상태)입니다.
프로요 업데이트시 따라오는 카메라 업데이트는 했습니다.