[Android] 用 Automate 設定工作流程,自動觸發事件、執行動作
很久以前有介紹過 Llama – Location Profiles 這個蠻好用的 Android app,
它可以根據地點、時間、以及許多觸發條件,來決定要做的動作,
它也一直在我的愛用 app 列表裡面~
前一陣子因為手機莫名其妙被重置回原廠設定了,在裝回 Llama – Location Profiles 之後,
在 Google Play 上看到了 Automate 這個名字很吸引我的 app,作者是 LlamaLab…
嗯… 我以為是 Llama – Location Profiles 的同間公司出的姐妹品,
就裝來玩玩看,發現蠻有趣的,不過後來也發現作者其實是不一樣的啦,
不知道為啥剛好都是取跟 Llama (駱馬) 有關的名字…
以我的觀點來看,Automate 可以說是 Llama – Location Profiles 的進階版 (雖然兩者沒有關聯),
Llama – Location Profiles 可以很容易的選擇事件的觸發條件、與對應的動作,
但 Automate 則是可以用程式設計的方式來編排需要的邏輯,
比較有彈性,可以做到的判斷與動作更多,但當然使用起來也就更為複雜~
因此會建議一般可以用 Llama – Location Profiles 做到的,就用它來做,
不行的再考慮用 Automate 來完成~
舉個例子來看一下 Automate 到底是怎麼用的吧~
因為手機開 GPS 的話很耗電,我希望在晚上 11 點的時候,自動關閉 GPS,
但因為我的手機沒有 root,所以這件事情是做不到的…
退而求其次,我想要在晚上 11 點時,檢查一下現在 GPS 是不是開著的,
如果是的話,跳出 Location 的設定頁,好讓我可以手動關閉;
如果不是的話,就不用跳設定頁出來煩我了~
上面的這個需求用 Llama – Location Profiles 做不到,
因為它沒辦法判斷現在是不是使用 GPS…
1. 在 Automate 中新增一個工作流程 (Flow)
進到 Automate app 後,按下上方的 + 圖示,開始建立一個新的工作流程:
接著會出現下面的畫面…
嗯… 對於沒碰過這 app 的人,老實說入門門檻稍高,
一時不曉得接下來要做什麼…
其實這個畫面就是要設計你的工作流程圖 (flow diagram),
有學過程式設計的人應該都很熟悉流程圖,這個 app 基本上就是讓你畫出流程圖後,
讓 Automate 照著流程圖的設計,來判斷條件與執行動作~
按下左上方的三橫槓 (設定) 圖示,會跳出一個選單,
讓我們可以選擇要使用的功能區塊,這邊已經分類好了,
建議一開始可以把每個分類都打開來瀏覽一下,看看有哪些東西可以用:
我們第一個要做的是「等到晚上 11 點」,因此選擇 Date & Time 的 Time await 功能:
選好的功能區塊會顯示在流程圖上面,但這時還沒有跟其他的區塊連結在一起:
點下剛建立的 Time await 區塊,可以設定一些屬性值,
像我們將 Time of Day 設定在 11:00 PM,
這樣這個區塊就會等到晚上 11 點,才會繼續往下執行:
設定好屬性值之後,按下 Done 會回到流程圖頁面。
按下 Flow beginning 的 OK 節點,往下拖拉到 Time await 的 IN 節點,
就可以拉出一條線來,這表示當 Flow beginning 區塊執行完畢時 (OK),
會接著去執行 Time await 區塊 (IN 是區塊的輸入點):
晚上 11 點到了之後,我們想看看現在的 GPS 有沒有開?
因此我們新增 Location > Location provider enabled? 區塊:
屬性值這邊,將 Proceed 設定成 Immediately,表示跑到這區塊時立刻執行檢查,
否則另外一種模式是當設定值有改變時才會觸發…
Location Provider 這邊可以選 GPS 或 Wifi,
因為我們想知道現在是不是 GPS 開著,因此當然選 GPS 囉:
將 Time await 區塊的 OK 接線到 Location provider enabled? 區塊的 IN 節點~
我們可以注意到,這個區塊有兩個輸出 Yes 和 No,
分別表示條件成立 (使用 GPS) 時、與條件不成立 (沒有使用 GPS) 時,要執行的動作:
如果 GPS 有開的話,想要直接顯示 Location 的設定頁面,
因此我們選擇 Apps > App start shortcut,因為系統的設定頁面都會在這裡面:
在屬性頁裡,按下 Pick shortcut:
這邊有非常多的 app 捷徑可以選,我們先選到 Settings:
Settings 下面還有更細的捷徑,我們選擇 Location:
接著要做的是決定 Location provider enabled? 區塊的輸出要往哪邊走…
GPS 沒開 (No) 的時候,就直接去等明天晚上的 11 點。
GPS 有開 (Yes) 的時候,就去開啟設定頁 (Start app shortcut),
而設定頁開啟之後,也就去等明天晚上的 11 點再次檢查了:
流程圖的部分設定好了,按下上方的勾勾完成~
接著點上面的 <Untitled> 來改一下這個流程圖的名稱:
改成一個好記的名字 “Disable GPS at night”:
至此,我們的第一個流程圖已經設計完成囉 (好累啊~)
2. 立刻測試新建立的工作流程
要測試我們寫好的工作流程,就得讓「晚上 11 點」這個條件滿足,
因此有幾種測試方式:
– 就真的等到晚上 11 點再來測 (你肯定不是程式設計師,RD 是沒有耐性的)
– 把系統時間改到晚上 11 點 (有點像樣了,不過亂改系統時間,
可能會讓一些行事曆提醒都亂掉,還是別這麼做吧)
– 改一下流程,把「晚上 11 點」改成「1 分鐘後」 (不錯的選擇,
你已經是個 RD / 你已經有成為 RD 的頭腦了)
– 改一下流程,讓它直接跳過「晚上 11 點」這個條件 (另一個不錯的選擇,
你已經有駭客的頭腦了)
我們就來用駭客的頭腦試試看吧~
按下 Flow beginning 的節點,往 Time await 區塊的 IN 節點拖拉,
就會將這兩個節點間的線刪除 (不是非常好控制,要練習一下):
接著我們將 Flow beginning 直接連到 Location provider enabled? 區塊,
也就是直接跳過了 Time await 的條件判斷:
改好之後,就可以開始測試了~
按下 Start 就會開始執行這個工作流程,下面可以看到記錄檔 (Log)~
因為我現在 GPS 並沒有開,因此它檢查完之後,就回到 Time await 區塊等明天的 11 點了:
假設我將 GPS 打開 (將 Location Mode 設成 High accuracy):
先 Stop 之後,再 Start 執行一次這個工作流程,
唰!Location 的設定頁跳出來了~
回到 Automate 畫面看一下 Log,也提到了它有執行 App start shortcut 這個動作:
做完測試後,記得要將修改的地方還原,之後才會正常運作~
這篇文章介紹了 Automate 的用法,是個蠻強大的 app,
尤其是如果手機有 root 的話,它可以做非常多的控制 (像是直接把 GPS 關閉),
但在沒有 root 的手機上,也還是可以做到蠻多事情的,很適合像我一樣的懶人使用囉~ ^^
6 thoughts on “[Android] 用 Automate 設定工作流程,自動觸發事件、執行動作”
您好,請教您,我因工作需要我想要讓speedtest這支測試網速軟體一直不停的執行網路速度測試,請問能用automate來做嗎?該怎麼做,感激不盡,謝謝.
您好,試過是可以做到的,
我把流程記在這裡,可以參考一下:
https://ephrain.net/android-%E4%BD%BF%E7%94%A8-automate-%E6%8E%A7%E5%88%B6-speedtest-app-%E6%8C%81%E7%BA%8C%E6%B8%AC%E9%80%9F/
感謝Ephrain 的分享,太實用了。
另外請教您,要如何設定自動輸入帳號密碼並且按下確定呢?
謝謝
可能要有個例子,才能試試看能不能自動登入喔~
我想用這個程式寫手機接上電腦之後自動觸發 usb網路共享 請問具體步緊驟?
你好,我在YT上看到這部影片
https://youtu.be/LMW1voE-d2w
影片中她使用了手機的NFC連接到iPhone的快捷進而打開另一個軟體,有效利用NFC感應功能。而我是使用Android系統並沒有iOS的快捷功能,可是在影片下方看到網友建議這個軟體,想要嘗試看看,但努力了很久還是不知道如何開始(對程式毫無觀念),想請求開個打開手機NFC功能的教程…非常感謝您!