android 中自定义键盘,【图片】自定义属于自己的专属键盘的思路!!!(需要有android编程基础)【exagear吧】_百度贴吧...
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
最近玩一些全鍵盤游戲,比如elona,nethack等等這類游戲,模擬器的鍵盤就很不夠用,那個(gè) 游戲鍵盤 軟件用起來體驗(yàn)也很不好,今天自己就琢磨著為這些游戲?qū)iT寫一個(gè)鍵盤.
1.首先嘗試了寫一個(gè)簡(jiǎn)單的鍵盤,發(fā)現(xiàn)無(wú)法實(shí)現(xiàn)跨進(jìn)程用(也就是說只能在自己編寫的軟件中使用)
這個(gè)問題是重點(diǎn),就算在本應(yīng)用寫了個(gè)懸浮窗,浮在其他應(yīng)用上面,但按鈕輸入的物理按鍵事件(A,B,shift等按鍵)必須要有系統(tǒng)應(yīng)用權(quán)限才能收到,所以,這個(gè)方法沒法實(shí)現(xiàn)
附:發(fā)送物理按鍵事件的代碼
Instrumentation inst =new Instrumentation();
inst.sendKeyDownUpSync(KeyEvent.KEYCODE_A) //發(fā)送A按鍵的事件(注:需要在子線程中執(zhí)行,當(dāng)然,我覺得可能沒幾個(gè)人會(huì)看我這個(gè)教程)
2.既然沒法實(shí)現(xiàn)跨進(jìn)程,那就換種思路,我就干脆不跨進(jìn)程了
3.怎么才能不跨進(jìn)程,那就是把Exagear和自己寫的鍵盤放在同一個(gè)進(jìn)程里運(yùn)行,有了這個(gè)思路就好辦了
首先在清單文件中的父標(biāo)簽中添加android:sharedUserId="com.xxx.xxx"
然后用反編譯工具(這里推薦APK編輯器),找到Exagear的清單文件,將上面代碼也添加到其中
之后在自己的鍵盤和Exagear清單文件中的application標(biāo)簽中添加android:process="com.xxx.xxx"
這樣就把他們放在同一個(gè)進(jìn)程中了.經(jīng)過測(cè)試,已經(jīng)可以實(shí)現(xiàn)鍵盤輸入了.
4.這其中設(shè)計(jì)到幾個(gè)麻煩的問題,第一個(gè)就是簽名問題,因?yàn)樵O(shè)置了android:sharedUserId,他們的簽名必須一致,這里就需要?jiǎng)?chuàng)建一個(gè)文件,在APK編輯器中設(shè)置好打包的簽名,自己軟件打包時(shí)也要使用該簽名才行
5.最后就是編輯專用軟鍵盤布局的時(shí)候了,已經(jīng)做到這種程度了,那鍵盤想成為什么樣就完全隨心所欲了
(要將鍵盤寫成懸浮窗,從服務(wù)中啟動(dòng),之后因?yàn)楹虴xagear運(yùn)行在同一個(gè)進(jìn)程里,只要Exagear不被殺死,鍵盤就一直存在)
6.專屬鍵盤還有一個(gè)好處就是不影響本身鍵盤的使用,因?yàn)槲医?jīng)常需要玩游戲的時(shí)候切到QQ聊天,如果用 游戲鍵盤
我還需要把鍵盤切換成輸入法才行,很不爽啊
注:等我把鍵盤寫好了再放圖
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的android 中自定义键盘,【图片】自定义属于自己的专属键盘的思路!!!(需要有android编程基础)【exagear吧】_百度贴吧...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么计算机关机慢,电脑关机慢是什么原因
- 下一篇: 传播路由_什么路由器穿墙效果好?购买防骗