Autojs基础-按键模拟(keys)

0 阅读4分钟

1.前言

这部分内容一部分函数是基于无障碍服务,另一部分函数是基于root环境的。root函数一般用于模拟器和虚拟机中,无障碍函数一般用于新游戏或者新系统中。我们开发游戏脚本一般也会选用支持root的环境,能够更加方便。但是,有些新游戏不允许在root环境中启动,这种情况下更推荐通过无障碍的方式完成相关功能。如果用过直板机,对于这部分内容更好理解,可以理解为通过命令去调用这些按键。如果无障碍函数和root函数都能完成的功能,我更推荐使用无障碍函数,因为无障碍函数兼容性更好并且执行速度更快。

2.无障碍函数

1.back与home

back函数相当于返回按键,用于返回,返回是否执行成功。

home函数相当于home按键,用于返回手机主页面,返回是否执行成功。

// 返回
let hasExecute = back();
console.log("返回是否执行成功:" + hasExecute);
sleep(1000);

// 返回主页面
hasExecute = home();
console.log("返回是否执行成功:" + hasExecute);

2.powerDialog

弹出电源键菜单,返回是否执行成功。

let hasExecute = powerDialog();
console.log("操作是否执行成功:" + hasExecute);

3.notifications与quickSettings

notifications函数用于拉出通知栏,返回是否执行成功。

quickSettings函数用于显示快速设置(下拉通知栏到底),返回是否执行成功。

// 通知栏
let hasExecute = notifications();
console.log("通知栏是否执行成功:" + hasExecute);
sleep(2000);

// 返回
back();
sleep(1000);

// 快速设置
hasExecute = quickSettings();
console.log("快速设置是否执行成功:" + hasExecute);

4.recents与splitScreen

recents函数用于显示最近任务,返回是否执行成功。

splitScreen函数用于分屏,返回是否执行成功。

// 最近任务
let hasExecute = recents();
console.log("最近任务是否执行成功:" + hasExecute);
sleep(2000);

// 返回
back();
sleep(1000);

// 分屏
hasExecute = splitScreen();
console.log("分屏是否执行成功:" + hasExecute);

3.root函数

1.Home与Back

back函数相当于返回按键,用于返回。

home函数相当于home按键,用于返回手机主页面。

// 返回
Back();
sleep(1000);

// 返回主页面
Home();

2.Power与Menu

Power函数相当于电源键,用于弹出电源界面。这个函数使用时需要注意,模拟器中调用会黑屏。

Menu函数相当于菜单键,用于弹出菜单界面。这个函数在模拟器使用时,没有反应。

// 弹出电源界面
Power();
sleep(1000);

// 返回
Back();
sleep(1000);

// 弹出菜单界面
Menu();

3.VolumeUp与VolumeDown

VolumeUp函数相当于加音量键,用于增加音量。

VolumeDown函数相当于减音量键,用于降低音量。

// 加音量
VolumeUp();
sleep(1000)

// 减音量
VolumeDown();

4.Camera

相当于相机键,用于启动相机。由于我的环境是模拟器,使用这个函数没有反应。

5.Up、Down、Left与Right

Up、Down、Left和Right函数分别相当于上、下、左和右键,用于控制方向。但是随着直板机(按键手机)的淘汰,游戏移动都是通过触摸完成,很多游戏都没有兼容按键操作。在游戏中调用这四个函数,大多数情况下是没有反应的。但是,一些非常老的游戏会兼容按键操作,这四个函数又非常好用。

如果是在模拟器环境,按键盘的上下左右键和这四个函数功能类似,如果键盘方向键能够控制方向,一般情况下,这四个函数也能有效。

Up();
sleep(1000);

Down();
sleep(1000);

Left();
sleep(1000);

Right();

6.OK

相当于确定键,用于确定操作。由于直板机(按键手机)的淘汰,现在很多对话框根本没有兼容按键操作。很多时候对话框上有确定按钮,但是调用这个函数是无效的。

7.Text

在输入框输入内容,需要传递内容一个参数,参数类型为字符串。这个函数和OK函数境地差不多,能不能用还得看输入框的兼容性。

8.KeyCode

通过键值来调用功能,需要传递键值一个参数,参数类型为字符串,具体键值对应的按键功能可以参考官方文档的KeyCode对照表。上面介绍的功能,类似于将常用键值和按键功能对应关系进行了二次封装。以返回主页面为例,下面两种调用方式类似。

Home();

// 相当于
KeyCode("3");

4.总结

特别注意,只有通过个人主页博客或者个人介绍中方式,才能获取源码