以编程方式设置iOS背景/锁屏图像?

Posted

技术标签:

【中文标题】以编程方式设置iOS背景/锁屏图像?【英文标题】:Setting iOS background/lockscreen image programmatically? 【发布时间】:2011-10-08 19:03:58 【问题描述】:

我希望能够以编程方式设置锁屏背景图像。我知道这仅适用于越狱的 ios 设备。

以下是我尝试过的一些事情:

    在 /private/var/mobile/Library/SpringBoard/ 中放置一个 LockBackground.png。这可行,但需要硬重生。 notify_post("com.apple.language.changed"); 不适用于软重弹。

    使用class-dump 转储 UIKit 的私有方法。 4.2 中的 UIKit 曾经有一个名为 + (void)setDesktopImageData:(id)fp8; 的方法,但在 4.3 及更高版本中似乎缺少它。

我有什么遗漏的吗?

【问题讨论】:

你为什么不转储 SpringBoard 呢? 我以为我做了,但没有发现任何有用的东西。我会再试一次。 如果您对这个问题感兴趣,为什么不支持 51 区提案 jail-breaking Stack Exchange site 【参考方案1】:

我在 SpringBoard 转储中找到了这个,我认为这对你有用:

在 SBWallpaperView.h 中:

- (void)replaceWallpaperWithImage:(id)image;

在 SBUIController.h 中:

- (id)wallpaperView;

所以你可以这样做:

[(SBWallpaperView *)[SBUIController sharedInstance] wallpaperView] replaceWallpaperWithImage:anImage];

这是一种方式。

我发现的另一个是使用 SBWallpaperView 的+ (void)noteWallpaperPreferencesChanged;,我不太确定这个,但看起来如果你按照你在尝试的第一件事中所做的那样,然后使用它而不是重新启动,它可能会起作用。

【讨论】:

你在哪里找到这些头文件的? 我转储了 SpringBoard 可执行文件。 如果这个答案对你有用,你介意接受它并给我赏金吗? 我的坏家伙,上次我使用赏金时,它被授予最高代表问题。不管怎样,我已经接受了你的回答,希望能给你一些安慰。不过我还没有机会测试这个:(

以上是关于以编程方式设置iOS背景/锁屏图像?的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式创建按钮并设置背景图像

以编程方式设置包括安全区域的背景图像(Swift)

如何设置安卓锁屏图片

设置 UIBarButtonItem 的背景图像以编程方式更改其大小

如何以编程方式为一组 UIButtons 设置单独的背景图像

以编程方式将锁屏设置为“无”?