关于Android文件下载路径的坑
2017-05-07 11:13
176 查看
最近做一个项目,对方提出了一个要求要APP能自动检测更新,我当时想APP自动检测更新,这个就是很简单的问题嘛,于是乎我就开始做了。
这个思路都很简单的,无非就是检测本地的版本号和服务器上面的版本好是否一致,如果本地的版本号小于服务器上面的版本,就弹出一个提示框,提示更新。
因为这是我第一个项目,也是第一次做这么一个功能,就上网搜索了一下,不得不说,就这么一个功能,网上有很多的实现方式的,具体可以自行搜索
我选择的是DownloadManager这个方式来实现后台下载的(DownloadManager的具体用法自行搜索),不得不说这个封装DownloadManager非常好用,强烈推荐使用。下载完成发送一条广播,然后弹出界面安装,这样一个非常常规的逻辑。
问题来了,我每次下载完成过后就会提示“解析错误,解析程序包时出现问题”,这就很尴尬了。我刚开始以为是下载不完全成导致了,apk文件错误的,我通过多次调试发现,代码逻辑没有任何问题,apk文件也是完全下载好。这个时候我就把怀疑对象放到了文件路径上面了,我怀疑程序找不到apk文件才会这样报错的
这是我下载的apk路径,没有问题
这是我查找路径apk,问题就出在这里了。/storage/emulated/0/XXX.apk 这就是查找的路径,你们是不是已经发现问题了,我apk不是保存在这个路径下面的,自然就解析出错了。问题找到了,解决方法自然就出来了
修改过后的查找路径/storage/emulated/0/Android/data/包名/files/Download,这样就可以了
这个思路都很简单的,无非就是检测本地的版本号和服务器上面的版本好是否一致,如果本地的版本号小于服务器上面的版本,就弹出一个提示框,提示更新。
因为这是我第一个项目,也是第一次做这么一个功能,就上网搜索了一下,不得不说,就这么一个功能,网上有很多的实现方式的,具体可以自行搜索
我选择的是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,这样就可以了
第一次写博客,如果有错误,欢迎指教!
相关文章推荐
- android通过URL路径下载安装文件
- 关于Android文件Apk下载的那点事
- Android中关于FTP的文件上传和下载
- 关于Android文件Apk下载的那点事
- 关于Android编程文件路径中含有中文字符的问题解决办法
- Android关于FTP文件上传和下载功能详解
- 关于android中版本自动更新,从服务器下载下来的文件不能安装的问题
- 2 关于android上下载网络文件大小异常的问题
- 关于下拉刷新你是否真的非常理解还是只会搬砖?附 Android 实例子源代码文件下载地址380个合集
- Android中关于APK文件的下载、安装和卸载
- Android中关于文件路径的问题
- 关于android上下载网络文件大小异常的问题
- 关于项目以war包方式部署,文件下载找不到路径
- IE和火狐关于文件上传路径然后下载的问题(正常路径IE识别,火狐识别不出正常的路径)
- 关于java下载文件及获取文件路径和截取字符串的一点记录
- 关于android中读取文件路径出现绝对路径的解决办法
- Android 关于文件存储路径的总结
- Android 关于带有中文字样以及空格文件名的文件上传及下载
- SVN管理android项目用svn控制版本,svn本身是不会识别哪些该传,哪些不该传,这就导致有些关于路径的东西(比如拓展jar的路径)也被上传了,而当别人下载后,那个路径对于这个人可能完全不存在,
- Android中关于APK文件的下载、安装和卸载