Tasker 與 MacroDroid 比較:用三種 Android 自動化規則看懂設定與維護
用晚間音量、藍牙耳機及平日限定三個相同需求,比較 Tasker 與 MacroDroid 的條件結構、音量還原與紀錄排查,並分清候選版本的條件預覽能確認什麼。
- Tasker 以設定檔連結條件與任務;MacroDroid 則把觸發器、依序執行的動作和限制條件放在巨集中。先比較規則結構與還原方式,而非假定哪款更可靠。
- Tasker 的持續狀態設定檔若啟用 Restore Settings,並由進入任務直接設定可還原的媒體音量,失效時可恢復原值;離開任務覆寫同一設定、子任務與瞬間觸發等情況須另行處理。
- MacroDroid 多個觸發器以 OR 組合,同層限制條件預設為 AND;整個巨集、單一觸發器與單一動作的限制範圍不同,條件不符也不代表稍後會自動重試。
- Tasker 候選版本的 If 條件預覽可協助檢查組合邏輯,但不是設定檔條件預覽,也不能證明手機動作成功;仍須比對紀錄、實際音量與還原結果。
先看你願意維護哪種規則
Tasker 與 MacroDroid 都能建立 Android 自動化規則,選擇時不必先問哪一個「比較強」。更有用的問題是:你的需求會不會反覆使用同一組動作?條件會不會越加越多?一個月後,你能否看懂規則何時啟動、何時停止,以及設定會回到什麼狀態?
依Tasker 使用指南,設定檔把條件連到任務,任務也可供其他設定檔重用。MacroDroid 總覽則以一個巨集呈現觸發器、按順序執行的動作及可選的限制條件。前者適合想分開管理條件與任務的人;後者適合想從一條完整規則檢查起的人。本文依兩者文件設計相同需求,提供自行核對的方法,不是手機實測或速度、成功率排名。
| 你的維護重點 | Tasker 先看 | MacroDroid 先看 |
|---|---|---|
| 條件持續成立,結束後恢復設定 | 持續狀態設定檔與設定還原條件 | 開始、結束與原值保存規則 |
| 事件發生時,再檢查其他條件 | 事件、狀態與任務條件如何分工 | 觸發器與限制條件的套用層級 |
| 分支增多後仍能讀懂 | 任務重用、變數與 If 分組 | 巨集動作順序與巢狀邏輯群組 |
把同一個需求翻成兩種規則結構
先把需求寫成四句話:「什麼事件開始?當時還必須符合什麼條件?要改變什麼?何時以及如何還原?」最後一句尤其重要,因為 Tasker 對特定設定動作有條件式的還原機制,MacroDroid 的巨集則要把返回狀態明確設計出來。
| 設計問題 | Tasker | MacroDroid |
|---|---|---|
| 何時生效 | 設定檔中的時間、裝置狀態或事件條件 | 啟動巨集的觸發器 |
| 還要符合什麼 | 同一設定檔的其他條件;須全部成立 | 巨集、特定觸發器或單一動作的限制條件 |
| 執行什麼 | 進入任務中的動作 | 依序執行的巨集動作 |
| 如何還原音量 | 符合條件的設定動作可在設定檔失效時恢復原值;也可另設離開任務指定固定值 | 另外安排結束觸發與還原動作 |
Tasker 的「已啟用」不等於條件此刻「正在生效」。持續有效的設定檔可在條件成立時執行進入任務,失效時執行離開任務;瞬間事件或非區間、重複時間觸發則沒有同樣的持續狀態。MacroDroid 要特別留意:多個觸發器是任一成立即可啟動,也就是 OR,而非全部成立;要表達「事件發生,而且條件符合」,應使用限制條件。
依MacroDroid 限制條件文件,同層多個限制預設以 AND 組合,另可用 AND、OR、XOR、NOT 群組嵌套子條件。整個巨集的限制不符會拒絕本次執行並留下紀錄;觸發器層級限制只管該觸發入口;動作層級限制不符則略過該動作,繼續後續動作。限制條件本身不會安排稍後重試。
設定晚間降低媒體音量
第一個共同需求是:每天晚上 20:00 至 22:00,將媒體播放音量調到自己選定的較低值,結束後恢復原本音量,或改成事先選好的固定值。時間和音量值只是規則範例;媒體音量與鈴聲音量也要分開設定及檢查。
在 Tasker,建立 20:00 至 22:00 的區間時間設定檔,於進入任務直接使用 Media Volume 動作降低音量。如果該動作屬於以雙箭頭標示的設定動作,且設定檔啟用了 Restore Settings,設定檔失效時便可走恢復進入前音量的路徑。Tasker 的設定還原說明也指出:若離開任務再次設定同一項音量,Tasker 不會儲存並還原其初始值。因此,想恢復原值時,不要再於離開任務設定媒體音量;若目標本來就是結束時改成指定固定值,則可選擇在離開任務明確設定該值。經由 Perform Task 呼叫的子任務所改變的設定,也不會由父設定檔替它還原,這些條件可對照Tasker 常見操作說明檢查。
這不是任意動作的通用復原鍵。瞬間事件或非區間、重複時間設定檔所改變的設定會保留;使用者或其他 App 在設定檔生效期間改動音量,Tasker 也不會持續把音量壓回進入任務設定的值。核對時應記下開始前、時段內及結束後的音量,並留意中途手動調整對預期結果的影響。
在 MacroDroid,可用「日期/時間」類觸發器於 20:00 啟動降低媒體音量的巨集,再用 22:00 的結束觸發規則恢復預定音量;若要恢復先前值,須另外設計記錄與取用該值的方式。開始與結束都要核對實際媒體音量,不能只因巨集已保存就視為還原完成。
耳機連線時,再檢查時段
第二個需求改成:指定的藍牙耳機在晚間 20:00 至 22:00 已連上手機時,才把媒體音量調低。這裡要辨識的是指定裝置的連線狀態,不是手機僅僅開啟藍牙。Tasker 的 BT Connected 狀態條件可依已配對裝置的名稱或位址比對;將它與區間時間條件放入同一設定檔,兩者都成立時才執行進入任務。耳機即使在 20:00 前已連線,時間條件於 20:00 生效後,設定檔仍可進入有效狀態。
耳機斷線或時間走到 22:00,都可能使這個設定檔失效。若進入任務直接設定 Media Volume,並符合 Restore Settings 的條件,可用設定還原處理原值;若希望離開時一律變成指定固定值,才另用離開任務設定同一音量。兩種結果不同,尤其要考慮使用者在時段內手動調整過音量的情況。
MacroDroid 可用指定裝置的藍牙連線事件作觸發器,以晚間時段作限制條件,再執行媒體音量動作。但事件只在連線發生時觸發:耳機若在 20:00 前已連好,單靠這條規則不會因時間到 20:00 而重新收到一次連線事件。若需求包含這種情況,可另設 20:00 的時間觸發規則,並以「指定耳機目前已連線」作限制條件。不要把時間直接加成原巨集的另一個無條件觸發器,否則耳機未連線時也可能執行。斷線或 22:00 後的音量返回邏輯同樣須另設;核對時要涵蓋「先連線後到點」與「先到點後連線」兩種順序。
將既有規則限定在平日
第三個需求是在第一條晚間規則上加上「週一至週五」,不要另造一條會意外多執行的入口。Tasker 可保留原有區間時間條件,並在同一設定檔加入平日條件;所有條件成立時設定檔才生效。若採用直接在進入任務設定 Media Volume 的 Restore Settings 路徑,平日 22:00 設定檔失效時可依條件恢復原值。若規則跨越日期邊界,日期條件改變也可能使設定檔失效,須重新設計;本例 20:00 至 22:00 不跨日,較容易核對。
MacroDroid 則保留 20:00 的原有觸發器,把週一至週五設為巨集限制條件;22:00 的還原規則也要與平日設計一致。限制條件不會自行安排下一次執行,新增第二個「平日」觸發器也不會形成「時間且平日」的效果。限制條件套用在整個巨集、單一觸發器或單一動作,會產生不同的執行範圍,保存前應確認位置。
保存前寫下兩組預期結果:平日 20:00 應降低媒體音量,週末同一時間則不應因這條規則改變;平日 22:00 應依選定方式恢復原值或設為固定值。再檢查是否還有另一條規則同時控制媒體音量,避免把衝突誤認為時間或星期條件失效。
規則沒動作時,從哪一步查起
排查時先把「動作能不能執行」和「背景規則有沒有啟動」分開。手動執行降低媒體音量若成功,只證明當下這個動作可執行,不能證明時間、藍牙或星期條件已在背景被偵測。接著在實際觸發時檢查規則是否啟用、目標耳機是否真的連線、時區與星期是否正確,以及限制條件是否擋下執行。若問題是音量沒有回到預期值,Tasker 還要核對 Restore Settings、動作是否直接位於進入任務、離開任務是否設定了同一音量,以及使用者有無在期間手動改動設定。
條件一多,可先寫出預期真假情況。例如把前兩個需求合併為「平日、晚間,而且指定耳機已連線才降低音量」,保持晚間條件成立,列出下面四種情況。這是供讀者自行核對的假設案例,不是我們已執行的測試結果。
| 星期條件 | 指定耳機狀態 | 預期是否允許降低音量 |
|---|---|---|
| 平日 | 已連線 | 是 |
| 平日 | 未連線 | 否 |
| 週末 | 已連線 | 否 |
| 週末 | 未連線 | 否 |
若再加入 OR 例外,先寫清楚例外屬於哪一組,不要靠閱讀順序猜括號。Tasker 開發者的候選版本公告介紹了動作與條件中的組合 If 預覽,可協助看清 AND、OR 等陳述如何組合。這是 RC/測試通道的可選輔助,不能假定穩定版已全面提供;它不是設定檔情境條件的預覽,也沒有改變原有邏輯語意。預覽符合預期後,仍要比對觸發紀錄與實際媒體音量,並另外確認退出後的還原結果。
Tasker 可依官方疑難排解指引查看 Run Log、簡化動作、排除衝突設定檔,並檢查背景執行及手機廠商的電池管理。MacroDroid 的 疑難排解說明建議利用 System Log 分辨觸發器未發生、限制條件拒絕,還是動作失敗;權限、無障礙服務及背景限制也值得逐項核對。Android 省電機制可能延遲定時觸發,因此應以裝置上的紀錄和結果判斷,而非只看規則畫面;調整電池設定也不是保證修復的方法。
若同時啟用多條音量規則,先暫停其他規則,只留一條重現問題;確認後再逐條恢復。每次修改都記下預期的觸發與返回狀態,並把手機音量調回已知值,這樣下一次檢查才有可比較的起點。
選擇下個月仍容易維護的方式
規則能建立只是起點。替每條規則取能說明觸發與效果的名稱,記下耳機識別、時段、音量值、必要權限及還原方法;修改前保留備份。兩者文件均有備份或匯入相關說明,但匯入後仍應逐項檢查裝置名稱、權限、動作及是否啟用,不能把跨 App 遷移視為一鍵等價。若你的規則會重用多個任務或逐漸增加條件,Tasker 的設定檔與任務分工值得評估;若希望在單一巨集中查看觸發、動作和限制,MacroDroid 的組織方式可能更貼合習慣。
需求若經常變動,而且由使用者當下發起,可以改用不同控制方式:例如向 FoneClaw 要求「先查看目前媒體音量,再調低一級,最後重新讀取並回報結果」。我們的支援工具可讀取音量狀態並請求調整指定音量類別,實際動作仍受 Android 權限、工具啟用與核准設定約束;核准提示與失敗說明可協助確認操作狀態,但仍須檢查實際結果。使用線上模型時,提供給模型的任務內容可能經網路處理,不能假定推理全在手機上完成。
這是有人發起、可核對結果的手機任務,不等同於 Tasker 或 MacroDroid 的任意背景觸發規則。FoneClaw 的無人值守排程限於唯讀網頁研究,不能用來建立任意定時改音量或藍牙觸發規則。可從FoneClaw 功能介紹了解支援的手機動作;想分清工具、工作流程與捷徑各自保存什麼,可讀FoneClaw 工具、外掛、技能、工作流程與捷徑怎麼選。若還想比較其他 Android 自動化控制方式,Tasker 替代工具怎麼選?免費限制、OpenTasker 與新聞排程比較提供更廣的選擇脈絡。