java.io.IOException:运行exec()时出错。命令:工作目录:null环境:null

时间:2016-11-18 08:19:32

标签: android ioexception android-install-apk silent-installer

我正试图在没有任何提示的情况下安静地安装apk。

这是使用adb命令安装apk文件的代码。

public void InstallAPK(String filename){
    File file = new File(filename);
    if(file.exists()){
        try {
            String command;
            command = "adb install -r " + filename;
            Process proc = Runtime.getRuntime().exec(new String[] { "su", "-c", command });
            proc.waitFor();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

但是当我运行此代码时,我收到以下错误。

  

java.io.IOException:运行exec()时出错。命令:[su,-c,adb install -r /storage/emulated/0/Download/sampleapp.apk]工作目录:null环境:null

我已经授予了这些权限。

<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

请有人帮我解决此错误。

1 个答案:

答案 0 :(得分:0)

您无法在应用程序的范围内静默运行命令,以在该应用程序的范围之外安装apk。

但你可以提出让AOSP做到这一点的意图。请查看以下答案:Install Application programmatically on Android

Intent promptInstall = new Intent(Intent.ACTION_VIEW)
     .setDataAndType(Uri.parse("file:///path/to/your.apk"), 
                     "application/vnd.android.package-archive");   
startActivity(promptInstall);