我有以下函数应该返回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命令的inputStream输出stred吗? Fxp:
tail /data/misc/wifi/wpa_supplicant.conf
我该如何解决这个问题?
非常感谢您的任何建议。
答案 0 :(得分:-1)
您是否有理由通过编写应用程序来实现此目的?
你正在做su,但是这个命令提升了你没有实例化的shell中的权限..你必须运行AS root代码。此时正常读取文件。