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

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.

【讨论】:

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

以上是关于如何检测我的动态壁纸是在预览/“设置壁纸”活动中还是在主屏幕上运行的主要内容,如果未能解决你的问题,请参考以下文章

ubuntu18.04桌面美化之动态壁纸(视频)

一个.Net Core开发的开源动态壁纸软件

如何在android中永久设置壁纸

Kali Linux安装动态壁纸(视频)

苹果手机怎么在主屏幕左上方设置自己的名字?

安卓手机设置壁纸为啥不清晰