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

2608

被折叠的 条评论
为什么被折叠?



