系统函数

函数: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 界面

注意事项:

  1. 默认浏览器为 Safari。
  2. 目标链接必须以 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系统锁屏密码参数无效