为什么 getUriForDownloadedFile() returns null
Why getUriForDownloadedFile() returns null
我正在通过 DownloadManager 下载图片 (API 28)。
图片下载成功并显示在ImageView中。
我想找出文件名。但是 getUriForDownloadedFile() return 为空。
为什么?
private void dowloadfile() {
Uri uri = Uri.parse(editText.getText().toString());
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setVisibleInDownloadsUi(true);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "picture." + extension);
registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
refid = downloadManager.enqueue(request);
Uri u = downloadManager.getUriForDownloadedFile(refid);
}
入队后,下载是一个异步操作,uri可能会在下载完成后分配,你需要监听你的接收器并传递id来获取uri
我正在通过 DownloadManager 下载图片 (API 28)。 图片下载成功并显示在ImageView中。 我想找出文件名。但是 getUriForDownloadedFile() return 为空。 为什么?
private void dowloadfile() {
Uri uri = Uri.parse(editText.getText().toString());
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setVisibleInDownloadsUi(true);
request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "picture." + extension);
registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
refid = downloadManager.enqueue(request);
Uri u = downloadManager.getUriForDownloadedFile(refid);
}
入队后,下载是一个异步操作,uri可能会在下载完成后分配,你需要监听你的接收器并传递id来获取uri