使用Linux echo命令以编程方式写入android文件

时间:2018-12-07 12:21:56

标签: android linux linux-kernel echo android-external-storage

要求是在任何位置(例如“ / sys / bus / i2c / devices / 4-0024 / command”)使用echo命令写入文件,此处 command 是文件名,其中值待写。

我尝试了下面的代码,但没有用

    private void writeCommand(String data) {
    try {
        Runtime rt = Runtime.getRuntime();
        Process proc = rt.exec("echo "+data+" > "/sys/bus/i2c/devices/4-0024/command");
        BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    } catch (Throwable t) {
        t.printStackTrace();
    }
}

此处命令可以是任何字符串。 后来我得到了这个answer,所以我尝试了同样的方法,但是没有运气。

以下是相同的代码:

    private void writeCommand(String data) {
    try {
        Runtime rt = Runtime.getRuntime();
        String[] cmnd = {"sh", "-c", "echo " + data+ ">" /sys/bus/i2c/devices/4-0024/command"};
        Process proc = rt.exec(cmnd);
        BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream()));
        String line;
        while ((line = br.readLine()) != null) {
            System.out.println(line);
        }
    } catch (Throwable t) {
        t.printStackTrace();
    }
}
  

注意1:我只需要使用shell命令来写入文件,   使用FileWriter

     

注2:我的应用是系统应用,因此拥有所有特权   权限,包括“ WRITE_EXTERNAL_STORAGE”

     

注3:我使用chmod 777授予了Linux写权限

     

注意4:android linux sepolicy已关闭。

     

注5:如果我在命令提示符下使用相同的命令,则它正在向其中写入数据   文件

请让我知道如何实现这一目标。

0 个答案:

没有答案