2012-01-28 115 views
3

Androidの電話(/ system/etcディレクトリ)のadbシェルで実行するスクリプトがあります。これは、1つのATを送受信してモデムと通信することができますコマンド。 スクリプト自体がadbシェルで実行されていればOKです。それはそれは次のようになります。PowershellスクリプトのATコマンドをadb経由でAndroid phoneに送信

cat /dev/pts/7 & 
echo -e $1\\r > /dev/pts/7 

はここでadbのシェルでの出力です:

# ./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) 

# 

今私は、このように最終的にATコマンドを経由してモデムを制御し、私のPC上で実行されているPowerShellのスクリプトからこのスクリプトを呼び出したいですしかし、何も起こりません。 たとえば、以下の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:0,0、 "AT & T"、私が期待している6。あなたは何が起こっているのか、それを修正する方法を理解するのを助けてくれますか?理想的には 私はコマンドで実行し、制御をpowershellに戻し、出力を後で処理できるようにしたい。 私は同じことを実装するための他のソリューションにもオープンしています。 あなたのご協力に感謝します。ありがとう!

+0

同じことがcmd.exeから機能しますか?引数を渡す問題のようなにおいがします。このような '&$ adb shell/system/etc/sendATCommand '' '" $ atCommand "" "'のように、引用符をadb.exeに渡すことをお試しください。 –

+0

手がかりのおかげでAndy、私はそれを試してみる機会を得なかった。明日はそれをします。 –

答えて

0

私の電話はAndroidではありませんが、私はbuetoothまたはUSB経由でコンピュータに接続すると、COMポートが作成されます。そこで私は.NET SerialPort classの上部に、電話モデムを使ってSMSを送信するためのアセンブリツールを構築します。

あなたのケースでは使用可能だと思います。

+0

ありがとうございました。私はすでにこれを実装しています(モデムにシリアルポート経由でPCと通信する)が、本当にAPとモデム間のAT通信をadbシェルから実行する能力が必要です。 –

関連する問題