Этот код ниже успешно перезагружает устройство Android:
Process p = Runtime.getRuntime().exec("su");
OutputStream outputStream = p.getOutputStream();
InputStream inputStream = p.getInputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
dataOutputStream.writeBytes("reboot");
dataOutputStream.flush();
dataOutputStream.close();
outputStream.close();
p.waitFor();
Этот код должен остановить запущенное в данный момент приложение. Но это ничего не делает.
Process p = Runtime.getRuntime().exec("su");
OutputStream outputStream = p.getOutputStream();
InputStream inputStream = p.getInputStream();
DataOutputStream dataOutputStream = new DataOutputStream(outputStream);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
dataOutputStream.writeBytes("am force-stop com.XXX.XXX.XXX");
dataOutputStream.flush();
dataOutputStream.close();
outputStream.close();
p.waitFor();
Все команды работают через ADB Shell, а в устройстве есть скрипт "su". Есть ли процесс, который я могу устранить? Что я должен делать?
Когда запускается dataOutputStream.flush(), это дает мне эту ошибку:
04–29 01:56:05.057: W/System.err(6969): java.io.SyncFailedException: ошибка fsync: EINVAL (неверный аргумент)