我想在shell中写入echo -e "AT\r" > /dev/smd0,然后得到它的响应。
响应将在\dev\smd0中。
我在谷歌上搜索发现:

 Runtime r = Runtime.getRuntime();
            process = r.exec("su");
            process = r.exec("echo -e \"AT\\r\" > /dev/smd0");

但它不起作用。
我也不知道该怎么读。
如果我安装了终端模拟器,我可以编写命令并用cat \dev\smd0获得其响应。

最佳答案

尝试like this

try {
    Runtime r = Runtime.getRuntime();
    Process process = r.exec(" su -c 'echo -e \"AT\\r\" > /dev/smd0; cat /dev/smd0' ");

    BufferedReader in = new BufferedReader(
                        new InputStreamReader(process.getInputStream()));
    String line = null;
    while ((line = in.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

此外,您还需要根用户访问您的手机。

10-04 14:03