有什么方法可以处理表面的触摸事件吗?

问题描述

我想在android-auto(AA)导航应用程序中支持地图拖动,缩放等。 看到car-lib宣布感到非常兴奋(对旧的androidx-car库remove:有点失望)。但是我找不到任何用户交互处理的文档和示例。

是否有任何回调或专门的经理来处理与Surface用户交互? 在SurfaceListenerSurfaceNavigationTemplate或文档中找不到任何相关内容。 AFAIK,Google Maps和Waze由于使用了旧的私有活动提供方法(不建议使用屏幕提供)来处理缩放和旋转。

文档指出,AA负责输入。不确定是否适用于导航方案。

Android Auto通常会注意以下事项:....输入:通过机制处理用户对模板的输入 可在特定的汽车中使用,例如触摸屏或旋转式汽车...

处理原始触摸事件会很酷,但是如果没有计划添加此事件(出于安全目的或其他目的),则更具体的事件似乎还可以。

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,谷歌对于 28.dec.2020 的回答是:

这是版本 1 中的限制,我们正在评估是否添加此功能以供将来更新。

所以我们必须等待:-)