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

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

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

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

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

我有什么遗漏的吗?

【问题讨论】:

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

标签: iphone ios uikit jailbreak lockscreen


【解决方案1】:

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

在 SBWallpaperView.h 中:

- (void)replaceWallpaperWithImage:(id)image;

在 SBUIController.h 中:

- (id)wallpaperView;

所以你可以这样做:

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

这是一种方式。

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

【讨论】:

  • 你在哪里找到这些头文件的?
  • 我转储了 SpringBoard 可执行文件。
  • 如果这个答案对你有用,你介意接受它并给我赏金吗?
  • 我的坏家伙,上次我使用赏金时,它被授予最高代表问题。不管怎样,我已经接受了你的回答,希望能给你一些安慰。不过我还没有机会测试这个:(
猜你喜欢
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 2012-02-02
  • 2011-04-13
  • 1970-01-01
  • 2023-03-17
相关资源
最近更新 更多