标签: android-download-manager

直到android下载管理器将通过下载参考ID给出下载状态?

我有一个用例,

我开始使用android下载管理器下载文件,并在中间关掉手机.当我再次重新启动时,下载继续并完成.我通过提供下载引用ID获得了状态.但是我想知道使用该引用ID 10天后的状态.

所以我的问题是直到android下载管理器将通过下载参考ID给出下载状态?

我查看了文档并通过堆栈进行了流程,但无法找到答案.有人帮助我.

android download download-manager android-download-manager

16
推荐指数
1
解决办法
712
查看次数

为什么"下载完成"通知会在Gingerbread设备上消失?

我正在使用DownloadManager该类以编程方式下载文件.一切正常,但我不能让下载完成通知持续.下载完成后立即消失.这是我的代码:

Request rqtRequest = new Request(Uri.parse(((URI) vewView.getTag()).toString()));
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
    rqtRequest.setShowRunningNotification(true);  
} else {
    rqtRequest.setNotificationVisibility(Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
((DownloadManager) getSystemService(DOWNLOAD_SERVICE)).enqueue(rqtRequest);
Run Code Online (Sandbox Code Playgroud)

我在网上看到了一些与此相关的问题,但我找不到解决方案.

android android-notifications android-notification-bar android-download-manager

15
推荐指数
1
解决办法
7616
查看次数

如何更新ListView项中的进度条

我有一个ListView附加ArrayAdapter.当用户单击下载按钮时,ListView下载开始使用DownloadManager.

我想要做的是使用进度条跟踪下载进度(放置在项目布局中).怎么能实现这一目标?

Pocket Cast的方式是我所追求的:

Pocket Cast exampel http://www.mrcrab.net/images/thumb_big/9982-Pocket_Casts_Apk_v4.3.2_Android-0.jpg

注意:我知道如何使用它DownloadManager,它是即时更新进度条很棘手.

android android-listview android-progressbar android-download-manager

15
推荐指数
1
解决办法
1万
查看次数

DownloadManager下载超过2.1 GB的文件

我正在开发一个应用程序,我正在处理的一个功能是下载一些二进制文件.其中一些非常大(超过几兆字节).只要文件大小小于2 GB,下载就可以正常完成.

我卡在一个3.2GB的文件上,因为我获得了进度更新(我正在汇集DownloadManager以获取进度更新),但是当下载完成时,该文件不存在于目标文件路径上.询问DownloadManager下载ID,我得到STATUS_FAILED并推理ERROR_UNKNOWN- 一个人们希望的最喜欢的错误细节!

奇怪的是,这出现在大多数设备上,但对于某些设备(如Samsung SG 4 Active OS 4.2.2和LG Nexus 5 OS 4.4.2),它似乎没有出现.

做了一些额外的调查,我发现这似乎是Android DownloadManager实现中的一个错误.似乎Android实现将下载计数存储为int,但当该计数超过时Integer.MAX_VALUE,下载结束为失败.

我想DownloadManager用前台服务替换用法,但我不会放弃....

你们是否面对这个问题,如果是这样,你是如何解决这个问题的?是否有任何解决方法DownloadManager在4.2.2之前使用,所以我可以下载每个文件超过2.1 GB?

android android-download-manager

15
推荐指数
1
解决办法
4019
查看次数

DownloadManager - 了解ERROR_HTTP_DATA_ERROR

我的应用程序在很大程度上依赖于android DownloadManager组件来下载大小为3-10兆字节的文件.

在扩大规模(达到数百万次下载)时,整体情况很明显:

由于ERROR_HTTP_DATA_ERROR ,所有下载中约有50%失败.

我从谷歌分析中获取此信息

根据文档,此错误代码代表:

在HTTP级别发生错误接收或处理数据时COLUMN_REASON的值.

我发现这个文档不是很有用.
那里有很多http错误.

以及下载过程中的网络断开情况怎么样?它是否也在ERROR_HTTP_DATA_ERROR失败所有下载的管理器重试尝试后触发错误?

如果有人能帮我理解,那就太好了:

  • 有没有办法从DownloadManager更多关于确切的http错误的信息?
  • ERROR_HTTP_DATA_ERROR下载管理器可以解决哪些最常见的情况?

另一点值得一提:虽然这个错误累积 - 用户连接到WIFI网络(我设置下载管理器只能通过wifi下载)

请不要建议我根本不使用下载管理器.我知道这个选项,优点和缺点.我将此选项保存为最后的手段.

android http-error android-download-manager

15
推荐指数
2
解决办法
3180
查看次数

FileProvider - 从下载目录中打开文件

我无法从"下载文件夹"中打开任何文件.

我可以下载一个文件并保存在下载文件夹中:

   DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
    request.setDescription(descricao);
    request.setTitle(titulo);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        request.allowScanningByMediaScanner();
        request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    }
    request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, nome);

    enq = downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

