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

一、需求

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 observe() {
            // Observe all users' changes
            ContentRes

你可能感兴趣的:(车机系统,android,framework,车载系统)