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