在此之后,我的文件保存在目录文件夹中:Android >>内部共享存储>>下载.***我看到这条路径在ubuntu中手动打开设备的高清.由于图像显示路径. Android HD由ubuntu文件夹 - 查看路径

我尝试用这个打开这个文件:

downloadManager = (DownloadManager)getContext().getSystemService(DOWNLOAD_SERVICE);
        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);
                    DownloadManager.Query query = new DownloadManager.Query();
                    query.setFilterById(enq);
                    Cursor c = downloadManager.query(query);
                    if(c.moveToFirst()) {
                        int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
                        if(DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
                            String uriString = …
Run Code Online (Sandbox Code Playgroud)

directory android download android-download-manager android-fileprovider

15
推荐指数
1
解决办法
2万
查看次数

如何暂停使用DownloadManager?

我希望在下载时实现这一点,它可以暂停,由用户停止.如何使用DownloadManager实现这一目标?

java android android-download-manager

13
推荐指数
2
解决办法
4033
查看次数

Android下载管理器setDestinationInExternalFilesDir

我正在使用下载管理器,当我使用时

 setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS, "example.ext");
Run Code Online (Sandbox Code Playgroud)

文件下载到Android/data/com.example.app/files/Download文件夹.

当我尝试

setDestinationInExternalPublicDir("/folder", "example.ext");
Run Code Online (Sandbox Code Playgroud)

我明白了: IllegalStateException: Cannot create directory mnt/sdcard/folder.我也设置了WRITE_EXTERNAL_STORAGE权限.

我究竟做错了什么?

android android-download-manager

13
推荐指数
1
解决办法
1万
查看次数

如何在ArrayAdapter中使用DownloadManager

我正在使用arrayadapter作为我的listview,我想在其中使用DownloadManager.但是数组适配器不知道这一行:

DownloadManager download =(DownloadManager) getSystemService(DOWNLOAD_SERVICE);
Run Code Online (Sandbox Code Playgroud)

那么我怎么能使用这个我的适配器类,当用户触摸图像下载开始

我的适配器类:

public class MyAdapter extends ArrayAdapter<String>{

    private final Context context;
    private final String[] values;
    Context b;

    public MyAdapter(Context context, String[] values) {
        super(context, R.layout.item, values);
        this.context = context;
        this.values = values;
        b= (Context) context;
    }

    @Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);       
        View rootview = inflater.inflate(R.layout.item, parent, false);

        TextView tv1 = (TextView)rootview.findViewById(R.id.txt_name);
        TextView tv2 = (TextView)rootview.findViewById(R.id.txt_numer);
        ImageView img = (ImageView) rootview.findViewById(R.id.imageView1);

        MyDatabase MyDatabase = …
Run Code Online (Sandbox Code Playgroud)

android android-download-manager

13
推荐指数
1
解决办法
379
查看次数

Android DownloadManager.ERROR_FILE_ERROR

可能重复

我正在使用Android DownloadManager下载大型zip文件.我有listview显示所有zip文件的列表,用户可以点击项目开始下载.一次只能下载一个项目.当其他下载正在进行时,当新列表项开始下载时,我从队列中删除以前的下载ID.一切都很好.但有时我在LG g2设备OS 5.0.2上获得了ERROR_FILE_ERROR.这是代码:

Uri uri = Uri.parse(path);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE);
request.setAllowedOverRoaming(false);
request.setVisibleInDownloadsUi(false);

String localStorageBasePath = FileUtils.zipDirectory(context).getAbsolutePath() + File.separator + fileName;
Uri localStorageBasePathUri = Uri.fromFile(new File(localStorageBasePath));
request.setDestinationUri(localStorageBasePathUri);
Long downloadId = downloadManager.enqueue(request);
Run Code Online (Sandbox Code Playgroud)

它在其他设备上工作正常,包括nexus 5,samsung s3,note2,huawei等.当我开始下载文件时,它立即停止/失败,原因是DownloadManager.ERROR_FILE_ERROR.我试图删除/清理外部存储目录,确保它不是ERROR_INSUFFICIENT_SPACE错误等但它不起作用.有帮助吗?

android download-manager android-download-manager

12
推荐指数
1
解决办法
764
查看次数