DownloadManager를 통해 다운로드 한 이미지를 Gallery 앱에 표시하려고 시도하지만 작동하지 않습니다.Android DownloadManager 및 Media Scanner
public void downloadImage(String url) {
Uri Download_Uri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(Download_Uri);
request.allowScanningByMediaScanner();
download_id = downloadManager.enqueue(request);
}
을하지만 때 파일 다운로드, 그것은 갤러리 응용 프로그램에 표시되지 않습니다 문서에 따르면,이 코드는 충분하다 생각했다. 그래서 수동으로 추가하려면 다운로드 수신기를 시도해 보았습니다.
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Query query = new Query();
query.setFilterById(downloadId);
Cursor c = downloadManager.query(query);
if (c.moveToFirst()) {
int columnIndex = c
.getColumnIndex(DownloadManager.COLUMN_STATUS);
if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
String uriString = downloadManager.getUriForDownloadedFile(download_id).toString();
//c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
Log.i("filname", uriString);
MediaScannerConnection.scanFile(ArticleActivity.this,
new String[] { uriString }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("Media Scanner", "Scanned " + path + ":");
Log.i("Media Scanner", "-> uri=" + uri);
}
});
}
}
}
}
};
그 중 하나는 작동하지 않습니다. "filename"태그와 함께 인쇄 된 URI는 다운로드 한 실제 파일 이름 대신 'content : // downloads/my_downloads/97'과 유사합니다. 다운로드 응용 프로그램에서 파일 이름은 서버의 파일 이름과 동일합니다. "Media Scanner"태그로 기록 된 Uri는 null입니다.
나는 여기에 간단한 것을 놓치고 있습니까? 나는 이것에 대해 몇 시간 동안 머리카락을 꺼내왔다.