我有一个小脚本,我在Android手机的adb shell(/ system / etc目录)中运行,它可以通过发送/接收单个AT命令与调制解调器通信。 如果脚本本身在adb shell中运行,则可以正常工作。这就是它的样子:
cat /dev/pts/7 &
echo -e $1\\r > /dev/pts/7
这是adb shell中的输出:
# ./sendATCommand "at+cops?"
./sendATCommand "at+cops?"
#
+COPS: 0,0,"AT&T",6
OK
/dev/pts/7: invalid length
(need to press ENTER to return control to adb shell)
#
现在我想从我的PC上运行的PowerShell脚本调用这个脚本,从而最终通过AT命令控制调制解调器,但没有任何反应。 例如,下面的powershell脚本将在+ cops发送命令?检查运营商注册的运营商:
$adb = [IO.Path]::Combine([IO.Path]::Combine($Env:ANDROID, "platform-tools"), "adb.exe")
& $adb remount
$atCommand = "at+cops?"
& $adb shell /system/etc/sendATCommand $atCommand
输出有时可能看起来像+ ATCMD(启动后位于设备缓冲区中的任何剩余[专有] AT命令),或者+ cops?(echo),或者什么也没有,但是 永远+ COPS:0,0,“AT& T”,6我期望。你能帮我弄清楚发生了什么以及如何解决这个问题吗?理想的情况下 我希望能够执行命令,将控制权返回给powershell,并使输出可用于进一步处理。 我也愿意接受其他解决方案来实现同样的事情。 非常感谢你的帮助。谢谢!
答案 0 :(得分:0)
不确定回答你的问题,我的手机不是Android,但当我通过蓝牙或USB连接到我的电脑时,会创建一个COM端口。因此,我在.NET SerialPort class的顶部构建了一个组装工具,例如,允许使用手机调制解调器发送短信。
我认为它适用于您的情况。