18

adbを使用してAndroid携帯で自動化されたタスクを実行するにはどうすればよいですか?コマンドラインから(理想的には.batファイルを使用して)発行できるコマンドを見つける必要があります。このコマンドは、単にアプリケーションを開いたり、入力キーイベントを送信したり(ボタンを押す)以上のことができます。

たとえば、コマンドラインから機内モードのオンとオフを切り替えたいとします。現在、私ができる最善の方法は、[ワイヤレスとネットワークの設定]メニューを起動し、入力キーイベントを使用して[機内モード]をクリックすることです。

adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
adb shell input keyevent 19 & adb shell input keyevent 23

この方法にはかなりの数の欠点があります。主に、画面をオンにしてロックを解除する必要があることです。また、私がやりたいタスクは、この単純な例よりもはるかに広いです。可能であれば他にやりたいこと:

1.mp3を再生し、繰り返しに設定します。現在の解決策:

adb shell am start -n com.android.music/.MusicBrowserActivity
adb shell input keyevent 84
adb shell input keyevent 56 & adb shell input keyevent 66 & adb shell input keyevent 67 & adb shell input keyevent 19
adb shell input keyevent 23 & adb shell input keyevent 21
adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 19 & adb shell input keyevent 22 & adb shell input keyevent 22 & adb shell input keyevent 23 & adb shell input keyevent 23

2.ビデオを再生します。(現在の解決策:MediaGalleryを開き、上記と同様にキーイベントを送信します)

3.音量を変更します(現在の解決策:音量を上げるボタンのキーイベントを送信します)

4.表示タイムアウトを変更します(現在の解決策:サウンドと表示設定を開き、キーイベントを送信します)

以前と同様に、これらはすべて画面がオンでロックが解除されている必要があります。キーイベントを使用することのもう1つの大きな欠点は、アプリケーションのUIが変更された場合、キーイベントが正しい機能を実行しなくなることです。この種のことを行う簡単な方法がない場合、少なくとも画面がオフのときに(adbを使用して)画面をオンにする方法はありますか?または、画面がオフのときにキーイベントを引き続き機能させるには?

私はJavaにあまり詳しくありません。そうは言っても、電話の設定を変更するための次のようなコード(ソース:http: //yenliangl.blogspot.com/2009/12/toggle-airplane-mode.html )を見たことがあります。

Settings.System.putInt(Settings.System.AIRPLANE_MODE_ON, 1 /* 1 or 0 */);

上記のようなものをadbシェルコマンドに変換するにはどうすればよいですか?これは可能ですか、それとも間違った考え方ですか?

必要に応じて詳細をお知らせします。ありがとう!

4

4 に答える 4

16

質問は古いですが、他の人に役立つかもしれません。

ビデオの再生については、これを試すことができます:

adb shell am start -a android.intent.action.VIEW -d   "file:///mnt/sdcard/DCIM/Camera/test.3gp" -t "video/*" 

^このファイルを再生できるすべてのプレーヤーのプロンプトが表示されます。

adb shell am start -a android.intent.action.VIEW -d "file:///mnt/sdcard/DCIM/Camera/test.3gp" -t "video/*" -n "com.alensw.PicFolder/.PlayerActivity" 

^スイッチ -n で指定されたプレーヤーで再生します。

于 2012-07-03T12:17:14.533 に答える
3

私は同じ一連の問題に取り組んでいます。(キーイベント HOME を使用してから MENU を使用することで、ボタンをまっすぐ押すことでコンテキストの問題をほとんど解決しましたが、どういうわけか、それでさえ信頼できません。) 現在、有望な SL4A (Android 用スクリプト レイヤー) を調査しています。これにより、デバイスで SL4A サーバーを起動した後、Perl、Python、Lua、およびその他のスクリプト言語が PC から Android API とやり取りできるようになります。これは PC からも実行できます。「Pro Android Python with SL4A」が優れたリソースであることがわかりました。その本から始めていたら、Web での試行錯誤と検索に何日も費やす必要がなかったでしょう。

于 2011-10-12T13:44:18.687 に答える
0

表示するJavaの例は、電話自体で実行されているプログラム用です。adbコマンドを処理する電話で、ある種のインタプリタをプログラムできる場合があります。そうすれば、キーイベントに依存しなくなります。ただし、これはマイナーな作業ではありません。

于 2010-02-04T22:03:11.953 に答える
-2

MonkeyRunnerも有望なように見えますが、まだその限界を見つけるほど深く掘り下げていません。

Android ScreenCastを使用すると、PC からデバイスの画面を表示および制御できます。これには、自動化の可能性もあります。ただし、そのアプリケーションにはロジスティクス上の問題がいくつかあります。

ちなみに、ロックされたホームスクリーンは、MENU キーイベントと一連の sendevents (キーイベントの代わりに) を使用して通過できます。

于 2011-10-12T13:47:19.590 に答える