我正在编写一个 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();
}
}
然后当屏幕重新打开时,我通过重写文件将系统恢复到以前的状态。一切都运行良好,按预期工作。
问题是我在打开/关闭屏幕时注意到一些滞后。此外,当我打开屏幕时,我看到来自超级用户的 toast 消息“应用程序被授予 su 访问权限”,并且每个命令都会弹出一次。有没有办法隐藏那个吐司信息?我还没有找到任何方法来隐藏来自另一个活动的 toast 消息。我知道可以在超级用户应用程序中禁用它们,但这并不理想。我读到您可以编写自己的超级用户二进制文件,但这听起来比简单的 java 编程要复杂得多……听起来也可能导致安全问题。
基本上我在问什么是最好的方法来做到这一点,以便它对用户尽可能无创?