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

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

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

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

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

【问题讨论】:

    标签: android live-wallpaper


    【解决方案1】:

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

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

    【讨论】:

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