Mr.Alright---安卓Q实体按键的震动怎样添加

本文详细介绍了如何在Android Q的MTK平台上,通过修改PhoneWindowManager.java实现去除虚拟按键,并模拟实体按键的触感反馈。重点在于理解并复制虚拟按键震动逻辑,判断实体按键触发条件和配置开关操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前提到了,去除虚拟按键,因为手机自带实体按键,Mr.Alright---MTK平台Android Q去除虚拟按键并修改实体菜单键为换起最近任务,后面有个新的问题,设置中的触摸反馈对于实体按键来说不起作用,还是得在\alps\frameworks\base\services\core\java\com\android\server\policy\PhoneWindowManager.java 中找答案

 if (useHapticFeedback) {
            performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, false,
                    "Virtual Key - Press");
        }

一番调试发现,虚拟按键的震动是这个逻辑,那么,我们只要模仿他写一个不就可以了

if (down && event.getRepeatCount() == 0
                && mNavBarVirtualKeyHapticFeedbackEnabled
                && ViewConfiguration.get(mContext).hasPermanentMenuKey()
                && (event.getKeyCode() == KeyEvent.KEYCODE_BACK
                || event.getKeyCode() == KeyEvent.KEYCODE_MENU
                || event.getKeyCode() == KeyEvent.KEYCODE_HOME)) {
            performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, false,
                    "Permanent Key - Press");
        }

紧挨着第一段代码添加第二段代码就OK了,其中,

mNavBarVirtualKeyHapticFeedbackEnabled 指的是设置的开关状态
ViewConfiguration.get(mContext).hasPermanentMenuKey() 是判断当前是不是有实体按键

剩下的就是是否是点击一次,点击的是否是返回,home,菜单按键的判断了,加上去就完事了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值