안드로이드 개발 질문/답변
(글 수 45,052)
Uri albumArtUri = ContentUris.withAppendedId(.Audio.Albums.EXTERNAL_CONTENT_URI, artID);
이런식으로 해서 mp3 앨범아트를 잘가지고 오고 있는데
mp3파일을 그냥 지운다던가 지우고 다시 복사를 한다던가 하면 앨범아트를 가지고 오지 못하는 경우가 있습니다.
그럼 다른 음악플레이어를 실행시키고 난뒤에 다시 오면 앨범아트가 다시 보입니다...
저랑 다르게 앨범아트 주소를 가지고 오는건가요? 왜 제건 못가져오고 ㅠ
어떻게 하면 다른음악플레이어를 실행시키지 않고도 앨범아트를 보이게 할 수 있을까요?
도움 부탁드립니다~




미디어파일이 변경되면 다시 미디어스캔을 해야합니다.
미디어스캔을 해주는 API가 있습니다.
그리고 미디어 스캔을 전체를 해버리면 시간이 많이 걸리므로 특정 디렉토리나 파일을 지정해서 미디어 스캔을 하는 것이 좋겠지요.
아래는 제가 예전에 사용한 코드인데 참고해서 해보세요.
ScanClient scanClient = new ScanClient(f);
MediaScannerConnection msc = new MediaScannerConnection(PurchasePopupActivity.this, scanClient);
msc.connect();
...
private class ScanClient implements MediaScannerConnection.MediaScannerConnectionClient{
File mFile = null;
public ScanClient(File f){
mFile = f;
}
@Override
public void onScanCompleted(String arg0, Uri uri) {
if (Constants.DEBUG) {
Log.d(Constants.LOGCAT_FILTER, "##### onScanCompleted ########" + arg0 + "," + uri);
}
gotoInventorySetPopupActivity(uri);
}
@Override
public void onMediaScannerConnected() {
if (Constants.DEBUG) {
Log.d(Constants.LOGCAT_FILTER, "##### onMediaScannerConnected ########");
}
msc.scanFile(mFile.getPath(), null);
}
}