实现原理:通过辅助服务实现按键阻塞
注:App必须在Manifest中注册辅助服务,并将该Service继承AccessibilityService
Override AccessibilityService 的 onKeyEvent方法
protected boolean onKeyEvent(KeyEvent event)
通过返回值可以控制按键阻塞,true即阻塞, false即不阻塞
其他
通过Root实现按键震动,亮度与辅助服务开关的控制
- 按键亮度控制命令
//关闭按键灯光
chmod 644 /sys/class/leds/button-backlight/brightness
echo 0 > /sys/class/leds/button-backlight/brightness
chmod 444 /sys/class/leds/button-backlight/brightness
//开启按键灯光
chmod 644 /sys/class/leds/button-backlight/brightness
echo 100 > /sys/class/leds/button-backlight/brightness
- 按键震动控制命令
//关闭按键震动
chmod 644 /sys/class/timed_output/vibrator/vtg_level
echo 0 > /sys/class/timed_output/vibrator/vtg_level
chmod 444 /sys/class/timed_output/vibrator/vtg_level
chmod 444 /sys/class/timed_output/vibrator/enable
//开启按键震动
chmod 644 /sys/class/timed_output/vibrator/vtg_level
echo 100 > /sys/class/timed_output/vibrator/vtg_level
chmod 644 /sys/class/timed_output/vibrator/enable
- 辅助服务控制命令
//开启辅助服务
settings put secure enabled_accessibility_services {包名}/{服务名}
settings put secure accessibility_enabled 1
//关闭辅助服务
settings put secure enabled_accessibility_services {包名}/{服务名}
settings put secure accessibility_enabled 0