從日志里可以看出來是PermissonDenied,failed to open, Unable to read。測試后發(fā)現(xiàn)文件存儲在程序Cache目錄下才會出現(xiàn)這個問題,存儲在SD卡并不報錯,所以在installApk方法中加一個chmod方法更改文件的訪問權限,問題解決! /** * 安裝應用程序 */ public void installAPK(String path) { File apkfile = new File(path); if (!apkfile.exists()) return; chmod("777", path); //更改文件權限 Intent intent = new Intent(Intent.ACTION_VIEW); intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true); //表明不是未知來源 intent.setDataAndType(Uri.parse("file://" + apkfile.toString()), "application/vnd.android.package-archive"); ((Activity)context).startActivityForResult(intent, 0); }/** * 獲取權限 * * @param permission * 權限 * @param path * 路徑 */ public void chmod(String permission, String path) { try { String command = "chmod " + permission + " " + path; Runtime runtime = Runtime.getRuntime(); runtime.exec(command); } catch (IOException e) { e.PRintStackTrace(); } }新聞熱點
疑難解答