安卓自動化Tasker和Macrodroid(含ADB除錯)

长时發表於2024-06-17

1. 前言

首先講講自動化的初衷吧。

我平時是很少用手機的,用手機就是拍照、聊天和看文章。我個人不是很喜歡現在的聊天方式,它不是純粹放鬆的個人聊天,還夾雜學習、工作通知,通知是要看,但個人聊天我只希望在我自己想聊的時候聊,不希望我本來開啟手機是要做一件正事,但是因為看到聊天彈窗又忍不住先去處理,一處理耽擱10分鐘都是少的了。所以我每次都是開啟手機才接入網路(這樣也更省電),等軟體接受完聊天資訊並彈窗給我,約15-20s,這個過程我已經投入了我本來要乾的正事了,就很好。(這樣有個弊端就是工作通知如釘釘傳送的訊息也會接收緩慢,在需要搶機會、名額時不好,不過我本來就不怎麼看手機,就算正常接收訊息我也是會沒那麼及時地看,還是搶不上,哈哈哈)

在經歷了無數次手動下拉關wifi,鎖屏;亮屏,下拉開啟wifi(後面新增安卓小部件直接桌面點wifi小部件也可以開關)後,我真的厭煩了,我感受到本應給我的生活帶來便利的手機現在卻讓我感到不便。就像有沒有什麼工具能夠自動完成這些工作,後面就搜到了Tasker和Macrodroid。記得一篇介紹文章裡講到,一個人在對著手機抄寫文字,但文字較長,他每隔半分鐘就要點一下螢幕,不然螢幕就滅了,作者說直接設定延長亮屏時間就好了,或者暫時設定永不鎖屏。這件事之後,他意識到,平時開啟手機的那些沒什麼意義但必須的操作如開啟手機先看看有沒有工作通知,或開啟手機先去支付寶看看農場等,其實和每隔半分鐘就要點一下螢幕的人又有什麼不同呢,都是在無意義地重複動作而已,為什麼不讓工具去做,讓工具去適應個人的需求呢?

2. 我的需求

做事情要目標導向,知道自己要的是什麼,才能知道自己要做的是什麼。

我的手機是RedmiK40,系統是Android 13。除錯用的Windows系統。

在找到Tasker分享文章的評論區下,發現小米自帶的自動任務也很強大,不過還是沒有我想要的部分功能。

小米手機有自動任務,可以實現一定的自動化操作,如開啟APP後發生什麼動作(一般退出app後則之前發生的動作也取消)。

目前我可以用小米實現開啟需要定位的app時自動開啟定位,退出則自動退出定位;到時間手機鎖屏;睡覺時手機鎖屏,開啟飛航模式;鎖屏後斷網;

我還有的需求———

  1. 還想實現的一開啟手機就自動聯網,小米目前做不到,倒是有開啟某app後自動聯網,但是這和我的需求有出入,我是想看到要處理的訊息我才開啟應用,雖然開啟應用後能自動聯網也很好,但還是差了一點。【可試試開啟應用設為不做手機控,不行】用的Maco搞Wifi,Tasker搞行動網路【後面下了TaskerSettings後可以點選允許Tasker開關wifi然後再實現連線,但每次WiFi狀態改變更換都要我點一下允許,每次開屏都要點一下,和我的無形化體驗需求相悖。所以WiFi還得借用macrodroid。TaskerSettings要先刪去Tasker自帶的v1.3.0版本,它對資料、WIFI都作用不了,因為API29限制。得從github上下舊版的1.2.0版

  2. 另一個需求是在圖書館、自習室、宿舍手機都是靜音,其他地點則取消靜音(我能接受為了這個需求實現而開啟定位耗點電,畢竟電子產品就是為我的需求服務的)

  3. 小紅書沒有flomo的api,微信文章也沒辦法直接到flomo,試試Tasker的分享到應用看看。【我目前能力有限實現不了,還是用的下拉螢幕點flomo的按鈕就好】

3. 實操

ADB命令,如果重啟了手機,就要重新執行該命令。

3.1 adb操作:

  1. 電腦有adb框架(不用開啟adb.exe)。下載連結
  2. 資料線連線手機和電腦。
  3. 然後手機開啟USB除錯,USB安全設定開關(小米手機需要這個),這個時候手機會彈出視窗問你要不要接受除錯,點接受,理論上便連上了。
  4. 開始adb除錯裝置(我的手機)。也可以先電腦開啟命令列輸入命令adb devices -l,看看是不是真的連上了手機。

