Android使用DownloadManager下载文件

安卓DownloadManager下载视频并用VideoView播放 文章目录需要添加的权限DownloadManager下载VideoView播放 需要添加的权限 <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/&gt... 阅读详情

Android使用DownloadManager下载文件

前言

DownloadManager是处理长时间HTTP下载的系统服务,客户端可以将指定内容下载到某一特定的目录。DownloadManager会在后台进行下载工作,自己会处理下载失败、网络变换或系统重启等问题。接下来说一下如何使用DownloadManager。

代码实现

AndroidManifest.xml

AndroidManifest.xml中需要添加以下权限:

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

MainActivity.java

使用DownloadManager下载指定url的文件:

package com.andlink.downloadtest;

import androidx.appcompat.app.AppCompatActivity;

import android.app.DownloadManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {

    //下载地址必须用https
    private String apkUrl = "https://XXX.apk";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        downloadFile();
    }

    private void downloadFile() {
        DownloadManager downloadManager = (DownloadManager)getSystemService(this.DOWNLOAD_SERVICE);

		//通过DownloadManager.Request调整请求参数
        DownloadManager.Request request = new DownloadManager.Request(Uri.parse(apkUrl));
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            request.setRequiresCharging(false).setAllowedOverMetered(true);
        }
        //request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); //可以指定在何种网络状态下进行下载
        
        //将下载任务加到队列
        long requestId = downloadManager.enqueue(request);

		//使用DownloadManager.Query可以查询下载状态
        DownloadManager.Query query = new DownloadManager.Query();
        query.setFilterById(requestId);
        try {
            boolean flag = true;
            while(flag) {
                Cursor cursor = downloadManager.query(query);
                if (cursor != null && cursor.moveToFirst()) {
                    int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS)); //获取下载状态
                    //String path = cursor.getString(cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)); //获取保存路径
                    switch(status){
                        //判断下载状态
                        case DownloadManager.STATUS_SUCCESSFUL:
                            flag = false;
                            Log.d("Jason", "download success");
                            break;
                        case DownloadManager.STATUS_FAILED:
                            flag = false;
                            Log.d("Jason", "download fail");
                            break;
                    }
                }

                if(cursor != null) {
                    cursor.close();
                }
            }
        }catch(Exception e) {
            e.printStackTrace();
        }
    }
}
Android 原生DownloadManager下载使用 【代码】Android 原生DownloadManager下载使用。 阅读详情

相关推荐

Android中DownloadManager实现文件下载实例详解

Android中DownloadManager实现文件下载 下载 创建下载链接 DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); 设置允许下载的网络环境 request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI); WIFI网络 : DownloadManager.Request.NETWORK_WIFI 移动网络 : DownloadManager.Request.NETWORK_MOBILE No

使用Android自带的DownloadManager下载ApK并安装

使用Android自带的DownloadManager下载ApK并安装

lady_zhou的博客 5439

阿里云人工智能工程师ACA认证免费课程学习笔记

阿里云人工智能工程师ACA认证免费课程学习笔记

engchina的专栏 2014

android开发实现后台下载功能,Android开发中利用DownloadManager实现下载功能(视频,音频等)...

