APK放到data/data/下面提示解析失败

来源:互联网 发布:select js 选中value 编辑:程序博客网 时间:2024/05/18 01:01

之前有个小需求需要下载APK到/data/data目录下面,但是在安装的时候提示解析失败。

首先是这个情况,我们一般通过这个方法Environment.getExternalStorageDirectory().getPath(),获取手机自带的存储器路径,不包括外置sdcard。但是通过这个方法获取的路径,刚好容量满了导致无法下载任何文件,那怎么办?

现实中也有这样的需求,假如:我们应用需要升级,需要下载一个新的APK,由于之前的路径容量满了,导致无法下载APK,那这部分用户不就升级不了了。 还好Android提供了好多API,可以提供好多下载路径。

1.context.getFilesDir().getPath()这个方法可以获取data/data/packname/files目录

2.context.getCacheDir().getPath()这个方法可以获取data/data/packname/cache目录。

等等,可以把APK下载到上面这些路径中。但是下载完成,发现无法安装APK,总是报错,上网搜了下问题,网友也提出来了解决方案,确实是权限的问题。在这个文件下载完成之后,对于这个文件路径,需要加个权限设置,代码如下。

String cmd = "chmod 777 " + path;
try {
Runtime.getRuntime().exec(cmd);
     } catch (IOException e) {
e.printStackTrace();
     }

就可以正确的安装APK文件了。

0 0
原创粉丝点击