有没有办法处理表面的触摸事件?

Is there any way to handle touch events for surface?

我想在android-auto (AA) 导航应用程序中支持地图拖动、缩放等。 很高兴阅读 car-lib announce(对旧的 androidx-car library remove: 有点失望)。但是我找不到任何用户交互处理的文档和示例。

是否有任何回调或特殊管理器来处理与 Surface 的用户交互? 在 SurfaceListenerSurfaceNavigationTemplate 或文档中找不到任何相关内容。 AFAIK,Google 地图和 Waze 处理缩放和旋转,因为使用旧的私有 activity 提供 方法(不建议 屏幕提供 ).

文档指出 AA 负责处理输入。不确定是否适用于导航场景

Android Auto takes care of the following, in general: .... Input: Handling user input to templates via mechanisms available in specific cars, such as a touchscreen or rotary...

处理原始触摸事件会很酷,但如果没有计划添加它(出于安全目的或其他原因),更具体的事件似乎没问题。

interface SurfaceListener {
...
void onSurfaceScaleChanged(Float scale);
void onSurfaceRotated(Float angle);
void onSurfaceDragging(Int x, Int y);
void onSurfaceClicked(Int x, Int y);
...
}

这里有一个未解决的问题:https://issuetracker.google.com/issues/171715013,google 对 28.dec.2020 的回答是:

This is a limitation in version 1, and we are evaluating adding this functionality for future updates.

所以我们必须等待:-)