如何以编程方式更改Watch Faces

Leo*_*ini 2 android watch-face-api wear-os

我在Play商店有一个免费应用程序:Circus Watch Faces,我正在尝试在配置活动中添加一个表面选择器; 我跟着Android Dev Docs关于它并没有问题,但我怎样才能从一个表盘切换到另一个表盘?

我对Android开发完全陌生,所以我试图从样本中解释并构建新的东西.目前我只用一个按钮进行配置活动,当我点击它时,我想改变当前的表盘!

我的代码在GitHub上(尚未更新配置活动),如果可能有所帮助.

gru*_*czy 5

无法以编程方式更改表盘.您可以做的最好的事情是发送广播WallpaperManager.ACTION_LIVE_WALLPAPER_CHOOSER或(在Android Wear的新版本中)WallpaperManager. ACTION_CHANGE_LIVE_WALLPAPER.他们将调用一个表面选择器(表面是专门的壁纸).后一种意图还允许您将表盘设置为选择器中的选择建议.

不存在设置表盘的方式的原因在于,它可能容易被应用程序滥用于用户的愿望.

但是,由于您尝试从配置活动中执行某些操作,因此您可能希望实现完全不同的功能.也许你想要一个WatchFaceService然后根据一些内部设置改变它(以不同方式绘制).这样,如果用户想要改变外观(甚至到表面看起来完全不同的点,感觉就像一个新的表盘),您只需更改基础数据并让表面重绘自己.