이미지 저장시 썸네일 등록과 관련해서 조언 좀 부탁드립니다.

 

아래와 같이 콜백을 받아서 파일로 저장을 하는데,

저장도 잘되고, managedQuery를 통한 커서로도 List를 구현하는데 문제가 없습니다.

 

PictureCallback jpegCallback = new PictureCallback() {
           public void onPictureTaken(byte[] data, Camera camera) {

 

           String sDate = new SimpleDateFormat("yyyy-MM-dd HH.mm.ss").format(new java.util.Date());
           String path = "sdcard/"+sDate+".jpg";
           try {
               sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://"+path)));
              
               ContentValues values = new ContentValues();
               values.put("_data", path);
               values.put(Images.Media.MIME_TYPE, "image/jpeg");
               values.put(Images.Media.DATA, path);
               values.put(Images.Media.SIZE, data.length);
               Uri uri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
               
               OutputStream outStream1 = getContentResolver().openOutputStream(uri);
               outStream1.write(data);
               outStream1.close();
}

 

그런데,

Bitmap bmp = Images.Thumbnails.getThumbnail(getContentResolver(), pFile1.getImage(), Images.Thumbnails.MICRO_KIND, null);

위와 같이하면 썸네일을 가져올 수가 없네요. 어딘가...등록을 해줘야하는 것 같은데,

이미지파일을 폰에 복사해넣거나,,, 폰을 껐다켜면 썸네일이 나오는데....

 

          ContentValues values2 = new ContentValues();
          values2.put(Images.Thumbnails.KIND, Images.Thumbnails.MINI_KIND);
          values2.put(Images.Thumbnails.HEIGHT, bmp.getHeight());
          values2.put(Images.Thumbnails.WIDTH, bmp.getWidth());
          values2.put(Images.Thumbnails.IMAGE_ID, Long.parseLong(uri.getLastPathSegment()));

          getContentResolver().insert(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, values2);
이렇게 해봤는데도 안되고,,,

 

                Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
                intent.setData(imageUri);
                sendBroadcast(intent);
Broadcast를 해봐도 안되고,,,

 

                getBaseContext().getContentResolver().notifyChange(uri,null);

NotifyChange를 해봐도 안되고,,,

 

뭘 어떻게 해야하는지 아시는 분 계시면 조언 좀 부탁드리겠습니다.

 

읽어주셔서 감사합니다.