Thanox Handle 动作能力:killer、activity、power
Handle 是什么
Handle 是 Thanox 情景模式规则引擎中可调用的动作执行接口。写法统一为:
handle名.方法名(参数1, 参数2, ...);
所有方法都运行在 system_server 进程中,拥有 system 权限。
killer Handle:杀进程
| 方法 | 含义 | 参数 | 返回值 |
|---|
killPackage(pkgName) | 强制停止指定应用 | 包名字符串 | Boolean(是否成功) |
用法示例
// 杀掉微信
killer.killPackage("com.tencent.mm");
// 结合 facts:杀掉触发事件的那个应用
killer.killPackage(pkgName);
activity Handle:启动与查询应用
| 方法 | 含义 | 参数 | 返回值 |
|---|
launchProcessForPackage(pkgName) | 启动应用进程 | 包名 | Boolean |
launchMainActivityForPackage(pkgName) | 打开应用主界面 | 包名 | Boolean |
getLaunchIntentForPackage(pkgName) | 获取应用启动 Intent | 包名 | Intent 对象 |
getFrontAppPackage() | 获取当前前台应用包名 | 无 | String |
getFrontAppPackageComponent() | 获取当前前台应用的 ComponentName | 无 | ComponentName |
用法示例
// 启动微信进程
activity.launchProcessForPackage("com.tencent.mm");
// 打开微信主界面
activity.launchMainActivityForPackage("com.tencent.mm");
// Toast 显示当前前台应用包名
ui.showShortToast(activity.getFrontAppPackage());
power Handle:电源管理
| 方法 | 含义 | 参数 | 返回值 |
|---|
sleep(delay) | 休眠(锁屏),延迟 delay 毫秒后执行 | long 毫秒数 | void |
wakeup(delay) | 唤醒设备,延迟 delay 毫秒后执行 | long 毫秒数 | void |
setBrightness(level) | 设置屏幕亮度(0~255) | int 亮度值 | void |
getBrightness() | 获取当前屏幕亮度 | 无 | int(0~255) |
setAutoBrightnessEnabled(enable) | 设置自动亮度开关 | Boolean | void |
isAutoBrightnessEnabled() | 是否开启自动亮度 | 无 | Boolean |
用法示例
// 立即锁屏
power.sleep(0);
// 1 秒后亮屏
power.wakeup(1000);
// 关闭自动亮度
power.setAutoBrightnessEnabled(false);
// 增加一级亮度
power.setBrightness(power.getBrightness() + 10);
场景组合
下面是一个组合了多个 handle 的规则:息屏 + 低电量时,关闭自动亮度并调低亮度:
[
{
"name": "Battery Saver",
"description": "息屏低电量时调整亮度设置",
"priority": 3,
"condition": "screenOff == true && !isCharging && batteryLevel <= 20",
"actions": [
"power.setAutoBrightnessEnabled(false);",
"power.setBrightness(20);",
"ui.showShortToast(\"已进入省电模式\");"
]
}
]
其他常用 Handle
除了上面三个,Thanox 情景模式还提供了丰富的 handle 能力,以下是最常用的:
task Handle:任务管理
| 方法 | 含义 |
|---|
removeTasksForPackage(pkgName) | 移除指定应用的最近任务 |
hasTaskFromPackage(pkgName) | 检查指定应用是否有最近任务 |
clearBackgroundTasks() | 执行 Thanox 的后台清理 |
ui Handle:界面操作
| 方法 | 含义 |
|---|
showShortToast(text) | 显示短 Toast |
showLongToast(text) | 显示长 Toast |
showToast(text) | 显示 Toast(长度由系统决定) |
findAndClickViewByText(text, component) | 在指定 Activity 中查找并点击包含指定文字的视图 |
sh Handle:Shell 命令
| 方法 | 含义 |
|---|
exec(cmd) | 执行 shell 命令 |
execAsRoot(cmd) | 以 root 权限执行 shell 命令(需要 Magisk root) |
注意:sh handle 需要 Thanox 在 MIUI 等 ROM 上允许后台启动(官方 FAQ 提到的保活场景之一)。
Audio Handle:音频控制
| 方法 | 含义 |
|---|
requestAudioFocus() | 请求音频焦点 |
abandonAudioFocus() | 放弃音频焦点 |
Battery Handle:电量读取
| 方法 | 含义 |
|---|
getLevel() | 获取当前电量百分比 |
isCharging() | 是否正在充电 |
Thanos Handle:Thanox 核心能力
这个 handle 提供了 Thanox 自身功能的调用入口——冻结、隐匿、后台启动拦截等都可以在情景模式中动态控制。官方文档暂未公开完整方法列表,但可以通过 MVEL 的反射方式调用。
Handle 的能力范围总结:
| Handle | 能做什么 | 典型场景 |
|---|
| killer | 杀进程 | 微信退后台自动杀 |
| activity | 启动/查询应用 | 自动打开某 app |
| power | 锁屏/亮屏/亮度 | 一键锁屏 |
| task | 最近任务 | 清理后台 |
| ui | Toast/点击视图 | 跳过开屏广告点击 |
| sh | Shell / Root 命令 | 高级用户自定义操作 |
| Audio | 音频焦点 | 媒体自动暂停 |
| Battery | 电量读取 | 低电量提醒 |
| Thanos | Thanox 自身功能 | 动态冻结应用 |
下一页:情景模式实用案例集锦。