做一個震動App

learning發表於2020-04-16

起因

最近發現給老爸買的安卓手機,電池出現了點問題,充電只能充到60%,還每次都彈出這煩人的警告。感覺這是設計好的,整整好好用了3年,這未免有點太巧了吧?

算了,直接給老爸換了個新手機,我就把舊的留下了。無奈舊手機太多,能用的舊安卓機就這一個,總覺得不廢物利用一下,很是不爽。

於是,我想起手機有震動功能,要是做一個震動App?,或許能變廢為寶??

準備

好,說幹就幹,於是我開始了第一次安卓App的開發之旅。

首先是要到官網去下載 Android Studio,這步需要一定的上網技能,建議把技能點數加滿。

花了大約1分鐘的時間,終於把 Android Studio 下載下來了,隨後安裝過程也相當簡單,裝完後,選了我喜歡的淺色主題,應該就可以用了。

設計

實際開發前,理論上還需要做一些設計工作,但這實在不是我的強項啊!介面設計就算了吧,App裡就一個開關,開啟就震動,關掉就停。

不過圖示好歹還是要有一個的,但是找了全網,沒有太合適的,只能在 Material Design 官網找一個圖示的設計模板,自己去做一個。

無奈沒有任何基礎,用 Ai 硬擼了兩個小時,終於做出了一個稍微滿意的圖示,當然,是以藍色為主。

開發

接下來就可以進行開發了,開啟安裝好的 Android Studio,建立一個新專案,隨便選了一個 Empty Activity。

然後要進行一些配置,名字還是要好認的、比較洋氣的 Vibrator,包名就隨便起一個吧。語言嘛,糾結了一下,最後選擇了沒用過的 Kotlin,嚐嚐鮮。SDK 就定為 API 21, Android 5.0 的吧,現在用 4.x 的應該不多了,5.0 的 API 也夠用。

然後它就給我自動建立了一些檔案,剛開始 Gradle 會做一些準備工作,下載依賴花了一些時間,這步也需要強大的上網技能。

接上手機,開啟 USB 除錯模式。一般 “開發人員選項” 這頁,是通過多次點選系統版本號啟用的,感覺有點像遊戲祕籍啊,這技巧還是以前刷機積累下來的經驗。

開啟了USB除錯模式並連線上手機後,Android Studio 就多出來一個執行目標了。

我先點個執行試試,通過手機上各種允許操作,我的App裝上去了,雖然還是空白,圖示也不太好看,但起碼能執行了起來。

接下來開始硬擼程式碼,先在頁面上,把那個 Hello World 換成我的 Switch,暫且就叫 switchButton 吧,把文字去掉,弄上跟 Hello World 一樣的上下左右約束。一切都是視覺化的,滑鼠操作,找回了一點以前 Netbeans 編輯 Swing 介面的感覺,現在還有了深淺兩種模式的預覽。

接下來該考慮的就是怎樣在程式碼裡獲取到這個 Switch,網上查了一下,Kotlin 裡一句 findViewById<型別>(R.id.名稱) 即可,程式碼提示還能自動補全按鈕名稱。緊跟著寫一段按鈕狀態變化的事件監聽,具體內容先空著,等會用到。

最後就是實現具體的手機震動了,老規矩,網上搜一搜,搜到了一個 StackOverflow 的回答,應該挺靠譜。簡單來說就是在 AndroidManifest.xml 加上許可權宣告,然後通過 getSystemService 獲取震動服務,最後,震它!

StackOverflow 上的那個例子雖然是 Java,改成 Kotlin 應該也不難,嘗試了一下,還真和 AnctionScript、Swift 有點像,型別後置、as 關鍵字。最後程式碼被我寫成了這個樣子,雖說 vibrate 這個方法 Android Studio 提示我說已經被廢棄了,但先這麼用著吧,應該可以用吧?

這期間 Android Studio 有個體貼的小細節,都不用我去手動改許可權宣告的配置檔案,滑鼠點一下他就給我加上了。

噢,最後別忘了我的App圖示。

在 AndroidManifest.xml 裡配置了一下,行號後面都把圖示給顯示出來了??

完工

執行了一下,完美。我還在想,應該怎麼能展示震動呢?放了個小東西在螢幕上,或許你們能感受到吧。

這裡放不了視訊嗎?放個連結吧

簡單的震動App這就完成了,或許以後還能加入各種風格的震動:纏綿、激情、點陣式……

但是這手機震動也太弱了,最後,我想到了身邊的 PS4 手柄,這形狀也比手機要好的多……! ?

原始碼和 apk 我都放到 github 上了,感興趣的同學,點選領取,別忘了點個 follow 哦!

相關文章