日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 10 新增物理按键

發布時間:2023/12/14 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 10 新增物理按键 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.當驅動層添加完成配置后,通過getevent命令查看底層驅動配置的鍵值

Seoul_TF:/ $?Seoul_TF:/ $ getevent
add device 1: /dev/input/event2
? name: ? ? "mtk-tpd"
add device 2: /dev/input/event0
? name: ? ? "ACCDET"
add device 3: /dev/input/event1
? name: ? ? "mtk-kpd"
/dev/input/event1: 0001 00f9?00000001
/dev/input/event1: 0000 0000 00000000
/dev/input/event1: 0001 00f9?00000000
/dev/input/event1: 0000 0000 000000002

———————————————————————————————————————————

2.添加KL 映射??

按鍵布局文件由 ?供應商、產品(可能還包括版本)ID 或輸入設備名稱來確定位置。系統會按順序查閱以下路徑,在以下任一kl文件下添加映射即可:

如果所有文件都沒有,系統會默認是去讀取/data/system/devices/keylayout/Generic.kl配置

  • /odm/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
  • /vendor/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
  • /system/usr/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
  • /data/system/devices/keylayout/Vendor_XXXX_Product_XXXX_Version_XXXX.kl
  • /odm/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
  • /vendor/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
  • /system/usr/keylayout/Vendor_XXXX_Product_XXXX.kl
  • /data/system/devices/keylayout/Vendor_XXXX_Product_XXXX.kl
  • /odm/usr/keylayout/DEVICE_NAME.kl
  • /vendor/usr/keylayout/DEVICE_NAME.kl
  • /system/usr/keylayout/DEVICE_NAME.kl
  • /data/system/devices/keylayout/DEVICE_NAME.kl
  • /odm/usr/keylayout/Generic.kl
  • /vendor/usr/keylayout/Generic.kl
  • /system/usr/keylayout/Generic.kl
  • /data/system/devices/keylayout/Generic.kl

由第一步getevent查詢 可知此按鍵是00f9,10進制249,名稱可以自定義,這里我命名為 CUSTIOM_KEY,首先需要在/data/system/devices/keylayout/Generic.kl添加紅色部分:

....
key 165 ? MEDIA_PREVIOUS
key 168 ? MEDIA_REWIND
key 159 ? MEDIA_FAST_FORWARD
key 249? ?CUSTIOM_KEY? ?

....

———————————————————————————————————————————

3. 在目錄frameworks/native/include/android/keycodes.h文件中

末尾處添加 紅色部分:

? ?......
? ? AKEYCODE_THUMBS_UP = 286,
? ? /** Thumbs down key. Apps can use this to let user downvote content. */
? ? AKEYCODE_THUMBS_DOWN = 287,
? ? /** Used to switch current account that is consuming content.
? ? ?* May be consumed by system to switch current viewer profile. */
? ? AKEYCODE_PROFILE_SWITCH = 288,
? ? /* AI Key */
? ? AKEYCODE_CUSTIOM_KEY? = 289

———————————————————————————————————————————

4. 在InputEventLabels.h里面也按順序添加在最后面
frameworks/native/include/input/InputEventLabels.h

? ? ......
? ? DEFINE_KEYCODE(ALL_APPS),
? ? DEFINE_KEYCODE(REFRESH),
? ? DEFINE_KEYCODE(THUMBS_UP),
? ? DEFINE_KEYCODE(THUMBS_DOWN),
? ? DEFINE_KEYCODE(PROFILE_SWITCH),
? ? DEFINE_KEYCODE(CUSTIOM_KEY),
? ? { nullptr, 0 }
};

———————————————————————————————————————————

5.在KeyEvent.java里面最后依次添加,并把LAST_KEYCODE改為才添加的? ?

紅色標記部分

? ? /**
? ? ?* Key code constant: Used to switch current {@link android.accounts.Account} that is
? ? ?* consuming content. May be consumed by system to set account globally.
? ? ?*/
? ? public static final int KEYCODE_PROFILE_SWITCH = 288;
? ? /**
? ? ?* @hide
? ? ?*/
? ? public static final int KEYCODE_CUSTIOM_KEY = 289;
? ? ?@TestApi
? ? public static final int LAST_KEYCODE = KEYCODE_CUSTIOM_KEY;

———————————————————————————————————————————

6.更新api文檔

test-current.txt這個API文檔也需要同步修改LAST_KEYCODE
frameworks/base/api/test-current.txt

? public class KeyEvent extends android.view.InputEvent implements android.os.Parcelable {
? ? method public static String actionToString(int);
? ? method public final void setDisplayId(int);
? ? field public static final int LAST_KEYCODE = 289;?
? }

———————————————————————————————————————————

