Я пишу приложение для Android, которое устанавливает максимальную частоту, регулятор и т. Д., Когда экран выключается. Для этого у меня есть служба, которая получает трансляцию в режиме включения/выключения экрана. Когда экран выключен событие срабатывает, я прочитал от общих предпочтений и установить любой устанавливается пользователем с помощью этой функцииAndroid выполняет команды SU в фоновом режиме?
public static void writeFile(String file, String content) {
try {
Process suProcess = Runtime.getRuntime().exec("su");
DataOutputStream out = new DataOutputStream(suProcess.getOutputStream());
out.writeBytes("echo '" + content + "' > '" + file + "'");
out.flush();
out.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
Затем, когда экран снова включится, я вернуть систему в прежнее состояние, переписав файлы. Все работает красиво, работает по назначению.
Проблема в том, что я замечаю некоторое отставание при включении/выключении экрана. Также, когда я включаю экран, я вижу сообщение тоста от SuperUser «Приложение было предоставлено su access», и оно появляется один раз для каждой команды. Есть ли способ скрыть это тост-сообщение? Я не нашел способа скрыть тост-сообщение от другого действия. Я знаю, что они могут быть отключены в приложении суперпользователя, но это не идеально. Я читал, что вы можете написать свой собственный суперпользователь, но это звучит намного сложнее, чем простое программирование на Java ... также похоже, что это может привести к проблемам безопасности.
В принципе, я спрашиваю, что это лучший способ сделать это, чтобы он был как нельзя более инвазивным для пользователя?