我正在编写一个Android应用程序来设置最大频率,调控器等。当屏幕关闭时。要做到这一点,我有一个服务运行接收屏幕开/关广播意图。当屏幕关闭事件触发时,我从共享首选项中读取并设置用户使用此功能设置的任何内容
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的Toast消息“App被授予su访问权限”,并且每次命令都会弹出一次。有没有办法隐藏那个吐司的消息?我没有找到任何方法来隐藏来自另一个活动的Toast消息。我知道他们可以在超级用户应用程序中禁用,但这并不理想。我读过你可以编写自己的超级用户二进制文件,但这听起来比简单的java编程更复杂......听起来也许会导致安全问题。
基本上我问的是最好的方法是什么,这样对于用户来说这是非侵入性的?
答案 0 :(得分:0)
我没有使用su,但我想如果你每次只显示吐司一次就不关闭流。