关于Android文件下载路径的坑
来源:互联网 发布:视频音频切割软件 编辑:程序博客网 时间:2024/05/22 18:44
最近做一个项目,对方提出了一个要求要APP能自动检测更新,我当时想APP自动检测更新,这个就是很简单的问题嘛,于是乎我就开始做了。
这个思路都很简单的,无非就是检测本地的版本号和服务器上面的版本好是否一致,如果本地的版本号小于服务器上面的版本,就弹出一个提示框,提示更新。
因为这是我第一个项目,也是第一次做这么一个功能,就上网搜索了一下,不得不说,就这么一个功能,网上有很多的实现方式的,具体可以自行搜索
我选择的是DownloadManager这个方式来实现后台下载的(DownloadManager的具体用法自行搜索),不得不说这个封装DownloadManager非常好用,强烈推荐使用。下载完成发送一条广播,然后弹出界面安装,这样一个非常常规的逻辑。
问题来了,我每次下载完成过后就会提示“解析错误,解析程序包时出现问题”,这就很尴尬了。我刚开始以为是下载不完全成导致了,apk文件错误的,我通过多次调试发现,代码逻辑没有任何问题,apk文件也是完全下载好。这个时候我就把怀疑对象放到了文件路径上面了,我怀疑程序找不到apk文件才会这样报错的
//指定APK缓存路径和应用名称,可在SD卡/Android/data/包名/file/Download文件夹中查看 request.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_DOWNLOADS, "XXX.apk");
这是我下载的apk路径,没有问题
intent.setDataAndType(Uri.fromFile(new File(getExternalStorageDirectory()+"/XXX.apk")), "application/vnd.android.package-archive");
这是我查找路径apk,问题就出在这里了。/storage/emulated/0/XXX.apk 这就是查找的路径,你们是不是已经发现问题了,我apk不是保存在这个路径下面的,自然就解析出错了。问题找到了,解决方法自然就出来了
intent.setDataAndType(Uri.fromFile(new File(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).getAbsolutePath() + "/XXX.apk")), "application/vnd.android.package-archive");
修改过后的查找路径/storage/emulated/0/Android/data/包名/files/Download,这样就可以了
第一次写博客,如果有错误,欢迎指教!
3 0
- 关于Android文件下载路径的坑
- 关于Android文件路径的记录
- Android 关于文件存储路径的总结
- Android中关于文件路径的问题
- Android下载文件保存到路径
- android通过URL路径下载安装文件
- 关于android中读取文件路径出现绝对路径的解决办法
- $PATH 关于执行文件路径的路径
- 关于附件下载的路径处理
- 关于附件下载的路径处理
- 关于Android文件Apk下载的那点事
- Android中关于APK文件的下载、安装和卸载
- Android中关于FTP的文件上传和下载
- Android中关于FTP的文件上传和下载
- C#隐藏文件下载路径的方法
- C#隐藏文件下载路径的方法
- Unity商店下载的文件保存路径
- java web 提供下载文件的路径
- java工程师进阶路线
- 延时3秒跳转错误页面
- LeetCode (Jump Game)
- Linux-wxpython3.0安装
- KMP算法:next数组变形
- 关于Android文件下载路径的坑
- 如何配置androidannotations
- E
- jQuery 数据
- iOS block分析:使用方式与储存机制,变量捕获机制
- 为Linux技术学习推荐看的书籍—《Linux就该这么学》
- Google 常用网站及特色功能
- C#-输入格式不正确
- 百度2017秋招-相似串