,Integer,String> {privateTextView tvTitle;privateProgressBar pbarDownLoad;privateContext mContext;private staticString HOST_PC_IP= "cdn.llscdn.com";private longcurrentDownloadID;private booleanidDo...

weixin_42545292的博客 1449

告别配置迷茫:手把手教你用Vivado 2023.1配置Xilinx FPGA的DDR4 MIG IP核(含AXI接口详解)

本文详细介绍了如何在Vivado 2023.1中配置Xilinx FPGA的DDR4 MIG IP核,包括AXI接口的深度解析与优化。通过实战案例和调试技巧,帮助工程师快速掌握DDR4内存与FPGA的协同工作,提升系统性能。特别适合需要高性能计算和实时信号处理的开发者。

weixin_29231725的博客 437

RK3568 NFS rootfs配置与调试实战指南(已验证)

本文提供了在RK3568开发板上配置NFS rootfs的完整实战指南。通过详细步骤讲解如何配置uboot的bootargs参数、编译支持NFS的内核,并在PC端搭建TFTP与NFS服务器,最终实现从网络挂载根文件系统,从而极大提升驱动调试和应用程序开发的迭代效率。

weixin_29175469的博客 282

Android下载管理器DownloadManager

Android 从 2.3 (API9) 开始提供了专门的下载工具DownloadManager(下载管理器)统一管理下载操作。 下载管理器DownloadManager的对象从系统服务DOWNLOAD_SERVICE中获取,具体使用过程分为3步:构建下载请求(Request)、进行下载操作(DownloadManager)和查询下载进度(Query)。

m0_57150356的博客 6928

视网膜血管分割数据集(DRIVE数据集,STARE数据集,REFUGE数据集,CHASE_DB1数据集,DiaRetDB1数据集)

在医学图像处理领域,视网膜图像分析对于眼部疾病的早期诊断与治疗具有举足轻重的意义。随着人工智能技术的蓬勃发展,尤其是深度学习算法在图像分割任务中的广泛应用,高质量的视网膜图像数据集成为推动该领域研究进展的关键要素。这些数据集不仅是训练和优化算法模型的基石,更是衡量算法性能优劣的重要依据。本文聚焦于视网膜图像分割领域,详细介绍 DRIVE、STARE、REFUGE、CHASE_DB1 以及 DiaRetDB1 这几个具有代表性的数据集。

weixin_43518285的博客 2270

android编程 下载文件,Android开发(22)使用DownloadManager下载文件

概述使用DownloadManager 是个很好用的下载方式。它会出现在任务栏,指示当前的下载位置。它使用广播来接收完成消息,点击任务事件的交互。实现步骤1.添加权限2.在页面里初始化DownloadManager downloadManager;// 过SystemService 以获取 DownloadManagerdownloadManager = (DownloadManager) get...

weixin_42488542的博客 518

单相PWM整流器四象限运行原理

简述单相PWM整流器四象限运行原理。

m0_75208156的博客 8302

IDM 的免费替代品来了!这款开源下载器速度提升500%

💡分享一款开源的下载管理工具,支持多线程加速(最高提升500%)、队列管理、计划任务和浏览器集成,界面现代化且支持深色模式,跨平台支持Windows/Linux,是IDM的优秀替代方案🎈

XiaoqiangClub的博客 731

使用Android自带DownloadManager下载文件

SDK在API Level 9中加入了DownloadManager服务,可以将长时间的下载任务交给系统,完全由系统管理。 直接看实例代码: package com.hebaijun.downloadtest; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import a

小何才露尖尖角 4万+

常说的cache机制到底是什么?L1 cache和 L2 cache是什么?

一文带你迅速了解CPU内的cache机制!!图解多核CPU中的多级cache结构。为何有的处理器没有cache?

车载系统攻城狮 5878

使用Android自带的DownloadManager下载文件

简介 基础用法 完整代码 先放Google官方文档:https://developer.android.google.cn/reference/android/app/DownloadManager 简介 使用Context.getSystemService(Context.DOWNLOAD_SERVICE)来获取DownloadManager的实例 Download...

LittleFogCat的专栏 我的个人网站:https://xiaoniu.tech 4354

(2-4-01)目标检测与分割:地面提取(1)

请看下面的例子,生成了虚拟 LiDAR 点云数据,然后使用 DBSCAN 聚类方法进行 LiDAR 地面提取,并根据聚类结果可视化地面和非地面点云。首先生成虚拟 LiDAR 点云数据,然后基于设定的高程阈值进行地面提取,并通过 Open3D 可视化地面和非地面点云。地面提取是LiDAR(激光雷达)数据处理中的一个重要步骤,其目标是从点云数据中分离出地面点,即地面表面上的点。LiDAR点云数据通常包含地面点和非地面点(例如建筑物、树木等),地面提取的目标是从这些点中准确识别和提取地面点。

码农三叔 703

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android使用DownloadManager实现文件下载

Android使用DownloadManager实现文件下载Android使用DownloadManager实现文件下载 下载 创建下载链接 设置允许下载的网络环境 Notification显示下载进度 设置保存路径 下载 取消下载 下载完成的监听 Code 下载 广播接收者 注册 实现 下载创建下载链接DownloadManager.Request request = new DownloadMa

kongqw 1957

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

android 调用下载,使用Android系统提供的DownloadManager来下载文件

在android2.3以后android系统提供了一个系统组件来供其他app调用来下载东西,使用起来非常方便。例如我们可以拿来下载app的新版本apk,同时在同时注册一个广播接收器来接收下载完成时DownloadManager发出的的广播,然后自动安装程序。SDK在API Level 9中加入了DownloadManager服务,可以将长时间的下载任务交给系统,完全由系统管理。直接看实例代码:pa...

weixin_42511024的博客 918

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Android Kotlin WebView使用DownloadManager下载文件

Android系统内置提供作为服务的下载管理器DownloadManager,可以很方便下载文件。WebView下载文件可通过该系统服务实现,主要包含两种方式: 1)手动下载; 2)通过DownloadListner触发下载事件。 这里指的是第二种方式。这种触发下载事件的条件是webkit内核WebView浏览的网络地址URL指向的是一个非在线打开展示内容文件。.........

Nnnn的博客 1394

Android 使用系统下载管理器DownloadManager下载文件

使用系统下载管理器,主要有两个类:DownloadManager, DownloadManager.Request 1.建立一个下载    声明一个DownloadManager对象 private DownloadManager mDownloadManager; mDownloadManager = (DownloadManager) mApplicationContext

qqwuy_muzi的博客 7772

android开发(23)使用DownloadManager下载文件

使用DownloadManager 是个很好用的下载方式。它会出现在任务栏,指示当前的下载位置。它使用广播来接收完成消息,点击任务事件的交互。 让我们看看如何使用 1.添加权限 2.在页面里初始化 1 DownloadManager downloadManager; 2 3 // 过SystemService 以获取 DownloadManager 4

萌萌的It人 www.itmmd.com 6791

[BugFix] [Android] DownloadManager使用流程问题导致的 下载下来的文件找不到

DownloadManager使用流程错误导致的无法找到下载完成的文件1. 问题描述2. 问题解决3. 解决后的思考5. 场景利用 1. 问题描述 先提交 enqueue 请求,后配置 DownloadManager.Request(parseUri).also { // wrong position refId = downloadManagerService.enqueue(it) it.apply { setAll

Hpbbs 2333

Android开发(22)使用DownloadManager下载文件

概述 使用DownloadManager 是个很好用的下载方式。它会出现在任务栏,指示当前的下载位置。它使用广播来接收完成消息,点击任务事件的交互。 实现步骤 1.添加权限 <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:...

张云飞Vir的专栏 293
上一篇: 安卓获取设备蓝牙信息和连接状态
下一篇: Android app和aar混淆方法
Jason_Flash
博客等级 码龄7年 1万+粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值