검색어 :안드로이드 갤러리 갱신
안드로이드에서 카메라 촬영 후 , 이미지 다운로드 후 갤러리로 가보면 갱신이 안되어 있는 경우가 있다.
그때에 강제로 갱신을 시켜준다.
sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));
혹은
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.parse("file://" + Environment.getExternalStorageDirectory())));
http://victor8481.tistory.com/305
sendBroadcast(Intent intent)
일반적인 broadcast는 sendBroadcast()로 전달되는 순간에 등록된 receiver들의 onReceive()만을 호출하는 구조로 되어 있다.
이 receiver에 등록이 되지 않는다면 해당 message를 받을 수 없는 상태가 되어 버린다.
이게 일반 어플에서는 문제가 되지 않지만 네트워크 관련 정보를 업데이트 하는 경우에는 문제가 될 수 있다.
sendstickyBroadcast(Intent intent)
이로 인해서 나온게 바로 sendStickyBroadcast()이다.
해당 api로 보낸 broadcast 는 system 에 남아 있다가 새롭게 해당 broadcast를 받을 수 있는 receiver가 등록되면
새로 등록된 receiver의 onReceive()를 호출해 줌으로써 받을 수 있게 된다.
이를 제거 하고 싶을 때는 removeStickyBroadcast()를 사용한다.
stickybroadcast를 사용하기 위해서는
android permission.BROADCAST_STICKY 퍼미션이 필요하다.
http://hackss.tistory.com/entry/android-kitcat-%EC%97%90%EC%84%9C-refresh-gallery-%EB%AC%B8%EC%A0%9C
[android] kitcat 에서 refresh gallery 문제
public void broadcastPhotoAdded() {
Log.i(TAG, "snap.java | line 203******broadcastPhotoAdded()");
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File(mImageCaptureUri.getPath());
//mImageCaptureUri.getPath() = 갱신할 파일의 전체 경로 (파일명 까지.)
mediaScanIntent.setData(contentUri);
this.sendBroadcast(mediaScanIntent);
}
'차근차근 > Android' 카테고리의 다른 글
모바일웹 개발시 알아두면 유용한 8가지 (0) | 2015.01.28 |
---|---|
[Android] WebView 에서 자바스크립트 실행하기 (0) | 2015.01.28 |
갤러리 이미지 안보임 (0) | 2015.01.23 |
위치 정보 - LocationManager (0) | 2015.01.14 |
안드로이드 thread (0) | 2015.01.13 |