獲得事件
我來說說我是怎麼做的。
首先我在手機的shell下輸入了getevent命令,這樣就可以接收到手機上操作的所有event事件。
這個時候我們按下我們手機電源鍵,來看看可以接收到哪些事件資訊,按下電源鍵後:
我們得到了以上四條資訊。
我們來以第一條為例分析一下獲得是什麼?
/dev/input/event0:代表 device
0001代表乙個type
0074代表power鍵的code(為16進製制)
00000001代表value 一般 1代表按下,0代表放開。
根據查閱sendevent 需要的引數為就是device、type、code、value。
sendevent /dev/input/event0 1 116 1(0074(十六進製制)轉換十進位制後為116)sendevent /dev/input/event0 0 0 0sh指令碼當知道了如何模擬長按電源鍵之後,那麼我們如何用在自動化中呢?這裡我打算介紹一下shell指令碼sleep 3
sendevent /dev/input/event0 1 116 0
sendevent /dev/input/event0 0 0 0
眾所周知android是基於linux核心的,而shell指令碼可以執行在linux中,所以我們試試用sh指令碼是否可以在android中執行。
1、完成指令碼
因為android本身內部沒有vi,因此我打算在windows上寫好指令碼然後匯入進去,指令碼內容為:
#!/bin/sh2、匯入手機這一步不用多說,將指令碼名稱儲存為 "boy.sh",然後使用adb匯入手機sd卡。sendevent /dev/input/event0 1 116 1
sendevent /dev/input/event0 0 0 0
echo "down"
sleep 3
sendevent /dev/input/event0 1 116 0
sendevent /dev/input/event0 0 0 0
echo "up"
3、加許可權
一般linux系統中,匯入的檔案可能沒有許可權,因此我們需要加許可權後再執行,於是我做了下面的操作:
執行後提示我沒有許可權,明明剛才加了許可權的,我們來檢視一下檔案:
仔細一看果然沒有加許可權成功,懷疑自己剛才是不是打錯了,於是又試了一次,還是不行。
最終經過不斷的嘗試,發現原來是sd卡是無法加許可權的,必須要把檔案放到 /data/data/的目錄下才可以:
終於許可權加成功了。
4、執行
許可權加成功後,迫不及待的去執行:
還是提示有問題,後來也是不斷嘗試才知道,原因是手機的啟動命令和linux還是有差別,使用下面的啟動方法即可:
執行完成之後,觀察手機,出現了長按電源鍵後的效果:
模擬電源 開關電源 數字電源
模擬電源 即變壓器電源,通過鐵芯 線圈來實現,線圈的匝數決定了兩端的電壓比,鐵芯的作用是傳遞變化磁場,我國 主線圈在50hz頻率下產生了變化的磁場,這個變化的磁場通過鐵芯傳遞到副線圈,在副線圈裡就產生了感應電壓,於是變壓器就實現了電壓的轉變。模擬電源的缺點 線圈 鐵芯本身是導體,那麼它們在轉化電壓的...
區分模擬電源 開關電源 數字電源
在電源設計中我們如何選擇電源模組,那麼選擇的前提是,我們得了解各種電源,了解各種電源的區別,那樣我們才可以正確的選擇電源模組。模擬電源介紹 模擬電源 即變壓器電源,通過鐵芯 線圈來實現,線圈的匝數決定了兩端的電壓比,鐵芯的作用是傳遞變化磁場,我國 主線圈在50hz頻率下產生了變化的磁場,這個變化的磁...
android 遮蔽電源鍵,home鍵
android中遮蔽 電源鍵長按 home鍵 home鍵長按 這幾個 按鈕 的觸發,都會產生乙個action intent.action close system dialogs的通知 區分他們三個的不同事件的引數,就是隨著intent帶過來的reason字串,分別對應 說破了就這麼簡單,直接上 了...