2015-09-08 148 views
0

我有以下函數應該返回wpa_supplicant.conf文件的內容。Android:如何讀取根設備上wpa_supplicant.conf文件的內容?

我試圖通過這種方式讀檔:

public static String readTextFile() { 
     aBuffer = ""; 
     try 
     { 
      Runtime.getRuntime().exec("su"); 
      Runtime.getRuntime().exec("chmod +x /data/misc/wifi/wpa_supplicant.conf"); 
      File path= Environment.getDataDirectory(); 
      File myFile = new File("/data/misc/wifi/wpa_supplicant.conf"); 
      FileInputStream fIn = new FileInputStream(myFile); 
      BufferedReader myReader = new BufferedReader(
        new InputStreamReader(fIn)); 
      String aDataRow = ""; 
      aBuffer = ""; 
      while ((aDataRow = myReader.readLine()) != null) { 
       aBuffer += aDataRow + "\n"; 
      } 
      myReader.close(); 

     } 
     catch (Exception e) 
     { 
      Logger.e("Cannot read the file"); 
      Logger.e(e.getMessage()); 
     } 
     return aBuffer; 
    } 

而且我加入清單文件太:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

但是,當我試圖讀取放置在文件的內容:

/data/misc/wifi/wpa_supplicant.conf 

我總是會得到以下例外:

/data/misc/wifi/wpa_supplicant.conf: open failed: EACCES (Permission denied) 

我應該使用而不是輸入shell命令的輸出嗎? Fxp:

tail /data/misc/wifi/wpa_supplicant.conf 

我該如何解決這個問題?

非常感謝您的任何建議。

+0

真的沒有人知道嗎? – redrom

+0

你解決了這個問題嗎? –

回答

-1

是否有你試圖通過編寫應用程序來完成它的原因?

你在做su,但是這個命令提升了你沒有實例化的shell的權限..你必須運行代碼AS root。在那個時候通常閱讀文件。

相關問題