我试图在Android中运行命令以将输出发送到串行端口。如果我使用adb外壳并输入以下内容:在Android中运行Linux命令以通过串行进行通信
busybox echo -ne 'testMessage' > /dev/ttymxc1
我收到连接到电路板的串口终端上的“测试消息”。
然后我在Android应用程序运行以下命令:
try
{
Runtime.getRuntime().exec("busybox echo -ne 'testMessage' > /dev/ttymxc1");
} catch (IOException e)
{
e.printStackTrace();
}
但是,我没有收到输出,并没有错误这一次。 我试着运行没有的busybox,只需
echo -ne 'testMessage' > /dev/ttymxc1
但是这会导致一个空工作目录,空环境错误。这虽然在adb外壳工作,但...
是否有一个原因在应用程序中运行该命令的输出不执行相同的命令在adb shell中运行?有没有一个正确的方法来实现这个工作?
编辑:请注意我以root用户身份运行。我也跑了这个命令以下之前,确保超级用户权限已被授予:
try
{
process = Runtime.getRuntime().exec("su");
}
catch (IOException e)
{
e.printStackTrace();
}
,我发现周围的工作为我的具体情况。 只需将/ dev/ttymxc1视为任何其他文件并写入文件即可通过串行端口发送数据。同样,你可以读取文件(我已经有了读取方法在FileObserver中运行),它可以让你通过串口将任何数据发送到设备。 – redspidermkv