3

Android フォンの adb シェル (/system/etc ディレクトリ) で実行する小さなスクリプトがあります。これにより、単一の AT コマンドを送受信することでモデムと通信できます。スクリプト自体は、adb シェルで実行すると問題なく動作します。それは次のようになります。

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)

#

PC で実行されている powershell スクリプトからこのスクリプトを呼び出して、最終的に AT コマンド経由でモデムを制御したいのですが、何も起こりません。たとえば、以下の powershell スクリプトは、コマンド at+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 コマンド)、または at+cops?(echo) のように見えることもあれば、何も表示されないこともありますが、+COPS: 0,0,"AT&T" になることはありません。 、6私は期待しています。何が起こっているのか、どうすれば修正できるのかを理解するのを手伝ってもらえますか? 理想的には、コマンドで実行し、制御を powershell に戻し、出力をさらに処理できるようにしたいと考えています。私は同じことを実装する他のソリューションにもオープンです。よろしくお願いします。ありがとう!

4

1 に答える 1

0

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

あなたの場合は使えると思います。

于 2012-01-29T10:51:23.320 に答える