由于很難用鬧鐘叫醒我,因此設置多個鬧鐘是沒有用的。 希望手機可以在早上像播放列表或每日推薦一樣自動播放音樂。
但是,我手機上裝的網(wǎng)易云音樂,就算有定時播放的音樂鬧鐘功能,但是功能相當有限,只能放一段音樂——這樣的話就和系統(tǒng)自帶的鬧鐘沒什么區(qū)別了。
再后來,我偶然間發(fā)現(xiàn)華為出了收音機的應用,可以聽廣播(雖然是通過網(wǎng)絡接收的,而且也附帶了一堆我不太需要的播客類節(jié)目)。我個人在中學的時候就有聽廣播的習慣,邊做作業(yè)邊聽廣播,所以我覺得如果能夠在早上的時候自動播放廣播,也可以。一般的收音機有自動播放的功能,但是華為的收音機應用卻沒有,只有定時停止播放的功能。
我又看了系統(tǒng)的設置,關于定時的,除了鬧鐘,就只有定時開關機了。
這時,我想起了Auto.js——一個可以高度定制化的Android自動化應用。
關于Auto.js
其實我很早就聽說過Auto.js,不過一直沒有用過——就算是雙十一、618活動的時候,我也沒有用它去自動賺喵幣或者是疊蛋糕——我倒見過別人用,也一眼就能看出用的是Auto.js。
我之前安裝這個應用的時候,官方還是免費提供安裝包的;但是當我現(xiàn)在找這個應用的時候,官方卻刪掉了所有的安裝包文件和記錄,只能付費使用,而且也有限制:
為了打擊灰產(chǎn)對本軟件的濫用,同時滿足正常用戶寫小工具、小應用、小玩具、自動化的需求,Auto.js Pro 8.0在某些軟件上自動點擊等無障礙功能不能生效,目前包括主流社交軟件、直播軟件、短視頻軟件、淘寶等十幾個軟件。
雖然價格只有45元,而且我也理解作者為什么做這個限制,但是如果就是為了實現(xiàn)一點點功能就付費,我自己感覺并不值——更何況之前還是能夠在官方獲取到免費版本的。好在有人此前備份了免費版的安裝包,我才得以下載。
正如其名,Auto.js使用的是JS語言作為自動化的腳本。我寫JS并不是非常好,但是簡單的JS腳本我還是會寫的,而且如果只是實現(xiàn)簡單的功能,只要有非常初步的編程相關知識,就可以自己寫腳本。而且,Auto.js也有官方的文檔和示例。
Auto.js示例
自動打開收音機
比如說,我想聽中央人民廣播電臺的經(jīng)濟之聲。華為收音機把央廣的四個頻率放在首頁的最上方,所以相對來說點擊容易一些。
華為收音機把央廣的四個頻率放在首頁的最上方
原理很簡單:打開收音機應用,等待廣告結束,左劃到經(jīng)濟之聲,點擊播放按鈕。當然,如果是中國之聲的話,就不需要左劃了。而且你也可以跳過廣告,不過我暫時不需要寫太復雜的腳本。
我基本上看示例腳本,復制粘貼,寫了可以用的代碼。代碼如下(我盡量加了詳細的注釋):
"auto";// 在進行屏幕操作前,先設置屏幕尺寸setScreenMetrics(1080, 1920);// 既然是為了早上叫醒自己,那么就把媒體音量調(diào)到最大device.setMusicVolume(device.getMusicMaxVolume())// 運行應用。應用名不是主菜單里面的名稱,而是應用管理里面的名稱var appName = "華為收音機"launchApp(appName);// 等待廣告結束,以ms為單位,這里是6ssleep(6000)// 左劃,下方的代碼意思是從(1040,700)到(300,700),用時1sswipe(1040, 700, 300, 700, 1000);// 等待1ssleep(1000)// 點擊坐標(400,1000)click(400, 1000);
應用名以這里為準
屏幕坐標什么的可以大致估算,也可以通過開發(fā)人員工具查看。Auto.js也提供了一些工具,可以查看屏幕上控件的詳細信息。具體的方式我會放到文章后面。
腳本寫好了,點擊腳本右邊的三角箭頭,可以運行該腳本。
運行腳本
當然,你也可以通過錄制動作的方式寫腳本,但是系統(tǒng)要Root。我的手機沒有Root,就錄制不了。
定時執(zhí)行腳本
Auto.js提供了定時運行腳本的功能。
點擊腳本右邊的三個小點,點擊“更多”→“定時任務”,可以設置定時任務。
這里面的功能非常強大,可以設置每天特定時間打開,也可以設置每周幾打開,也可以在特定事件觸發(fā)后運行,也可以只執(zhí)行一次。
強大的定時執(zhí)行功能
我這里設置每周一至周五7:00執(zhí)行該腳本。
在鎖屏狀態(tài)下執(zhí)行
但是,實際上這樣做還是不夠,因為我的手機有鎖屏。因為腳本中有很多屏幕操作的代碼,定時執(zhí)行這些腳本的結果就是只能打開應用,不能進行操作。這就需要自動解鎖屏幕。
我的手機是榮耀9,使用以下指令可以喚醒屏幕:
device.wakeUp()
然后模擬滑動、輸入密碼解鎖手機。這個操作可以參照上面的操作,可以打開開發(fā)人員工具進行調(diào)試。
根據(jù)上面的操作,把需要添加的代碼放在設置音量之前,再試著定時執(zhí)行,終于執(zhí)行成功了。
根據(jù)工作時間自動設置振動模式、打開音量
做到這里,我想到了另一個可以使用Auto.js的情況:在上班的時候把手機設為振動模式,下班的時候打開音量。這樣,就不需要手動設置振動模式,以免忘記調(diào)成振動而造成尷尬,也避免了下班忘記調(diào)回來而錯過外賣等的電話(雖然我基本上不點外賣)。
首先說明一下,Android中,可以調(diào)節(jié)媒體、鈴聲、鬧鐘和通話的音量,我這里需要調(diào)節(jié)的是媒體和鈴聲音量。
我已經(jīng)設置了靜音時振動,所以上班時,只要設置媒體和鈴聲音量為0。代碼如下:
device.setMusicVolume(0)device.setNotificationVolume(0)
下班時,鈴聲調(diào)到最大,媒體音量調(diào)到一半就行了。代碼如下:
device.setMusicVolume(device.getMusicMaxVolume()/2)device.setNotificationVolume(device.getNotificationMaxVolume())
上面兩個腳本在鎖屏的時候就能運行,不用解鎖屏幕。
Auto.js還有更多玩法(包括但不限于之前提到的自動賺喵幣、疊蛋糕),這里我就不細說了,因為我也不懂。感興趣的話可以自己學習。
附一:通過開發(fā)人員工具查看坐標
打開系統(tǒng)的“設置”→“開發(fā)人員選項”(不同UI的具體操作可能不一樣,一些手機可能沒有開啟,一般來說到“關于手機”中點擊好幾次系統(tǒng)版本就能打開,再選擇開發(fā)人員選項就可以了),打開其中的“指針位置”,就能夠在屏幕上看到現(xiàn)在點觸的位置的坐標。
查看指針位置
附二:通過Auto.js查看控件屬性
首先,打開懸浮窗。然后,在要分析的頁面點擊懸浮窗→右邊的按鈕→“布局范圍分析”,會顯示當前頁面結構圖。點擊要分析的控件→“查看控件信息”,就能看到控件的各項信息。