如何使用 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,发送keyevents,类似上面)
3.改变音量(当前解决方案:发送音量增大按钮keyevents)
4.更改显示超时(当前解决方案:打开声音和显示设置,发送keyevents)
和以前一样,这些都需要打开和解锁屏幕。使用 keyevents 的另一个主要缺点是如果应用程序的 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 */);
如何将上述内容转换为 adb shell 命令?这是可能的,还是错误的思考方式?
如果需要,我可以提供更多详细信息。谢谢!