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();
}
ただし、今回は出力もエラーもありません。単純に、ビジーボックスなしで実行してみました
echo -ne 'testMessage' > /dev/ttymxc1
ただし、これにより、null 作業ディレクトリ、null 環境エラーが発生します。ただし、これはadbシェルで機能します...
アプリでコマンドを実行した場合の出力が、adb シェルでコマンドを実行した場合と同じにならない理由はありますか? これを機能させる正しい方法はありますか?
編集: root ユーザーとして実行していることに注意してください。また、このコマンドの前に次を実行し、スーパー ユーザー権限が付与されていることを確認しました。
try
{
process = Runtime.getRuntime().exec("su");
}
catch (IOException e)
{
e.printStackTrace();
}