Почему getUriForDownloadedFile () возвращает ноль - PullRequest
0 голосов
/ 24 октября 2018

Я загружаю картинку через DownloadManager (API 28).Картинка успешно загружена и отображается в ImageView.Я хочу узнать имя файла.Но getUriForDownloadedFile () возвращает ноль.Почему?

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);
}

1 Ответ

0 голосов
/ 25 октября 2018

после постановки в очередь, загрузка является асинхронной операцией, uri может быть назначен после завершения загрузки, вам необходимо прослушать приемник и передать идентификатор, чтобы получить uri

...