Моя цель - очистить оперативную память. Потому что моя идея - перезагрузить телефон. Я получил этот код, чтобы сделать это.
public static void rebootSU()
{
Runtime runtime = Runtime.getRuntime();
Process proc = null;
OutputStreamWriter osw = null;
StringBuilder sbstdOut = new StringBuilder();
StringBuilder sbstdErr = new StringBuilder();
String command="/system/bin/reboot";
try {
// Run Script
proc = runtime.exec("su");
osw = new OutputStreamWriter(proc.getOutputStream());
osw.write(command);
osw.flush();
osw.close();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (osw != null) {
try {
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
try {
if (proc != null)
proc.waitFor();
} catch (InterruptedException e) {
e.printStackTrace();
}
//sbstdOut.append(ReadBufferedReader(new InputStreamReader(proc.getInputStream())));
//sbstdErr.append(ReadBufferedReader(new InputStreamReader(proc.getErrorStream())));
if (proc.exitValue() != 0)
{
}
}
Когда я выполнил этот код, в logcat отображается предупреждение. Я также получил разрешение REBOOT. Когда я искал об этом, они говорят, как подписываться с некоторым ключом прошивки и всеми. Но я совсем не знаю из этого. Любая помощь будет оценена.
В Logcat
04-14 10:37:13.526: WARN/PackageManager(58): Not granting permission android.permission.REBOOT to package com.RebootTest (protectionLevel=3 flags=0x8446)
Был задан аналогичный вопрос и ответил здесь. Вы не можете перезагружать неповрежденный телефон, пока у вас нет ключа прошивки, чтобы его подписать.