android 10 系统源码 framework添加自定义物理按键流程

本文详细介绍了Android系统中如何定义并实现新的物理按键,包括在KeyEvent.java中声明按键常量,attrs.xml中定义枚举,Generic.kl文件中配置按键功能,以及在keycodes.h和InputEventLabels.h中注册按键。通过编译更新API,确保系统能识别这些新增按键。
摘要由CSDN通过智能技术生成
/frameworks/base/core/java/android/view/KeyEvent.java

public static final int KEYCODE_PROFILE_SWITCH = 288;

// 定义添加物理按键
public static final int KEYCODE_PTT = 289;
public static final int KEYCODE_SOS = 290;
public static final int KEYCODE_HANDS_FREE = 291;
/frameworks/base/core/res/res/values/attrs.xml

<attr name="keycode">
    ......
    <enum name="KEYCODE_PROFILE_SWITCH" value="288" />

    <enum name="KEYCODE_PTT" value="289" />
    <enum name="KEYCODE_SOS" value="290" />
    <enum name="KEYCODE_HANDS_FREE" value="291" />
</attr>
/frameworks/base/data/keyboards/Generic.kl

key 580   APP_SWITCH
key 582   VOICE_ASSIST
# 驱动上报的键值绑定PTT、SOS、HANDS_FREE字符串
key 605   PTT
key 606   SOS
key 607   HANDS_FREE
/frameworks/native/include/android/keycodes.h

 AKEYCODE_PROFILE_SWITCH = 288,

AKEYCODE_PTT = 289,
AKEYCODE_SOS = 290,
AKEYCODE_HANDS_FREE = 291
/frameworks/native/include/input/InputEventLabels.h

static const InputEventLabel KEYCODES[] = {
    // NOTE: If you add a new keycode here you must also add it to several other files.
    //       Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list.
    DEFINE_KEYCODE(UNKNOWN),
    DEFINE_KEYCODE(SOFT_LEFT),
    ......
    DEFINE_KEYCODE(PROFILE_SWITCH),

    DEFINE_KEYCODE(PTT),
    DEFINE_KEYCODE(SOS),
    DEFINE_KEYCODE(HANDS_FREE),

    { nullptr, 0 }
};
最后执行指令更新下api,再触发编译
make update-api

/frameworks/base/api/current.txt
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值