Android : 恢复动态壁纸

Posted

技术标签:

【中文标题】Android : 恢复动态壁纸【英文标题】:Android : Restoring a Live Wallpaper 【发布时间】:2012-02-16 23:03:24 【问题描述】:

我必须实现一个临时更改壁纸的应用程序。一段时间后,必须恢复原始壁纸。这对于静态壁纸很容易实现。但是我要 用静态壁纸替换动态壁纸,一段时间后我想恢复动态壁纸。

设置我的临时壁纸后,我看到以前的动态壁纸的壁纸信息仍然存在。我尝试使用此信息启动(android)动态壁纸服务,但出现安全异常。

当我设置静态壁纸时,动态壁纸服务会发生什么。我认为这取决于实现。重新启动壁纸服务是不可能的,因为(android)live paper 服务没有设置“export”属性(我猜)。

是否有可能简单地删除我的静态壁纸并让壁纸服务继续工作?

【问题讨论】:

【参考方案1】:

设置动态壁纸是为平台应用程序保留的,例如与设备绑定的动态壁纸选择器(权限android.permission.SET_WALLPAPER_COMPONENT定义为signatureOrSystem)。

简而言之,如果不植根设备或构建自己的平台,您将无法做到这一点。

【讨论】:

现在可以吗?你能看看我的问题吗? ***.com/questions/13683464/… @Naskov - 至少对于 JellyBean 来说,SET_WALLPAPER_COMPONENT 的权限仍然是 signatureOrSystem,从而阻止您在没有用户交互的情况下设置动态壁纸。 感谢先生的回答。我很感激。我正在研究这个主题。再次感谢。 我可以用 Android NDK 库做到这一点吗?你能检查一下这个吗? ***.com/questions/13698266/… @Naskov 您仍然会遇到权限块 - 系统服务(名为 WallpaperManagerService 的类)在应用任何动态壁纸之前验证调用者 - 无论您是否使用带有 @987654327 的 NDK hack @、IServiceManager 并推送正确格式的Parcel 以触发WallpaperManagerService 的API。

以上是关于Android : 恢复动态壁纸的主要内容,如果未能解决你的问题,请参考以下文章

安卓怎么让壁纸动起来

Android 静态/动态壁纸(Live wallpaper)开发-WallpaperService

Android 12 内置系统默认动态壁纸(视频资源)实现

如何为 Android 动态壁纸创建设置活动

动态壁纸 isVisible/onVisibilityChanged 不适用于 Android 9+ 应用程序抽屉

android如何通过代码设置锁屏壁纸