图片已下载但未在图库中显示

时间:2019-01-22 07:23:32

标签: android uri

我正在尝试使用PRDownloader下载图片。

这是我的代码:

int downloadId = PRDownloader.download(photo.getUrls().getFull(), mContext.getApplicationContext().getFilesDir().getPath() + "/Folder/", photo.getId())
                                .build()
                                .setOnStartOrResumeListener(new OnStartOrResumeListener() {
                                    @Override
                                    public void onStartOrResume() {
                                        Toast.makeText(mContext.getApplicationContext(), "Download started", Toast.LENGTH_SHORT).show();
                                    }
                                })
                                .setOnPauseListener(new OnPauseListener() {
                                    @Override
                                    public void onPause() {
                                        Toast.makeText(mContext.getApplicationContext(), "Download paused", Toast.LENGTH_SHORT).show();
                                    }
                                })
                                .setOnCancelListener(new OnCancelListener() {
                                    @Override
                                    public void onCancel() {
                                        Toast.makeText(mContext.getApplicationContext(), "Download cancelled", Toast.LENGTH_SHORT).show();
                                    }
                                })
                                .setOnProgressListener(new OnProgressListener() {
                                    @Override
                                    public void onProgress(Progress progress) {
                                        mProgressDialog.show();
                                    }
                                })
                                .start(new OnDownloadListener() {
                                    @Override
                                    public void onDownloadComplete() {
                                        Toast.makeText(mContext.getApplicationContext(), "Image saved in gallery", Toast.LENGTH_SHORT).show();
                                        mProgressDialog.dismiss();
                                    }

                                    @Override
                                    public void onError(Error error) {
                                        Toast.makeText(mContext.getApplicationContext(), "Error downloading image", Toast.LENGTH_SHORT).show();
                                        mProgressDialog.dismiss();
                                    }
                                });

此Toast:Toast.makeText(mContext.getApplicationContext(), "Image saved in gallery", Toast.LENGTH_SHORT).show();正在执行,但下载的图像未显示在图库中或设备的任何位置。

这是怎么了?

2 个答案:

答案 0 :(得分:0)

您是否尝试过更改路径。我认为这是您的路线问题。请尝试在下载目录的路径下面,或根据需要尝试其他任何路径。 (我不知道您正在使用仿真器还是真实设备进行测试,但您也应该尝试使用真实设备)

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)

答案 1 :(得分:0)

首先,您需要在清单中授予权限并在运行时询问

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

之后,当您成功下载文件或图像时,将广播发送到设备媒体扫描器:

mContext.sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

这将通知设备新添加的文件。

相关问题