今天一上班就被告知软件无法自动更新,明明都测试过的怎么就不行了呢。仔细询问才发现,原来是手机没有安装sdcard,悲催啊又得想办法解决了。google了下,原来这问题很多人都遇过,也已经有的解决的办法,在这也就当自己再总结下。
自动安装apk一般都是调用 Intent.FLAG_ACTIVITY_NEW_TASK ,是需要知道apk所在的目录的,没有了sdcard,只能存在应用本身的目录下了。但是用户对文件,没有写和执行的权限(这里有说明http://www.2cto.com/kf/201112/112876.html)
这里就要通过shell指令对该文件附加权限
private void exec(String filePath){
String[] command = {"chmod","777",filePath};
ProcessBuilder builder = new ProcessBuilder(command);
try {
builder.start();
} catch (IOException e) {
AppException.httpIoError(e);
}
}
这样就大功告成了啊