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

基于CRU和WorldClim的高分辨率(1km)气候数据生成

基于CRU和WorldClim的高分辨率(1km)气候数据生成

lhq7842955的博客 1693

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

ITIL-IT运维管理-概述

ITIL-IT运维管理-概述 概述 IT服务管理(ITSM)是一套帮助企业对IT系统的规划、研发、实施和运营进行有效管理的方法,是一套方法论。ITSM起源于ITIL(IT Infrastructure Library,IT基础架构标准库),ITIL是CCTA(英国国家电脑局)于1980年开发的一套IT服务管理标准库。它把英国在IT管理方面的方法归纳起来,变成规范,为企业的IT部门提供一套从计划、研发、实施到运维的标准方法。 中文名 IT服务管理 外文名 ITService Management 专家

syjhct的博客 4万+

WRF所需气象数据的下载方法

#数据下载是个大问题,巧妇难为无米之炊,没有数据就无法模拟啦,疫情期间国外服务器响应慢,打开网页慢都很正常啦~ WRF数据所需要的外部数据分为两种:静态地理数据,grib格式的气象数据(NAM、GFS、RUC、AGRMET等)。静态地理数据可以从WRF官网获得,比较简单,这里不做介绍。所以这篇日志重点介绍的是气象数据的获取。 提前说明,WRF官网不提供气象数据,但WRF官网提供各类气象数据的下载网址链接,所以我们下载一般还是从WRF官网开始。首先进入WRF官网,然后点击WRF ARW Uusres’ .

六出的博客 1万+

Android下载管理器DownloadManager

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

m0_57150356的博客 6928

AMDGPU SVM VRAM Migration 实现详解

AMD正在基于DRM SVM框架重构SVM实现,该框架即将广泛应用。本文分析了AMD开发者提交的POC验证版本的技术方案。该架构分为三层:AMDGPU SVM映射层、DRM Pagemap通用框架层和AMDGPU迁移后端硬件驱动层。系统涉及三个地址空间转换:VRAM分配器空间、HPA/PFN空间和GPU PTE地址空间。关键数据结构包括设备级迁移基础设施amdgpu_pagemap、迁移临时BO包装器amdgpu_svm_bo等。该方案通过地址空间转换实现VRAM迁移功能,目前仍处于POC阶段,设计可能变更

图形/计算GPU的驱动与虚拟化技术分享园地 869

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

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

weixin_42488542的博客 518

Oracle EBS Tax 四国实现详解:印度、巴西、美国、阿根廷

印度:务必启用India Localization模块,不要尝试用标准EBTax模拟GST逻辑 巴西:必须配置NF-e接口,建议聘请本地税务顾问设置CFOP和NCM代码映射 美国:跨州业务强烈建议购买Vertex或Avalara服务,自建税率表维护成本极高 阿根廷:注意1:1:1架构限制,提前规划Legal Entity和OU结构

金牌架构师 260

无限泛化!AI背景文字识别,腾讯文字六宫格

本文介绍了生成大规模文字验证码数据集的方法,通过使用上百种字体和2万+字库,结合随机背景和数十种图像增强技术,生成了2000万+的多样化样本。该方法采用二阶段训练策略,确保模型对字体、形态、形变等具有强泛化能力,可适配腾讯、咸鱼等多种平台的文字验证码识别,包括生僻字和复杂形变情况。生成的模型在多种验证码场景下表现优异,但强调该方法仅用于技术研究,严禁非法用途。

码王吴彦祖的博客 563

使用Android自带DownloadManager下载文件

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

小何才露尖尖角 4万+

(10)三相三绕组变压器的建模仿真

建立了三相三绕组变压器组的Simulink仿真模型,通过实例进行了仿真计算。

weixin_45670943的博客 1143

使用Android自带的DownloadManager下载文件

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

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

(汇总篇)语义SLAM相关开源方案| 全球优秀作者与实验室 | SLAM学习资料整理

SLAM 与深度学习相结合的工作当前主要体现在两个方面,一方面是将语义信息参与到建图、位姿估计等环节中,另一方面是端到端地完成 SLAM。针对建图的工作一方面是利用几何信息进行稠密重建,另一方面很多工作利用语义信息达到了很好的语义重建效果,三维重建、SFM。动态 SLAM 也是一个很值得研究的话题,这里不太好分类,很多工作用到了语义信息或者用来三维重建,收集的方案相对较少。优化可能是 SLAM 中最难的一部分了吧 +_+ ,一般都是直接用现成的因子图、图优化方案,要创新可不容易。

熊猫小妖的AI世界 7870

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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、付费专栏及课程。

余额充值