Android P车机添加屏幕多指全局自定义手势操作

本文介绍如何在Android P车机系统中添加多指手势操作,包括双指、三指、四指的上滑、下滑、左滑、右滑等。通过在PhoneWindowManager中扩展手势识别,并在Car服务中将手势转换为CarInput操作,实现全局响应。文章详细阐述了framework的修改以及Car服务的接口和实现逻辑。

一、需求

1、设置应用新增多指手势开关功能,支持双指、三指、四指进行上滑、下滑、左滑、右滑等手势操作,相应手势执行某种功能。

2、手势操作为所有界面均可响应,全局行为。

3、不同项目可固化不同手势行为,也可自定义手势功能。

二、分析

1、原生系统已支持从屏幕边缘的手势操作,常见为SystemUI状态栏下拉展示通知栏或常用工具栏,相关代码位于PhoneWindowManager的SystemGesturesPointerEventListener中,故可在其中对手势识别进行扩展,将手势分解为滑动方向与手指操作数上报至上层Car服务应用。

2、由于手势支持自定义,故考虑在Car服务中将手势转换为CarInput操作,应用可监听CarInput事件,或项目定义默认手势行为,无应用拦截时执行默认行为,如双指左滑控制媒体上一曲,双指右滑控制媒体下一曲,双指上滑增大音量,双指下滑减小音量等。

三、实现

1、framework修改

(1)PhoneWindowManager

// frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java

    class SettingsObserver extends ContentObserver {
        SettingsObserver(Handler handler) {
            super(handler);
        }

        void observ
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shusuanly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值