系统函数
函数:mSleep() 延时
函数说明 : 进行毫秒级别延迟
函数方法 : mSleep(整数型 interval);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
interval | 整数型 | 脚本暂停执行的时间,单位为毫秒 |
示例:
mSleep(1000); -- 延迟1秒
mSleep(60*1000); -- 延迟1分钟
mSleep(60*60*1000); -- 延迟1小时
mSleep(24*60*60*1000); -- 延迟1天
mSleep(365*24*60*60*1000); -- 延迟1年
用在点击函数中可实现长按不放的效果
touchDown(0,100,200); --按下坐标为100,200的点
mSleep(2000); --延时 2 秒
touchUp(0); --抬起
注意事项:
毫秒与秒换算方式为 1 秒 (s) = 1000 毫秒 (ms)
函数:keepScreen() 屏幕保持
函数说明 : 开启/关闭屏幕保持(缓存屏幕数据)。
函数方法 : keepScreen(逻辑型 flag, 数组 table, 整数型 degree);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
flag | 逻辑型 | 开启/关闭屏幕保持(必填) |
table | 数组 | 开启/关闭屏幕保持(非必填) |
degree | 整数型 | 精度,范围:1 ~ 100,数值越大精度越高,100为完全匹配(非必填) |
示例
keepScreen(true); -- 开启屏幕保持
if getColor(100, 100) == 0x000000 or getColor(200, 200) == 0x000000 then -- 进行2次取色, 由于启用了屏幕保持, 这2次取色不会重新获取2次屏幕图像, 这样可以提高性能
notifyMessage("yes"); --如果(100,100)和(200,200)坐标有一个颜色为黑色, 输出"yes"
else -- 否则
notifyMessage("no"); -- 输出"no"
end
keepScreen(false); -- 关闭屏幕保持
keepScreen(true, {0xffffff}, 90) -- 缓存屏幕并对其二值化
snapshotScreen("/var/touchelf/1.png") -- 截图,可下载此截图查看二值化后的屏幕缓存
keepScreen(false); -- 取消缓存
使用屏幕保持和不使用屏幕保持对比
function main()
socket = require('socket')
time = socket.gettime()
for i = 1,100 do
getColor(1,i)
end
logDebug("没有屏幕保持:"..socket.gettime()-time)
time = socket.gettime()
keepScreen(true);
for i = 1,100 do
getColor(1,i)
end
keepScreen(false);
logDebug("屏幕保持:"..socket.gettime()-time)
time = socket.gettime()
for i = 1,100 do
keepScreen(true);
getColor(1,i)
keepScreen(false);
end
logDebug("每次找色都屏幕保持:"..socket.gettime()-time)
end
运行结果:
每次找色都屏幕保持:1.682479
屏幕保持:0.014437000000001
没有屏幕保持:1.708134
注意事项:
1,当使用keepScreen(true);开启屏幕保持时, 后续的找图、找色等函数不会重新获取屏幕图像, 而是使用开启屏幕保持之前的屏幕图像,否则每次使用找图找色等函数都将截取一次屏幕内容。
2,当使用 keepScreen(false);关闭屏幕保持时, 后续的找图、找色等函数会每次都重新获取屏幕图像。
3,安卓版支持性能模式的设备不需要使用此函数。
4,苹果版和安卓兼容模式下使用此函数可显著提升找色速度。
流程图:
函数:rotateScreen() 旋转屏幕坐标体系
函数说明 : 旋转屏幕的坐标体系, 后续的找图、找色、截图、触摸动作都会使用新的坐标体系
函数方法 : rotateScreen(整数型 Angle);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
Angle | 整数型 | 旋转角度 |
0: 保持原本的坐标体系。对于IOS设备来说, 此时HOME键在下方时的屏幕左上角为原点
90: 坐标系统向右转90度。对于IOS设备来说, 此时HOME键在右方时的屏幕左上角为原点
-90: 坐标系统向左转90度。对于IOS设备来说, 此时HOME键在左方时的屏幕左上角为原点
180: 坐标系统倒立。对于IOS设备来说, 此时HOME键在下方时的屏幕左上角为原点
示例
rotateScreen(90); -- 旋转坐标体系向右90度, 大多数横屏游戏使用此坐标体系.
touchDown(0, 100, 100); -- 发送触摸动作, 此时点击的点使用新的坐标体系.
touchUp(0);
示例 临时旋转后恢复原始坐标系
rotateScreen(90); -- 旋转坐标体系向右90度
snapshotRegion("/mnt/sdcard/a.bmp", 100, 100, 200, 200);--截一张新的坐标体系下的图
rotateScreen(0); -- 恢复坐标体系
函数:openURL() 打开网络地址
函数说明 : 打开网络地址-苹果专用
函数方法 : openURL(文本型 url);
返回值 : 无
支持版本 : V3.3.6-1 以上
参数 | 类型 | 说明 |
---|---|---|
url | 文本型 | 需要打开的目标链接 |
示例
调用系统浏览器打开触摸精灵官方网站
openURL("http://www.touchelf.com");
访问系统设置页面
openURL("prefs:root=WIFI"); --打开 wifi 界面
openURL("prefs:root=LOCATION_SERVICES"); --打开定位服务界面
openURL("prefs:root=General&path=VPN"); --打开 VPN 界面
注意事项:
- 默认浏览器为 Safari。
- 目标链接必须以 http:// 开头,一些特殊协议也是支持的,如:mailto://, sms://, tel://, ifile://, cydia:// 等等。
附表:可用的系统设置页面
prefs:root=General&path=About --关于本机页面
prefs:root=General&path=ACCESSIBILITY --辅助功能页面
prefs:root=AIRPLANE_MODE --飞行模式
prefs:root=General&path=AUTOLOCK --自动锁定页面
prefs:root=General&path=USAGE/CELLULAR_USAGE --用量页面
prefs:root=Brightness --亮度页面
prefs:root=Bluetooth --蓝牙页面
prefs:root=General&path=DATE_AND_TIME --日期与时间页面
prefs:root=FACETIME --FACETIME页面
prefs:root=General --通用页面
prefs:root=General&path=Keyboard --键盘页面
prefs:root=CASTLE --iCloud页面
prefs:root=CASTLE&path=STORAGE_AND_BACKUP --iCloud存储空间页面
prefs:root=General&path=INTERNATIONAL --语音与地区页面
prefs:root=LOCATION_SERVICES --定位服务页面
prefs:root=ACCOUNT_SETTINGS --账号设置页面
prefs:root=MUSIC --音乐设置页面
prefs:root=MUSIC&path=EQ --音乐设置EQ调节页面
prefs:root=MUSIC&path=VolumeLimit --音乐设置界面音量页面
prefs:root=General --通用页面
prefs:root=NIKE_PLUS_IPOD --NIKE页面
prefs:root=NOTES --备忘录页面
prefs:root=NOTIFICATIONS_ID --通知页面
prefs:root=Phone --电话页面
prefs:root=Photos --照片与相机页面
prefs:root=General&path=ManagedConfigurationList --描述文件页面
prefs:root=General&path=Reset --还原页面
prefs:root=Sounds&path=Ringtone --电话铃声页面
prefs:root=Safari --Safari设置页面
prefs:root=General&path=Assistant
prefs:root=Sounds --声音页面
prefs:root=General&path=SOFTWARE_UPDATE_LINK --软件更新页面
prefs:root=STORE --iTunes Store页面
prefs:root=TWITTER --TWITTER页面
prefs:root=FACEBOOK --FACEBOOK页面
prefs:root=General&path=USAGE --用量页面
prefs:root=VIDEO --视频页面
prefs:root=Wallpaper --墙纸页面
prefs:root=WIFI --WIFI页面
prefs:root=INTERNET_TETHERING --设置页面
函数:deviceIsLock() 设备锁定状态
函数说明 : 判断当前设备的屏幕锁定状态。
函数方法 : deviceIsLock();
返回值 : 布尔值 flag
参数 | 类型 | 说明 |
---|---|---|
无 |
返回值 | 类型 | 说明 |
---|---|---|
flag | 布尔值 | true 为锁定 false 为未锁定 |
示例:
function main()
if deviceIsLock() then
toast("屏幕已锁定")
else
toast("屏幕未锁定")
end
end
函数:deviceUnlock() 解锁设备
函数说明 : 解除当前设备屏幕锁定状态。
函数方法 : deviceUnlock(文本型 password);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
password | 文本型 | 锁屏密码 |
示例:有锁屏密码
function main()
if deviceIsLock() then
deviceUnlock("password")
else
toast("屏幕未锁定")
end
end
示例:无锁屏密码
function main()
if deviceIsLock() then
deviceUnlock("")
else
toast("屏幕未锁定")
end
end
android系统锁屏密码参数无效