如何检测我的动态壁纸是在预览/“设置壁纸”活动中还是在主屏幕上运行
Posted
技术标签:
【中文标题】如何检测我的动态壁纸是在预览/“设置壁纸”活动中还是在主屏幕上运行【英文标题】:How do I detect whether my live wallpaper is running in the preview/"Set Wallpaper" activity or on the homescreen 【发布时间】:2012-04-05 00:53:26 【问题描述】:我只想在从动态壁纸选择应用程序运行壁纸时,在预览活动中绘制一条短信。 (使用“设置壁纸”和“设置”按钮)。
由于我将拥有免费和付费版本,在免费版本中,我还想让用户了解付费版本的功能,甚至在预览壁纸时启用这些功能,但在实际运行时不启用在主屏幕上,以免惹恼他们。
有什么想法吗?
作为替代方案,我可能只在壁纸第一次启动时显示此信息,这将始终来自预览活动。
【问题讨论】:
【参考方案1】:在您的 onCreateEngine() 方法中使用 isPreview()。
【讨论】:
【参考方案2】:你会满足于检查你的壁纸是否已经设置好了吗?
在WallpaperService#onCreateEngine()
的实现中,您可以这样做:
WallpaperManager wpm = (WallpaperManager) getSystemService(WALLPAPER_SERVICE);
WallpaperInfo info = wpm.getWallpaperInfo();
if (info != null && info.getComponent().equals(new ComponentName(this, getClass())))
Log.d(TAG, "We're already running");
// Still might be a preview, but the user is already running your LWP.
else
Log.d(TAG, "We're not running, this should be a preview");
// Should definitely be a preview.
【讨论】:
这是一个很好的解决方法,谢谢!我会试一试并回复。以上是关于如何检测我的动态壁纸是在预览/“设置壁纸”活动中还是在主屏幕上运行的主要内容,如果未能解决你的问题,请参考以下文章