0

我正在尝试在 Android 中运行命令以将输出发送到串行端口。如果我使用 adb shell 并输入以下内容:

busybox echo -ne 'testMessage' > /dev/ttymxc1

我在连接到主板串行端口的终端上收到“testMessage”。

然后我在 Android 应用程序中运行以下命令:

    try
    {
        Runtime.getRuntime().exec("busybox echo -ne 'testMessage' > /dev/ttymxc1");
    } catch (IOException e)
    {
        e.printStackTrace();
    }

但是,这次我没有收到任何输出,也没有错误。我试过在没有busybox的情况下运行,只是

echo -ne 'testMessage' > /dev/ttymxc1

但这会导致空工作目录、空环境错误。这在 adb shell 中确实有效......

在应用程序中运行命令的输出是否与在 adb shell 中运行命令不同?有没有正确的方法来让它工作?

编辑:请注意我以 root 用户身份运行。我还在此命令之前运行了以下命令,并确保已授予超级用户权限:

    try
    {
        process = Runtime.getRuntime().exec("su");
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
4

1 回答 1

0

我认为你应该等待你的命令的结果,只要它是异步过程。在您的代码中,该命令正在处理中,但您没有等待足够的时间从中获得任何结果,因此您没有收到错误/结果。

尝试这个 :

try
{
    process = Runtime.getRuntime().exec(YOUR COMMAND HERE);
    process.waitFor(); 
}
catch (IOException e)
{
    e.printStackTrace();
}
于 2015-10-21T15:44:04.250 回答