2012-04-04 12 views
0

Ich möchte eine Datei im Gerät berühren. Der Dateiname lautet /data/misc/wifi/wpa_supplicant.conf. Ich kann es mit AdB-Shell sehen. Wenn ich versuche, es mit dem folgenden Code zu öffnen, erhalte ich eine FileNotFoundException. Warum???Android FileNotFoundException, warum?

private void touchFile(String fileName) { 

    BufferedWriter bufferedWriter = null; 
    try { 
     bufferedWriter = new BufferedWriter(new FileWriter(fileName)); 
     bufferedWriter.append(' '); 
    } catch (FileNotFoundException ex) { 
     ex.printStackTrace(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } finally { 
     try { 
      if (bufferedWriter != null) { 
       bufferedWriter.flush(); 
       bufferedWriter.close(); 
      } 
     } catch (IOException ex) { 
      ex.printStackTrace(); 
     } 
    } 

} 
+0

können wir den Stack-Trace sehen, den Sie drucken? – mfrankli

+0

04-04 23: 19: 19.196: W/System.err (1221): java.io.FileNotFoundException: /data/misc/wifi/wpa_supplicant.conf: Öffnen fehlgeschlagen: EACCES (Berechtigung verweigert) –

+0

Ja, es ist eine Erlaubnis verweigert, aber ich sollte auf dieser Maschine root sein. –

Antwort

1

Der Pfad /data/misc/ ist nur mit root-Berechtigung zugänglich. Das ist wahrscheinlich der Grund, warum Sie diese Ausnahme bekommen.

+0

Sie haben Recht, aber die Maschine ist verwurzelt, in der Tat möchte ich die Änderungen in WLAN-Einstellungen mit einem FileObserver verwalten. –

+0

Ich verstehe. Einchecken/System/etc/wifi? – Blackbelt

+0

Die Antwort lautet Runtime.getRuntime(). Exec ("su"), um den Prozess als root auszuführen. Ich versuche es und lasse es Sie wissen. –

Verwandte Themen