我試圖在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