1

我正在编写一个 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 编程要复杂得多……听起来也可能导致安全问题。

基本上我在问什么是最好的方法来做到这一点,以便它对用户尽可能无创?

4

1 回答 1

0

我没有用过su,但我认为如果你不每次都关闭流,它应该只显示一次toast。

于 2013-04-14T18:53:51.520 回答