7.最后一步在attrs.xml最后面同步添加
frameworks/base/core/res/res/values/attrs.xml

? ? ? ? <enum name="KEYCODE_REFRESH" value="285" />
? ? ? ? <enum name="KEYCODE_THUMBS_UP" value="286" />
? ? ? ? <enum name="KEYCODE_THUMBS_DOWN" value="287" />
? ? ? ? <enum name="KEYCODE_PROFILE_SWITCH" value="288" />
? ? ? ? <enum name="KEYCODE_CUSTIOM_KEY" value="289" />
? ? </attr>
———————————————————————————————————————————

驗證:以上步驟完成?

PhoneWindowManager.java里就能收到此按鍵點擊事件了,對事件做對應處理即可

@Override
? ? public int interceptKeyBeforeQueueing(KeyEvent event, int policyFlags) {
? ? .......
? ? ?// Handle special keys.
? ? ? ? switch (keyCode) {
? ? ? ? ? ? case KeyEvent.KEYCODE_CUSTIOM_KEY:{
? ? ? ? ? ? ? ? .......
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }

? ? ? ? ? ? case KeyEvent.KEYCODE_BACK:{
? ? ? ? ? ? }
? ? .......
?}

注:文中紅色標記部分為修改或者添加部分

總結:新的物理按鍵,要上層收到對應事件,只需要按部就班參照系統按鍵實現即可,system提供scancode,上層轉換為keycode使用。


?

總結

以上是生活随笔為你收集整理的Android 10 新增物理按键的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品久久欧美久久一区 | 久久乐视频 | 五月婷婷一区二区三区 | 天天躁日日摸久久久精品 | 三级黄色片网站 | 国产不卡视频在线播放 | 国产精品污视频 | 色小说香蕉 | 97色吧| 免费激情网 | 国产激情无套内精对白视频 | 国产黄色片在线免费观看 | 69精品丰满人妻无码视频a片 | 丰满人妻av一区二区三区 | 男女做事网站 | 欧美亚洲综合在线 | 亚洲av少妇一区二区在线观看 | 久久精品香蕉 | 亚洲av无码一区二区三区人 | 日日爽夜夜操 | 亚洲熟女乱色综合亚洲av | 国内自拍在线 | 成年午夜视频 | 亚洲一在线 | 中国女人内精69xxxxxx | 日韩欧美啪啪 | 51精品国产人成在线观看 | 亚洲影院在线观看 | 亚洲性xx | 999资源站 | 国产第二页 | 午夜亚洲aⅴ无码高潮片苍井空 | 国产处女| av专区在线 | 国产日韩中文字幕 | 国产综合精品久久久久成人影 | 久久精品人妻av一区二区三区 | 欧美精品久久久久久久免费 | 少妇脚交调教玩男人的视频 | 久草视频在线免费 | 欧美性区 | 成人精品二区 | 一本加勒比hezyo黑人 | 国产一二三级 | 在线观看深夜视频 | 日韩精品亚洲精品 | 日韩亚洲一区二区 | 小泽玛利亚一区二区三区在线观看 | 在线播放精品 | 在线不卡中文字幕 | av影片在线播放 | 成人免费视频国产 | 人妻av一区二区 | xxx69美国| 亚洲精品美女 | 日韩免费网站 | 中文字幕在线视频网 | 男女一进一出视频 | 成人黄色免费网址 | 奇米影视四色在线 | 日韩r级在线观看 | 暖暖成人免费视频 | 久久婷婷五月综合色吧 | 鬼眼 电影 | 啪啪亚洲 | 中国亚洲老头同性gay男男… | 国内免费精品视频 | 日韩一级免费毛片 | 天天想你免费观看完整版高清电影 | 一级片视频网站 | 午夜激情视频在线 | 国产污污在线观看 | 老鸭窝视频在线观看 | 日韩精品在线观看免费 | 丰满大乳露双乳呻吟 | 狠狠干在线 | 精品91自产拍在线观看二区 | 深夜视频在线观看免费 | 精东传媒在线 | 国产高清不卡一区 | 免费又黄又爽又色的视频 | 一区二区亚洲视频 | 欧日韩av| 制服.丝袜.亚洲.中文.综合懂色 | 国产911在线观看 | 熟妇高潮一区二区三区 | 无码人妻久久一区二区三区 | 国语对白对话在线观看 | 亚洲精品一区二区在线观看 | 日韩一区二区三区免费视频 | 超碰97在线免费观看 | 久久国产精品精品国产色婷婷 | 天天看天天摸 | 狠狠爱综合 | 青青青草视频在线 | 黑人3p波多野结衣在线观看 | 欧美日韩高清一区二区 | 日韩av日韩| 亚洲少妇自拍 |