Tasker 权限问题汇总 运行时权限 ADB 权限 Device Owner 无 Root 解决方案
Tasker 需要的权限清单
Tasker 会在你首次创建需要特定权限的 Profile/Task 时弹出权限请求。有些基础权限你必须手动去系统设置里开。
第一类:普通运行时权限
这些权限在首次使用相关功能时会弹窗请求:
| 权限 | 用于 | Tasker 自动请求? |
|---|---|---|
| 定位 | Location Context 和 Get Location Action | ✅ 弹窗请求 |
| 短信 | Event → SMS / Send SMS Action | ✅ 弹窗请求 |
| 电话 | Call 相关 Action | ✅ 弹窗请求 |
| 通讯录 | 读取联系人 | ✅ 弹窗请求 |
| 日历 | Event → Calendar / Calendar Insert Action | ✅ 弹窗请求 |
| 存储 | 读写文件、备份 | ✅ 弹窗请求 |
| 麦克风 | Record Voice | ✅ 弹窗请求 |
| 相机 | Take Photo | ✅ 弹窗请求 |
| 通知访问 | AutoNotification 插件需要 | ❌ 需手动去系统设置开 |
第二类:特殊权限
这些权限需要手动去系统设置里开,不会自动弹窗:
| 权限 | 用于 | 怎么开 |
|---|---|---|
| 显示在其他应用上(Overlay) | Tasker 显示 Popup / Scene | 设置 → 应用 → Tasker → 显示在其他应用上 |
| 勿扰模式访问 | Do Not Disturb Action | 设置 → 声音和振动 → 勿扰模式 → 允许 Tasker 控制 |
| 修改系统设置 | 修改音量、亮度等 | 设置 → 应用 → Tasker → 修改系统设置 |
| 查询所有 App | 知道当前前台 App 包名 | 设置 → 应用 → Tasker → 所有文件访问 / 特殊访问权限 |
| 忽略电池优化 | 保持后台运行 | 设置 → 电池 → 电池优化 → 未优化 |
| 通知访问 | 读取其他 App 通知 | 设置 → 应用 → 特殊访问权限 → 通知访问权限 → Tasker |
第三类:Accessibility Service
Tasker 辅助功能 是 Tasker 做 UI 自动化(Accessibility)的基础。
设置 → 辅助功能 → Tasker → 开启
开启后 Tasker 可以:
- 模拟按键(返回、Home、Recent)
- 读取屏幕内容(Get Screen Info Action)
- 自动点击 UI 元素(配合 Java Code / JavaScriptlet)
- 截取屏幕
注意:Accessibility 权限是敏感权限,Google Play 对其有严格政策——开发者必须在 App 里说明用途。
不同 Action 的权限需求
| Action | 需要的权限 |
|---|---|
| Kill App | Device Owner(v6.3+)或 Root |
| Mobile Data On/Off | Android 10+ 大部分 OEM 需要特殊权限(Device Owner) |
| Airplane Mode | v6.0+ 无 Root 也可控制 |
| Auto Answer | Android 8.0+ 无 Root 支持 |
| Display Sleep / Wake | 不需要特殊权限 |
| Brightness | 修改系统设置 |
| Silent Mode / Do Not Disturb | 勿扰模式访问 |
| WiFi On/Off | 不需要(但 WiFi SSID 检测需要定位权限) |
| Bluetooth On/Off | 不需要 |
| Take Photo | 相机 + 存储 |
| Record Voice | 麦克风 + 存储 |
| Accessibility UI 操作 | Tasker 辅助功能 |
| Shell Command | Root(部分命令) |
没有 Root 能做什么
Tasker 绝大多数常用功能不需要 Root:
- Profile / Task / Scene / Variable 全套机制
- 190+ 内置 Action 中约 90% 无 Root 可用
- Location / Bluetooth / Wi-Fi / 音量 / 亮度等控制
- 大部分 State / Event Context
- JavaScriptlet / Java Code(不需要 Root 也能访问大部分 Android API)
- 没有 Root 也可以 Kill App(v6.3+ Device Admin)
- 没有 Root 也可以 Airplane Mode(v6.0+)
需要 Root 的场景(越来越少了)
- Kill System App:杀掉系统预装 App
- 修改系统文件 / 系统属性
- Get Location Provider(某些旧机型)
- Shell Command(大部分 toybox/busybox 命令不需要 Root)
- USB 共享网络开关
- Set Light(LED / 相机闪光灯 / 键盘灯)
- 一些需要写入安全设置的 Action(如修改手机静默模式策略)
ADB 授权:替代 Root 的方案
有些 Action 需要的权限可以通过 ADB 一次性授予——比 Root 轻量很多。
授权 Mobile Data 控制
adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS
授权 Kill App
adb shell pm grant net.dinglisch.android.taskerm android.permission.FORCE_STOP_PACKAGES
授权屏幕关闭
adb shell dpm set-active-admin net.dinglisch.android.taskerm/.admin.AdminDeviceReceiver
一次性批量授权
Tasker 有一个 Action "ADB Wifi Permissions"(v5.9+),可以让你通过 网络 ADB 一次性授予多个需要 WRITE_SECURE_SETTINGS 的权限。
- 手机打开"开发者选项 → 网络 ADB 调试"
- 电脑上运行
adb connect 手机IP:5555 - Tasker Action → ADB Wifi Permissions → 自动授予所有需要的权限
ADB 权限的局限
- 重启后保留(不像有些临时 Root)
- 不需要 Root,普通用户就能执行
- 部分 OEM 限制 ADB 授权后的权限能力
- Factory Reset 会清除所有 ADB 授权
Device Owner(设备所有者)
Tasker v6.3+ 引入的 Device Owner 能力是"无 Root 系统控制"的重要突破:
Device Owner 能做什么
- Kill App(不需要 Root)
- 清除 App 数据
- 强制重启设备
- 设置 App 权限
- 控制 Mobile Data / Airplane Mode
- 更多...
设置 Tasker 为 Device Owner
需要一台全新恢复出厂设置的手机(Device Owner 只能在首次激活手机时设置,之后不能改):
adb shell dpm set-device-owner net.dinglisch.android.taskerm/.admin.AdminDeviceReceiver
注意:
- 一旦设置 Device Owner,无法撤销(除非恢复出厂)
- Device Owner 对个人用户过重——它是为企业管控设计的
- 如果你有企业管理需求(比如公司配的手机),Device Owner 很有用
- 个人用户不推荐,大部分场景用 ADB 授权就够了
权限问题的常见表现
Popup 弹不出来
→ "显示在其他应用上"权限没开→ 去:设置 → 应用 → Tasker → 显示在其他应用上
音量/亮度调不动
→ "修改系统设置"权限没开→ 去:设置 → 应用 → Tasker → 修改系统设置
Do Not Disturb 控制失败
→ "勿扰模式访问"没开→ 去:设置 → 声音和振动 → 勿扰模式 → 允许 Tasker 控制
杀 App 报错"需要 Root"
→ v6.3+ 的 Kill App Action 支持 Device Admin,去 Tasker 设置里开启→ 或用 ADB 授予 FORCE_STOP_PACKAGES 权限
Event → SMS 不触发
→ SMS 权限没给 Tasker → 去:设置 → 应用 → Tasker → 权限 → 短信 → 允许→ 同时检查有没有其他短信 App 拦截了短信广播
AutoNotification 读不到通知
→ "通知访问"权限没开→ 去:设置 → 应用 → 特殊访问权限 → 通知访问 → Tasker / AutoNotification
权限自动检查清单
Tasker 菜单 → 首选项 → 权限检查(不同版本名字可能不同)→ Tasker 会自动列出当前缺失的所有必要权限,并引导你逐个开启。
建议:新建 Profile / Task 时如果涉及不熟悉的 Action,先跑一下权限检查,提前把权限开好。