当前位置: 首页 > wzjs >正文

渭南汽车网站制作网络seo推广

渭南汽车网站制作,网络seo推广,功能型网站建设需要多少钱,室内装修设计学习网基于Android 13.一、映射步骤确定要映射的物理按键值在kl文件中增加键值对在InputEventLabels.cpp增加AKEYCODE在keycodes.h中定义AKEYCODE值attrs.xml中增加KEYCODEKeyEvent.java中增加KEYCODE在PhoneManagerWindow等相关类中进行拦截处理相关KEYCODE,属于具体的业…

基于Android 13.

一、映射步骤

  • 确定要映射的物理按键值

  • 在kl文件中增加键值对

  • 在InputEventLabels.cpp增加AKEYCODE

  • 在keycodes.h中定义AKEYCODE值

  • attrs.xml中增加KEYCODE

  • KeyEvent.java中增加KEYCODE

  • 在PhoneManagerWindow等相关类中进行拦截处理相关KEYCODE,属于具体的业务逻

二、确定要映射的物理按键值 

通过getevent,可以知道对应的物理按键值。
输入getevent后,按一次对应的物理按键,会有相应的值输出:

/dev/input/event0:按键对应的设备节点(也就是getevent读哪个设备节点读出的按键信息)

name:这个设备节点对应的名字,如/dev/input/event0设备节点对应的名字为"gpio-keys"

00b5:按键对应的物理按键值(也就是kernel层冒上来的按键值)

00b5是十六进制值,在frameworks层进行映射的时候需要转化为十进制,为181。

这样就确定了要映射的物理按键值。

三、在kl文件中增加键值对

在kl文件中增加键值对之前,先要找到对应的kl文件。(kl文件即按键布局文件)

通过getevent,可以知道这个按键对应的设备节点,以及设备节点对应的名字:

这个b5按键对应设备节点是/dev/input/event0,这个设备节点对应的name为"gpio-keys"

通过adb shell dumpsys input查看对应的kl文件:

7: gpio-keysClasses: KEYBOARDPath: /dev/input/event0Enabled: trueDescriptor: 485d69228e24f5e46da1598745890b214130dbc4Location: gpio-keys/input0ControllerNumber: 0UniqueId: Identifier: bus=0x0019, vendor=0x0001, product=0x0001, version=0x0100KeyLayoutFile: /system/usr/keylayout/gpio-keys.klKeyCharacterMapFile: /system/usr/keychars/Generic.kcmConfigurationFile: VideoDevice: <none>

故我们需要在gpio-keys.kl中增加键值对:

key 181 KEY_XXX

PS:

AOSP原生代码中放置kl的路径:frameworks/base/data/keyboards

设备中放置kl的路径:/system/usr/keylayout

四、在InputEventLabels.cpp增加AKEYCODE

在InputEventLabels.cpp通DEFINE_KEYCODE宏,增加AKEYCODE

frameworks/native/libs/input/InputEventLabels.cpp

DEFINE_KEYCODE(KEY_XXX)

这里有一个小小的地方需要注意下:

#define DEFINE_KEYCODE(key) { #key, AKEYCODE_##key }...
DEFINE_KEYCODE(THUMBS_DOWN), \
DEFINE_KEYCODE(PROFILE_SWITCH), \
DEFINE_KEYCODE(KEY_XXX)/* add by xxx */

在两行DEFINE_KEYCODE之间添加注释的时候,不要采用// comment;会导致编译不过。

DEFINE_KEYCODE外面是个宏,需要用/**/而且不能漏了 \

DEFINE_KEYCODE(PROFILE_SWITCH), \
DEFINE_KEYCODE(KEY_XXX)/* add by ... */或者:
DEFINE_KEYCODE(PROFILE_SWITCH), \
/* add by ... */ \
DEFINE_KEYCODE(KEY_XXX)

五、在keycodes.h中定义AKEYCODE值

在keycodes.h中增加AKEYCODE键值对

frameworks/native/include/android/keycodes.h

/** Used to switch current account that is consuming content.* May be consumed by system to switch current viewer profile. */
AKEYCODE_PROFILE_SWITCH = 288,
/** add by start. */
AKEYCODE_SKY_XXX = 701
/** add by end. */

PS.这个701是自己定义的,只要取比上一个大的值(这里是288)即可,但是考虑到289在attrs.xml中已经被占用,故这里取大一点的值,给AOSP预留一部分取值范围。

六、attrs.xml中增加KEYCODE

在attrs.xml中增加KEYCODE_XXX:

frameworks/base/core/res/res/values/attrs.xml

<!-- add by  start. -->
<enum name="KEYCODE_KEY_XXX" value="701" />
<!-- add by  end. -->

七、KeyEvent.java中增加KEYCODE

在KeyEvent.java中增加KEYCODE_XXX:

frameworks/base/core/java/android/view/KeyEvent.java

/** Key code constant: Demo Application key #4. */public static final int KEYCODE_DEMO_APP_4 = 304;/** add by  start. */public static final int KEYCODE_KEY_XXX = 701;/** add by  end. */

到这里,框架层映射按键值就完成了,接下来进行按键拦截测试。

八、拦截处理

在PhoneManagerWindow等相关类中进行拦截处理相关KEYCODE_XXX,属于具体的业务逻辑。

http://www.dtcms.com/wzjs/128941.html

相关文章:

  • php做网站实例大连seo外包平台
  • 石家庄网站建设报价百度客服电话24小时
  • 消防证怎么考取需要什么条件邯郸seo
  • 旅游类网站模板网络广告策划方案
  • 宝鸡市交通运输局公路建设网站代写文章哪里找写手
  • wordpress标签页面厦门seo怎么做
  • 外贸网站建设有哪些要求网店如何营销推广
  • WordPress 文章最多字潍坊seo培训
  • 网站开发与建设课程设计阿里关键词排名查询
  • 昆明本地网站深圳优化公司样高粱seo
  • 陕西网站建设的内容莆田seo
  • php网站怎么做301跳转关键词搜索排名查询
  • 有没有做奥数题的网站seo优化工作有哪些
  • 网站建设添加视频百度一下搜索网页
  • 想自己建个网站怎么样才能引流客人进店
  • 黄岛区做网站的怎么在百度上做广告推广
  • wordpress非插件幻灯片seo百度贴吧
  • 中国建设银行吉林分行网站商务网站建设
  • 门户网站建设管理情况自查报告什么是搜索引擎竞价推广
  • 网站建设公司盈利企业营销型网站有哪些
  • 网站运营的作用厦门网站搜索引擎优化
  • 如何使用家里电脑做网站服务器查询关键词排名工具
  • 网站设计一般多少钱网页设计作品
  • 群晖 wordpress 端口品牌seo培训
  • 做微信公众号必备的网站潜江seo
  • 网站正在建设中 源码下载长沙网站优化方法
  • 网站做查赚钱合肥网络优化公司有几家
  • 免费网站模做引流推广的平台600
  • 做网站用jsp还是html免费广州seo
  • 深圳中装建设集团整站优化关键词排名