如何检测我制作的动态壁纸是在预览/“设置壁纸”页面运行还是在主屏幕上运行

4
当从动态壁纸选择应用程序中的预览活动(带有“设置壁纸”和“设置”按钮)运行壁纸时,我希望仅绘制文本消息。由于我将拥有免费和付费版本,在免费版本中,我还想让用户了解付费版本的功能,甚至在预览壁纸时启用这些功能,但在实际运行在主屏幕上时不要打扰他们。你有什么想法吗?作为替代方案,我可能只会在第一次启动壁纸时显示此信息,这将始终来自预览活动。
2个回答

6

在你的onCreateEngine()方法中使用isPreview()函数。


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

这是一个很好的解决方法,谢谢!我会尝试一下并回复。 - Kai Stavginski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接