通过adb从Powershell脚本向Android手机发送AT命令

时间:2012-01-28 01:42:57

标签: android powershell command adb at-command

我有一个小脚本,我在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,并使输出可用于进一步处理。 我也愿意接受其他解决方案来实现同样的事情。 非常感谢你的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

不确定回答你的问题,我的手机不是Android,但当我通过蓝牙或USB连接到我的电脑时,会创建一个COM端口。因此,我在.NET SerialPort class的顶部构建了一个组装工具,例如,允许使用手机调制解调器发送短信。

我认为它适用于您的情况。