Я пытаюсь создать приложение, которое позволяет переключать регуляторы масштабирования моего телефона (да, я рутирован). После долгих поисков я обнаружил, что, как правило, мне нужно выполнить команду off process = Runtime.getRuntime().exec(cmd);
Однако после многих попыток приложение, похоже, не отвечает должным образом. Пока это мой код.
String RunCommand(String cmd) {
StringBuffer cmdOut = new StringBuffer();
Process process;
try{
process = Runtime.getRuntime().exec(cmd);
InputStreamReader r = new InputStreamReader(process.getInputStream());
BufferedReader bufReader = new BufferedReader(r);
char[] buf = new char[4096];
int nRead = 0;
while ((nRead = bufReader.read(buf)) > 0){
cmdOut.append(buf, 0, nRead);
}
bufReader.close();
try {
process.waitFor();
}catch (InterruptedException e){
e.printStackTrace();
}
}catch (IOException e) {
e.printStackTrace();
}
return cmdOut.toString();
}
На самом деле мне не нужен выходной файл, так как команды, которые я выполняю, на самом деле не нуждаются в выводе. т.е. echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
Когда я запускаю приложение, оно либо зависает, либо просто ничего не делает. Не уверен, что я делаю не так? Любая помощь с благодарностью!