今天一上班就被告知软件没法自动更新,明明都测试过的怎么就不行了呢。仔细询问才发现,原来是手机没有安装sdcard,悲催啊又得想办法解决了。google了下,原来这问题不少人都遇过,也已经有的解决的办法,在这也就当本身再总结下。 html
自动安装apk通常都是调用 Intent.FLAG_ACTIVITY_NEW_TASK ,是须要知道apk所在的目录的,没有了sdcard,只能存在应用自己的目录下了。可是用户对文件,没有写和执行的权限(这里有说明http://www.2cto.com/kf/201112/112876.html) java
这里就要经过shell指令对该文件附加权限 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); } }这样就大功告成了啊