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

本文介绍了在Android设备上下载APK至特定目录时遇到的安装权限问题,并提供了解决方案,即通过设置文件权限来确保APK可以被正确安装。


之前有个小需求需要下载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文件了。

经过测试,可行,同时应该注意版本,有些版本高于手机版本也会出现解析错误

转:http://blog.youkuaiyun.com/lonely_fireworks/article/details/27693073

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值