2013-04-14 143 views
1

我正在寫一個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(); 
    } 
} 

然後,我通過重寫還原系統到以前的狀態文件。一切都很好,按預期工作。

的問題是在/打開屏幕關閉時,我注意到有些滯後。此外,當我打開屏幕,我看到超級用戶敬酒消息「應用程序被授予蘇訪問」,併爲每一個命令一次彈出。有沒有辦法隱藏烤麪包信息?我還沒有找到任何方法來隱藏來自其他活動的吐司消息。我知道他們可以在超級用戶應用程序中被禁用,但這並不理想。我看了你可以寫你自己的超級二元但聽起來很多比簡單的Java編程更加複雜......也覺得這會導致安全問題。

基本上我問什麼是做到這一點的最好辦法,所以它的非侵入用戶儘可能?

回答

0

我還沒用過su,但是我想如果你不關閉這個流,每次它只應該顯示一次吐司。