Thanox 中文文档 下载 App

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)设置自动亮度开关Booleanvoid
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最近任务清理后台
uiToast/点击视图跳过开屏广告点击
shShell / Root 命令高级用户自定义操作
Audio音频焦点媒体自动暂停
Battery电量读取低电量提醒
ThanosThanox 自身功能动态冻结应用

下一页:情景模式实用案例集锦。