3.1.1 adb除錯Tasker

Tasker有人做了個整合化工具,接下來開啟tasker_permissions程式來點獲得所有許可權即可。經驗之談:最好設定的時候手機上當前頁面是Tasker,要是一次不管用,那所有許可權手動revoke,重新來一次grant就好了。

3.1.2 adb除錯設定macrodroid

傳統地在Windows的命令列視窗輸入一系列命令。
關於行動網路設定的adb命令:adb shell pm grant com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS

其它可選,Macrodroid的論壇[1]上看的,我也忘了都什麼功能了:adb shell pm grant com.arlosoft.macrodroid android.permission.CHANGE_CONFIGURATION
adb shell pm grant com.arlosoft.macrodroid android.permission.READ_LOGS
adb shell pm grant com.arlosoft.macrodroid android.permission.SET_VOLUME_KEY_LONG_PRESS_LISTENER
adb shell pm grant com.arlosoft.macrodroid android.permission.DUMP
參考文章:手機上才能開啟:https://www.macrodroidlink.com/macrostore?id=12115

經驗:如Macrodroid自己所說,不是所有裝置的adb設定都能生效的。參見下面“LFO”的表述:我試過先把上面命令的grant都換成revoke再重新grant。如:adb shell pm revoke com.arlosoft.macrodroid android.permission.WRITE_SECURE_SETTINGS,這個過程中在Macrodroid應用上是可以看到警告消失和出現的,但是測試就是打不開行動網路,也切換不了其狀態。

安卓自動化Tasker和Macrodroid(含ADB除錯)

4. 其它adb知識

4.1 adb查詢裝置

在發出adb命令之前,瞭解哪些裝置已經連線到adb伺服器會很有幫助。可以使用以下devices命令以列表形式檢視已連線裝置:adb devices -l
這也可以作為驗證adb伺服器是否在執行或者你的裝置和adb伺服器是否連線上。

4.2 終止adb伺服器

某些情況下,比如adb不響應命令,就需要終止adb伺服器程序,重啟試試看。
終止adb伺服器命令adb killserver。然後重新透過其它adb命令重啟伺服器即可。

5. 其它雜談

  • 原來之前從taskernet下下來import不了是因為無谷歌賬號的原因,不是什麼檔案字尾prj要改成prm的原因,本來就是prj。

  • !!記得Takser備份,這樣之前的配置檔案能直接用!

  • 因為Tasker對WiFi或行動網路的控制都需要定位授權,我之前理解錯了Tasker的定位的設定。現重新解讀:
    選定某一個位置如宿舍,在輕鬆定位的文件中:

    • 可以選中網路和/或GPS,至少選擇一個,不同的選擇對應著不同的耗電方式:
    • 只選網路是最省電的但精度最差;兩個同時選精度不錯,耗電也不算很大;選GPS是最耗電的。
      應用例子:
    • 只選中了網路,即位置:網路,如在學校時檢測網路,這就是你的配置檔案;
    • 狀態:靠近WiFi,配置檔案選擇狀態,再選“靠近WiFi”,這個是和定位有關的,因為檢測WiFi和行動網路都需要確定你和訊號源的距離,過遠則連線不上。

    同時GPS超時秒數越小則掃描越密,耗電越大。

  • Tasker一些很好的連線思路設定

    • 簡單的
      播放音樂、睡眠記錄、場景對話方塊
      睡眠追蹤
      簡訊驗證碼,涉及自定義變數的使用
    • 深入些
      Tasker配置:%WIFII還可以這樣玩
      如何實時監聽wifi網路連線狀態
      Tasker: State A-Z
      Tasker配置:在Wifi訊號弱時,自動關閉它
      周邊Wifi,裝置附近有Wifi訪問點(AP)。
  • Macrodroid較Tasker的介面優勢
    Macrodroid較Tasker的介面優勢

後續有時間再玩玩如何去掉手機軟體的開屏廣告(思路一:Tasker和AutoInput聯合,讓AutoInput做手勢動作;思路二:Google play store下載國際版的軟體)


  1. 配置移動資料連線時Macrodroid軟體提示 官方給的ADB除錯指導 ↩︎

相關文章