auto.js_事件与监听-events(主要的)_ZHOU125disorder_

启用按键监听

  • events.observeKey()
启用按键监听,例如音量键、Home键。按键监听使用无障碍服务实现,如果无障碍服务未启用会抛出异常并提示开启。

只有这个函数成功执行后, onKeyDown, onKeyUp等按键事件的监听才有效。

该函数在安卓4.3以上才能使用。

注册一个按键监听函数

  • events.onKeyDown(keyName, listener)
keyName:要监听的按键名称 
listener (Function):按键监听器。参数为一个KeyEvent。
注册一个按键监听函数,当有keyName对应的按键被按下会调用该函数。可用的按键名称参见Keys。

例如:
//启用按键监听
events.observeKey();
//监听音量上键按下
events.onKeyDown("volume_up", function(event){
    toast("音量上键被按下了");
});
//监听菜单键按下
events.onKeyDown("menu", function(event){
    toast("菜单键被按下了");
    exit();
});

注册一个按键弹起监听函数

  • events.onKeyUp(keyName, listener)
keyName (string): 要监听的按键名称 
listener (Function): 按键监听器。参数为一个KeyEvent。
注册一个按键监听函数,当有keyName对应的按键弹起会调用该函数。可用的按键名称参见Keys。

一次完整的按键动作包括了按键按下和弹起。按下事件会在手指按下一个按键的"瞬间"触发, 弹起事件则在手指放开这个按键时触发。

例如:
//启用按键监听
events.observeKey();
//监听音量下键弹起
events.onKeyDown("volume_down", function(event){
    toast("音量上键弹起");
});
//监听Home键弹起
events.onKeyDown("home", function(event){
    toast("Home键弹起");
    // exit();
});

设置按键屏蔽是否启用

  • events.setKeyInterceptionEnabled([key, ]enabled)
enabled :(boolean)
key:要屏蔽的按键
设置按键屏蔽是否启用。所谓按键屏蔽指的是,屏蔽原有按键的功能,例如使得音量键不再能调节音量,但此时仍然能通过按键事件监听按键。

如果不加参数key则会屏蔽所有按键。

例如,调用events.setKeyInterceptionEnabled(true)会使系统的音量、Home、返回等键不再具有调节音量、回到主页、返回的作用,但此时仍然能通过按键事件监听按键。

该函数通常于按键监听结合,例如想监听音量键并使音量键按下时不弹出音量调节框则为:
events.setKeyInterceptionEnabled("volume_up", true);
events.observeKey();
events.onKeyDown("volume_up", ()=>{
    log("音量上键被按下");
});
//只要有一个脚本屏蔽了某个按键,该按键便会被屏蔽;当脚本退出时,会自动解除所有按键屏蔽。

注册一个触摸监听函数

  • events.onTouch(listener)
listener (Function):参数为Point的函数
注册一个触摸监听函数。相当于on("touch", listener)。

例如:
//启用触摸监听
events.observeTouch();
//注册触摸监听器
events.onTouch(function(p){
    //触摸事件发生时, 打印出触摸的点的坐标
    log(p.x + ", " + p.y);
});

当有按键被按下或弹起时会触发该事件

keyCode:键值 
event (KeyEvent): 事件
当有按键被按下或弹起时会触发该事件。 例如:
auto();
events.observeKey();
events.on("key", function(keyCode, event){
    //处理按键事件
});
其中监听器的参数KeyCode包括:

keys.home 主页键 
keys.back 返回键 
keys.menu 菜单键 
keys.volume_up 音量上键 
keys.volume_down 音量下键
例如:
auto();
events.observeKey();
events.on("key", function(keyCode, event){
    if(keyCode == keys.menu && event.getAction() == event.ACTION_UP){
        toast("菜单键按下");
    }
});

你可能感兴趣的:(#,auto.js基础学习,auto.js,事件与监听)