web-dev-qa-db-ja.com

電話で設定を変更したりタスクを実行したりするためのAdb Shellコマンド

Android電話で自動化されたタスクを実行するためにadbをどのように使用しますか?コマンドラインから(理想的には、.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.ディスプレイのタイムアウトを変更します(現在の解決策:サウンドとディスプレイの設定を開き、キーイベントを送信します)

以前と同様に、これらはすべて画面をオンにしてロックを解除する必要があります。キーイベントを使用する他の主な欠点は、アプリケーションの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 Shellコマンドに変換するにはどうすればよいですか?これは可能ですか、それとも間違った考え方ですか?

必要に応じて詳細を提供できます。ありがとう!

18
Noah

質問は古いですが、誰かを助けるかもしれません。

ビデオ再生の場合、これを試すことができます:

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

^このファイルを再生できるすべてのプレイヤーにプロンプ​​トを表示しますcapableプレーヤー。

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で指定されたプレーヤーで再生します。

16
rohitverma

同じ一連の問題に取り組んでいます。 (私はほとんどの場合、キーイベントHOMEを使用してからメニューを使用してストレートボタンを押すことでコンテキストの問題を解決しましたが、どういうわけかそれは信頼できません。)現在調査中です SL4A (Androidのスクリプトレイヤー) 、それは約束があります。デバイスでSL4Aサーバーを起動した後、Perl、Python、Lua、およびその他のスクリプト言語がAndroid APIをPCから操作できるようになります。これはPCからも実行できます。I " Pro Android Python with SL4A "は優れたリソースであることがわかりました。試用期間を節約できたでしょう- and-errorと私はその本を始めていた場合、Webでの狩猟

3
Bill

表示するJavaの例は、電話自体で実行されているプログラムの例です。adbコマンドを処理する電話で、ある種のインタープリターをプログラムできる可能性があります。そうしないと、もうキーイベントに依存していますが、これはマイナーな仕事ではありません。

0
Maurits Rijk