亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

android - 搜狗輸入法強(qiáng)行攔截硬件輸入keyevent的問題。
天蓬老師
天蓬老師 2017-04-17 17:39:20
0
0
1771

問題描述:
題主的目的是要實(shí)現(xiàn)掃描槍來掃描條形碼,但是發(fā)現(xiàn)有時(shí)候發(fā)現(xiàn)掃描結(jié)果并不全.比如微信退款中,條碼內(nèi)容是"WX123456",但是掃碼結(jié)果卻是"123456".經(jīng)過調(diào)試以后發(fā)現(xiàn)是搜狗輸入法截取了英文字符串.現(xiàn)在來提問有何辦法來解決這個(gè)問題.

已經(jīng)得到的知識(shí)點(diǎn):
1.所有的keyevent會(huì)先交由輸入法,由輸入法來判定是否處理本次keyevent.如果不處理就交給app去處理,如果輸入 法處理了本次keyevent那么app就得不到這個(gè)keyevent.
2.如果交給app處理,那么獲得focus的View會(huì)處理keyevent.
3.一個(gè)關(guān)鍵的方法,android.view.inputmethod.InputMethodManager.isAcceptingText()的方法說明是,

Return true if the currently served view is accepting full text edits.
If false, it has no input connection, so can only handle raw key
events.

就是說,如果這個(gè)值是true他就會(huì)接受輸入法的文字輸入.如果是false,那么就不會(huì)有輸入連接,獲得焦點(diǎn)的View只能得到原生的keyevent.
4.經(jīng)過我的調(diào)試,isAcceptingText()在返回false的情況下,搜狗輸入法依然攔截了部分keyevent.同樣的條件下,我分別測(cè)試了"google輸入法","百度輸入法","QQ輸入法",他們都不會(huì)攔截keyevent,掃描槍掃描結(jié)果是正確的.
5.目前可以做到的是,當(dāng)我掃碼的時(shí)候可以檢測(cè)輸入法,如果是搜狗,那么彈出InputMethodPicker來讓用戶重新選擇輸入法.但是這種體驗(yàn)并不好.

天蓬老師
天蓬老師

歡迎選擇我的課程,讓我們一起見證您的進(jìn)步~~

reply all(0)
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template