以编程方式设置iOS背景/锁定屏幕图片?

9
我希望能够通过编程方式设置锁屏背景图片。我知道这只适用于越狱的iOS设备。
以下是我尝试过的一些方法:
1.将LockBackground.png放置在/private/var/mobile/Library/SpringBoard/中。这个方法可以实现,但需要进行硬重启。notify_post("com.apple.language.changed")无法进行软重启。
2.使用class-dump来转储UIKit的私有方法。UIKit在4.2中使用了一个名为+ (void)setDesktopImageData:(id)fp8;的方法,但在4.3及以上版本中似乎已经被删除了。
还有其他我可能遗漏的方法吗?

1
为什么不放弃SpringBoard呢? - EmilioPelaez
我以为我找过了,但没有找到有用的东西。我会再试一次。 - EightyEight
如果您对这个问题感兴趣,为什么不支持Area 51提议建立一个越狱Stack Exchange网站呢?(http://area51.stackexchange.com/proposals/18154/ios-jailbreaking-development?referrer=EuWVi6IpN0_KzzEhC7I-Qw2) - Richard Stelling
1个回答

12
我在SpringBoard的转储文件中找到了这个,我认为这会对你有用:
在SBWallpaperView.h中:
- (void)replaceWallpaperWithImage:(id)image;

还有在 SBUIController.h 中:

- (id)wallpaperView;

所以你可以做这样的事情:

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

那是其中一种方法。

我找到的另一种方法是使用SBWallpaperView的+ (void)noteWallpaperPreferencesChanged;方法,我对这个方法不是很确定,但似乎如果你尝试第一个方法后,使用这个方法而不是重新启动,它可能会起作用。


你在哪里找到这些头文件的? - EightyEight
我转储了SpringBoard可执行文件。 - EmilioPelaez
如果这个答案对您有用,您是否介意接受它并给我悬赏? - EmilioPelaez
抱歉,上次我使用赏金时它被授予了最高声望的问题。不管怎样,我已经接受了你的答案,希望这能给你一些安慰。虽然我还没有测试过这个 :( - EightyEight

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接