Adb shell命令用于更改设置或在手机上执行任务

Noa*_*oah 18 android adb

如何使用adb在我的Android手机上执行一些自动化任务?我需要找到可以从命令行发出的命令(理想情况下,使用.bat文件),这些命令不仅可以打开应用程序或发送输入键事件(按下按钮).

例如,我想从命令行打开或关闭飞行模式.目前,我能做的最好的事情是启动无线和网络设置菜单,然后使用输入键事件点击飞行模式:

adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS
adb shell input keyevent 19 & adb shell input keyevent 23
Run Code Online (Sandbox Code Playgroud)

这种方法有很多缺点,主要是屏幕必须打开和解锁.此外,我想要做的任务比这个简单的例子要广泛得多.如果可能的话,我想做的其他事情:

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
Run Code Online (Sandbox Code Playgroud)

2.播放视频.(当前解决方案:打开MediaGallery,发送keyevents,类似于上面)

3.更改音量(当前解决方案:发送音量增大按钮键事件)

4.更改显示超时(当前解决方案:打开声音和显示设置,发送键事件)

和以前一样,这些都需要屏幕打开和解锁.使用keyevent的另一个主要缺点是,如果更改了应用程序的UI,则keyevents将不再执行正确的功能.如果没有更简单的方法来做这些事情,那么至少有一种方法可以在屏幕关闭时打开屏幕(使用adb)吗?或者在屏幕关闭时仍然可以使用键事件?

我对java不太熟悉.也就是说,我已经看到如下代码(来源:http://yenliangl.blogspot.com/2009/12/toggle-airplane-mode.html)来更改手机上的设置:

Settings.System.putInt(Settings.System.AIRPLANE_MODE_ON, 1 /* 1 or 0 */);
Run Code Online (Sandbox Code Playgroud)

如何将上述内容翻译成adb shell命令?这是可能的,还是错误的思考方式?

如果需要,我可以提供更多细节.谢谢!

roh*_*rma 16

虽然问题很老,但它可能对其他人有帮助.

对于视频播放,您可以尝试这样做:

adb shell am start -a android.intent.action.VIEW -d   "file:///mnt/sdcard/DCIM/Camera/test.3gp" -t "video/*" 
Run Code Online (Sandbox Code Playgroud)

^为您提供可以播放此文件的所有有能力的玩家的提示.

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

^在由开关-n指定的播放器中播放.


Mau*_*ijk 0

您显示的 Java 示例适用于在手机本身上运行的程序。您也许可以在手机上编写某种解释器来处理 adb 命令。这样你就不再依赖按键事件了。然而,这并不是一件小事。