d.a*_*mon 1 android watch-face-api wear-os
我有一个基于最新API(扩展CanvasWatchFaceService.Engine
)的表盘.现在我想让触摸事件在表盘上有一些活动区域可以触摸打开设置等.CanvasWatchFaceService.Engine
继承自WallpaperService.Engine
,它声明了两个重要的方法:setTouchEventsEnabled(boolean)
和onTouchEvent(MotionEvent)
.
但即使我setTouchEventsEnabled(true)
在onCreate()
方法中调用,Engine
我也从未接到过onTouchEvent(MotionEvent)
在我的引擎实现中的调用.
我做错了什么或者根本不可能?我知道一些提供活动区域的表盘,但我不确定它们是基于最新的API还是基于弃用的API构建(使用布局和GUI元素).
在新的Android Wear 1.3中使用Interactive Watch Face API:
更新:
onCreate
在CanvasWatchFaceService.Engine
基础类的函数中只向init函数添加一行:
setWatchFaceStyle(new WatchFaceStyle.Builder(mService)
.setAcceptsTapEvents(true)
// other style customizations
.build());
Run Code Online (Sandbox Code Playgroud)
并管理下的点击事件
@Override
public void onTapCommand(int tapType, int x, int y, long eventTime) { }
Run Code Online (Sandbox Code Playgroud)
笔记:
tapType==TAP_TYPE_TAP
)TAP_TYPE_TOUCH
,TAP_TYPE_TOUCH_CANCEL
您可以猜测滑动手势,但TAP_TYPE_TOUCH_CANCEL
不提供退出坐标.欲了解更多控制你唯一的办法是增加一个SYSTEM_ALERT
层和切换它基于关闭/开启您可以从收集信息onVisibilityChanged
和onAmbientModeChanged
...
归档时间: |
|
查看次数: |
1165 次 |
最近记录: |