gpt4 book ai didi

android - 在 Android 中运行 Linux 命令以通过串口进行通信

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:49 26 4
gpt4 key购买 nike

我正在尝试在 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 中运行命令的输出不一样是有原因的吗?有没有正确的方法来让它工作?

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

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

最佳答案

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

试试这个:

try
{
process = Runtime.getRuntime().exec(YOUR COMMAND HERE);
process.waitFor();
}
catch (IOException e)
{
e.printStackTrace();
}

关于android - 在 Android 中运行 Linux 命令以通过串口进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33262131/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com