我有一个必须使用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();
}
}
答案 0 :(得分:1)
我设法运行我的pm命令。 是SuperSU阻止我在root访问下执行的子进程。 在SuperSu中,您可以在参数部分中使用参数来信任子进程。 这个参数默认为false,它阻止了我的pm命令。设置为true,不再有任何问题。