日韩性视频-久久久蜜桃-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 新增物理按键的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 四虎8848 | 都市激情校园春色 | 日韩成人av在线播放 | 综合久久综合久久 | 手机在线小视频 | 国产激情久久 | 五月婷婷伊人网 | 一区视频在线免费观看 | 91插插插插插插插插 | 邻居少妇张开腿让我爽了在线观看 | 综合中文字幕 | 男人和女人做爽爽视频 | 日韩一区二区三免费高清在线观看 | 久久精品视频免费 | 国产黄色a | 亚洲日本视频 | 久久思| 亚洲天堂国产精品 | 日韩成人av一区二区 | 五月婷影院 | 999久久精品 | 日本免费一级片 | 欧美乱插 | 极品美女一区二区三区 | 高潮毛片又色又爽免费 | 日本精品一区二区三区四区 | 色悠悠国产精品 | 欧美99| av三级 | 男人天堂一区 | 91看片网页版 | 中文字幕中文字幕 | 少妇高潮久久久久久潘金莲 | 久久综合五月婷婷 | 椎名空在线观看 | 日本一区高清 | 亚洲成年网站 | 不卡中文 | 六月丁香激情 | 美女毛片在线观看 | 成人在线亚洲 | 激情综合激情五月 | 在线看片你懂 | 777精品久无码人妻蜜桃 | 亚洲a黄| 亚洲精品一区二区二区 | 成人国产精品视频 | 图片一区二区 | 亚洲一区二区在线免费 | 激情婷婷色 | 精品黑人一区二区三区久久 | 丰满大乳少妇在线观看网站 | 99性趣网| 久久aⅴ乱码一区二区三区 亚洲成人18 | 日本天堂在线观看 | 中国黄色免费网站 | 先锋资源中文字幕 | 男女性杂交内射妇女bbwxz | 精品国产制服丝袜高跟 | 日本免费一区二区三区 | 国产一区资源 | 摸丰满大乳奶水www免费 | 国产成年无码久久久久毛片 | xxx精品 | 性欧美精品| 美女色诱男人激情视频 | 欧美日韩一区二区三区免费 | 亚欧毛片| 特黄特黄视频 | 天堂网在线观看视频 | 精品在线视频一区 | 日韩有码中文字幕在线观看 | 小明看国产 | 欧美黑人精品 | 插我舔内射18免费视频 | 香蕉视频在线免费播放 | www.日批| 女仆乖h调教跪趴1v1 | 人人艹视频 | 国语对白做受欧美 | 91视频分类| 日韩一级淫片 | 香蕉久久久久久久av网站 | 漂亮少妇高潮午夜精品 | 人人澡人人透人人爽 | 四虎1515hh.com| 久久爱综合网 | 国产一区不卡视频 | 日韩精品高清在线 | 91成人一区二区三区 | 日韩亚洲视频在线观看 | 中文字字幕第183页 欧美特级一级片 | 丁香色婷婷 | 欧美大尺度做爰啪啪床戏明星 | 日韩高清不卡一区 | 男女www视频 | 伊人影院在线播放 | 国产片黄色 | 一级免费黄色 |