android-使用Android默认下载器下载文件

问题描述

使用Android默认下载器下载文件

我使用的Android 2.2,如何使用Android默认下载器下载文件?(网页浏览器也使用这个下载器)。
我使用如下的代码实现:

Intent i = new Intent(Intent.ACTION_VIEW , Uri.parse("MyUrl"));
startActivity(i);

还有没有更好的实现方法?

解决方案

import android.app.Activity;
import android.app.DownloadManager;
import android.app.DownloadManager.Query;
import android.app.DownloadManager.Request;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;

public class DownloadManagerActivity extends Activity {
    private long enqueue;
    private DownloadManager dm;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        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(enqueue);
                    Cursor c = dm.query(query);
                    if (c.moveToFirst()) {
                        int columnIndex = c
                                .getColumnIndex(DownloadManager.COLUMN_STATUS);
                        if (DownloadManager.STATUS_SUCCESSFUL == c
                                .getInt(columnIndex)) {

                            ImageView view = (ImageView) findViewById(R.id.imageView1);
                            String uriString = c
                                    .getString(c
                                            .getColumnIndex(DownloadManager.COLUMN_LOCAL_URI));
                            view.setImageURI(Uri.parse(uriString));
                        }
                    }
                }
            }
        };

        registerReceiver(receiver, new IntentFilter(
                DownloadManager.ACTION_DOWNLOAD_COMPLETE));
    }

    public void onClick(View view) {
        dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
        Request request = new Request(
                Uri.parse("url for file to download"));
        enqueue = dm.enqueue(request);

    }

    public void showDownload(View view) {
        Intent i = new Intent();
        i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS);
        startActivity(i);

}
}
别忘记在manifest中添加android.permission.internet.

解决方案二:

如果你想从一个URL将它下载到用户的SD卡, 您可以在手机的默认浏览器打开它。

String url = "https://appharbor.com/assets/images/stackoverflow-logo.png";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

解决方案三:

## 12_313131231_

1.  123123131
  1. * 213123123
    111
时间: 2024-09-12 16:10:52

android-使用Android默认下载器下载文件的相关文章

link环境下,使用codefirst技术制作的《网盘软件》,下载器下载的文件如何防止复制?

问题描述 link环境下,使用codefirst技术制作的<网盘软件>,下载器下载的文件如何防止复制? link环境下,使用codefirst技术制作的<网盘软件>,下载器下载的文件如何防止复制? 解决方案 这个没有办法杜绝,你可以通过加密或者增加一些验证数据来跟踪用户下载的文件,一旦复制便于追查来源.

link环境下使用codefirst技术制作的《网盘软件》,下载器下载的同时上传怎么做?

问题描述 link环境下使用codefirst技术制作的<网盘软件>,下载器下载的同时上传怎么做? link环境下使用codefirst技术制作的<网盘软件>,下载器下载的同时上传怎么做? 解决方案 开两个线程,一个上传一个下载就是了,你的问题是什么

浏览器及下载工具保存文件时的默认路径在哪里

故障现象: 当我们在使用浏览器或下载工具从互联网上下载文件或程序时,这些工具一般会自动保存到工具所对应的路径下,如果我们没有留心观察,往往不容易找到这些文件下载后存放到了何处. 解决方案: IE浏览器   IE浏览器的默认下载路径为:C:Users当前帐户名Downloads   您也可以通过以下方法查看IE浏览器的文件默认下载路径(示例版本:IE 11):   1.打开IE浏览器后,点击窗口右上角的齿轮"设置"按钮:     2.在弹出的菜单中点击"查看下载":

漫画下载器哪个好用?如何下载在线漫画?

大家经常在网上看在线漫画么?网速不好的时候半天刷不出半张图来有木有!其实我们可以通过一些在线漫画下载工具将漫画下载下来慢慢看嘛!可是如今满世界各种各样漫画下载器哪个好用呢?今天小编就为大家介绍一款吞食天地漫画下载器,以及如何通过它下载在线漫画. >>吞食天地漫画下载器下载链接<< 吞食天地漫画下载器是一款十分单纯的漫画下载器,唯一的功能就是能让您把下载在线漫画. 方法一.找到需要下载的漫画,把漫画第一页的链接粘贴到任务中,输入下载目录后点确定即可. 方法二:拖拽整本漫画到悬浮窗,如

我的Android进阶之旅------&amp;gt;Android基于HTTP协议的多线程断点下载器的实现

一.首先写这篇文章之前,要了解实现该Android多线程断点下载器的几个知识点  1.多线程下载的原理,如下图所示 注意:由于Android移动设备和PC机的处理器还是不能相比,所以开辟的子线程建议不要多于5条.当然现在某些高端机子的处理器能力比较强了,就可以多开辟几条子线程. 2.为了实现断点下载,采用数据库方式记录下载的进度,这样当你将该应用退出后,下次点击下载的时候,程序会去查看该下载链接是否存在下载记录,如果存在下载记录就会判断下载的进度,如何从上次下载的进度继续开始下载. 3.特别注意

Android编程开发实现多线程断点续传下载器实例_Android

本文实例讲述了Android编程开发实现多线程断点续传下载器.分享给大家供大家参考,具体如下: 使用多线程断点续传下载器在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度,在下载过程中记录每个线程已拷贝数据的数量,如果下载中断,比如无信号断线.电量不足等情况下,这就需要使用到断点续传功能,下次启动时从记录位置继续下载,可避免重复部分的下载.这里采用数据库来记录下载的进度. 效果图:   断点续传 1.断点续传需要在下载过程中记录每条线程的下载进度 2.每次下载开始之前先读取数据库

Android编程开发实现多线程断点续传下载器实例

本文实例讲述了Android编程开发实现多线程断点续传下载器.分享给大家供大家参考,具体如下: 使用多线程断点续传下载器在下载的时候多个线程并发可以占用服务器端更多资源,从而加快下载速度,在下载过程中记录每个线程已拷贝数据的数量,如果下载中断,比如无信号断线.电量不足等情况下,这就需要使用到断点续传功能,下次启动时从记录位置继续下载,可避免重复部分的下载.这里采用数据库来记录下载的进度. 效果图: 断点续传 1.断点续传需要在下载过程中记录每条线程的下载进度 2.每次下载开始之前先读取数据库,查

主题切换-android 墨迹换肤下载皮肤zip文件,解压至系统目录,后该如何跟换字体颜色

问题描述 android 墨迹换肤下载皮肤zip文件,解压至系统目录,后该如何跟换字体颜色 android 墨迹换肤下载之后解压到/data/data/[pkg]/files,可是系统要换字体颜色的时候,怎么替换过去呢,context.getColor,得到的还是默认的颜色,大神在哪里,求指引 解决方案 http://blog.csdn.net/t12x3456/article/details/7936173

Android技巧分享——如何用电脑下载在Google play中应用的apk文件

  [Android技巧分享系列]    1.Android技巧分享--让官方模拟器和genymotion虚拟机飞起来    2.Android技巧分享--如何用电脑下载在Google play中应用的apk文件      Google Play上的应用是官方的,无第三方修改的应用.我们一般只在手机上用Google Play下载或是更新应用.    要是我们想下载的应用不是本区的或是不兼容我们的设备,Google play不让我们安装怎么办呢?    只好把应用下载到电脑里咯~    1.首先你