Bitmap 사진을  받은후 Content Provider인 Image Media에 저장 하고자 합니다.

카메라 어플리케이션의 ImageManager 클래스를 참조해서  
다음 처럼 Contente Provider에 정보를 집어 넣고, sd card에 사진을 집어 넣는 것으로 생각하고
진행을 했었습니다. 그런데 Thumbnail도 다른 값을 가지고 있다는 사실에 많이 헷갈리고 있습니다.
 
private static Uri sStorageURI = Images.Media.EXTERNAL_CONTENT_URI;
private static Uri sThumbnailStorageURI = Images.Thumbnails.EXTERNAL_CONTENT_URI;
private static final String STORAGE_NAME = Environment.getExternalStorageDirectory().toString();

 // ContentProvider에 저장 Image 정보 저장
     ContentValues values = new ContentValues();
        values.put(Images.Media.TITLE, msFile);
        values.put(Images.Media.DISPLAY_NAME, msFile);
        values.put(Images.Media.DESCRIPTION, "");
        values.put(Images.Media.DATE_TAKEN, dateTaken);
        values.put(Images.Media.MIME_TYPE, "image/jpeg");
        values.put(Images.Media.ORIENTATION, 0);
       
        if (STORAGE_NAME != null && msFile != null) {
            String value = STORAGE_NAME + "/" + msFile;
            values.put("_data", value);
        }
       
        mContentResolver = getContentResolver();
        Uri uri = mContentResolver.insert(sStorageURI, values);       
        
        // sdcard 에 저장
     try{
      // file 생성
      String value = STORAGE_NAME + "/" + msFile;
      
      FileOutputStream out = new FileOutputStream(value);
      bm.compress(Bitmap.CompressFormat.JPEG, 100, out);
     } catch (FileNotFoundException e) {
      Log.d("FileNotFoundException:", e.getMessage());
     } catch (IOException e) {
      Log.d("IOException: ", e.getMessage());
     }

여기까지 Image Media의 저장입니다.
만약 Thumbsnail을 처리한다면. 먼저 정보를 저장하고      
    ContentValues values = new ContentValues();
       values.put(Images.Thumbnails.KIND, Images.Thumbnails.MINI_KIND);
        values.put(Images.Thumbnails.IMAGE_ID, imageId);
        values.put(Images.Thumbnails.HEIGHT, height);
        values.put(Images.Thumbnails.WIDTH, width);

sdcard에  해상도를 낮추면서 Image와 같은 방법으로 저장하는 것이 맞을까요?

sdcard에 다음과 같이 저장하는 것은 맞는 것일까요?

궁금합니다.