今天一上班就被告知軟件沒法自動更新,明明都測試過的怎麼就不行了呢。仔細詢問才發現,原來是手機沒有安裝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); } }這樣就大功告成了啊