如何在预览/“设置壁纸”活动或主屏幕上检测我的动态壁纸是否正在运行

时间:2012-03-20 14:31:52

标签: android live-wallpaper

我只想在预览活动中从动态壁纸选择应用程序运行壁纸时绘制文本消息。 (使用“设置壁纸”和“设置”按钮)。

由于我有一个免费和付费版本,在免费版本中,我还想让用户了解付费版本功能,甚至在预览壁纸时启用这些功能,但不是在实际运行时启用在主屏幕上,以避免烦扰他们。

有什么想法吗?

作为替代方案,我可能会在第一次启动壁纸时显示此信息,这将始终来自预览活动。

2 个答案:

答案 0 :(得分:6)

在onCreateEngine()方法中使用isPreview()

答案 1 :(得分:5)

您是否愿意只检查您的壁纸是否已经设置?

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.
}