无法在程序中执行pm install

时间:2013-10-01 10:44:31

标签: android process

我有一个必须使用pm安装的android程序,它是一个企业应用程序,我想运行pm install来默默地为我们的客户更新应用程序

我有一个方法可能运行pm安装但没有发生任何事情我不明白为什么?有人可以帮帮我吗?

private void installproperlyApp(){
        Process process = null;
        try{
            process = Runtime.getRuntime().exec("su");
            DataOutputStream os = new DataOutputStream(process.getOutputStream());
            System.out.println("DANS LE INSTALL COMMAND");
            os.writeBytes("pm install -r /sdcard/telegestion.apk"+"\n");

            os.writeBytes("exit\n");
            os.flush();
            os.close();

            String line ="";
            //on récupère l'inputStream sinon on a un deadLock pour le process
            BufferedReader inputProcess = new BufferedReader(new InputStreamReader(process.getInputStream()));
            while ((line = inputProcess.readLine()) != null) {
                System.out.println(line);
            }

            //on récupère l'errorStream sinon on a un deadLock pour le process
            BufferedReader errorProcess = new BufferedReader(new InputStreamReader(process.getErrorStream()));
            while ((line = errorProcess.readLine()) != null) {
                System.out.println(line);
            }
            //process.waitFor();

        } catch (IOException e) {
            System.out.println(e.toString());
        } finally {
            if (process != null)
                process.destroy();
        }
    }

1 个答案:

答案 0 :(得分:1)

我设法运行我的pm命令。 是SuperSU阻止我在root访问下执行的子进程。 在SuperSu中,您可以在参数部分中使用参数来信任子进程。 这个参数默认为false,它阻止了我的pm命令。设置为true,不再有任何问题。