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

Android Adb shell用于更改手机设置或执行任务的命令,android,adb,Android,Adb,如何使用adb在android手机上执行一些自动化任务?我需要找到可以从命令行发出的命令(理想情况下,使用.bat文件),这些命令将不仅仅能够打开应用程序或发送输入键事件(按钮按下) 例如,我想从命令行打开或关闭飞机模式。目前,我只能启动无线和网络设置菜单,然后使用input keyevents单击飞机模式: adb shell am start -a android.settings.AIRPLANE_MODE_SETTINGS adb shell input keyevent 19 &

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

例如,我想从命令行打开或关闭飞机模式。目前,我只能启动无线和网络设置菜单,然后使用input keyevents单击飞机模式:

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,发送keyevents,与上述类似)

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

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

与以前一样,这些都需要打开屏幕并解锁。使用keyevents的另一个主要缺点是,如果应用程序的UI发生更改,keyevents将不再执行正确的功能。如果没有更简单的方法来做这类事情,那么是否至少有一种方法可以在屏幕关闭时打开屏幕(使用adb)?或者让keyevents在屏幕关闭时仍然工作

我对java不是很熟悉。也就是说,我看到了如下代码(源代码:)来更改手机上的设置:

Settings.System.putInt(Settings.System.AIRPLANE_MODE_ON, 1 /* 1 or 0 */);
如何将上述内容转换为adb shell命令?这是可能的,还是错误的思考方式


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

您展示的Java示例适用于手机上运行的程序。您可能能够在手机上编写某种解释程序来处理adb命令。这样,您就不再依赖keyevents了。然而,这不是一个小任务。

我正在处理同一组问题。(我主要是通过使用keyevent HOME然后是MENU来解决上下文问题,但是——不知何故——即使是这样也不可靠。)我目前正在调查(Android脚本层),这是有希望的。它允许Perl、Python、Lua和其他脚本语言在启动设备上的SL4A服务器后从PC与Android API交互——这也可以从PC上完成;如果我从那本书开始的话,我本可以省去几天的反复试验和网上搜寻的时间,尽管我还没有深入挖掘到它的局限性,但它看起来也有希望

允许您从PC查看和控制设备的屏幕,这也有可能实现自动化。不过,它确实为该应用程序带来了一些后勤问题


顺便说一句,您可以通过一个菜单键事件和一组sendevents(代替keyevents)通过锁定的主屏幕

虽然这个问题很老,但它可能会帮助其他人

对于视频播放,您可以尝试以下操作:

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指定的播放器中播放