android调用系统的安装方法出现ActivityNotFoundException的异常

在Android 4.2及以上版本中,使用DownloadManager下载APK后,通过id获取的Uri是content类型,导致安装时抛出ActivityNotFoundException异常。本文分享如何将content Uri转换为file Uri,或者通过保存的文件名来获取URI进行安装的方法。
摘要由CSDN通过智能技术生成

今天测试下载新版本后自动安装,结果报错了~
这里写图片描述

后来查了一下,是DownloadManager的问题~
从Android 4.2开始,manager.getUriForDownloadedFile(id)将返回的scheme是content,返回uri是content://downloads/my_downloads/15,没有给出路径,这样调用系统的安装方法就会出现ActivityNotFoundException的异常,我找了很久终于找到了文件放在了哪里。
下面我把转化content的Uri为file的Uri方法分享给大家;

    /**
     * 转化contentUri为fileUri
     *
     * @param contentUri 包含content的Uri
     * @param downLoadId 下载方法返回系统为当前下载请求分配的一个唯一的ID
     * @param manager    系统的下载管理
     *
     * @
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值