2011-07-19 36 views
9

Tôi muốn có thể đặt hình nền khóa màn hình theo chương trình. Tôi biết rằng điều này chỉ có thể cho các thiết bị iOS được bẻ khóa.Đặt hình ảnh nền/khóa màn hình iOS theo chương trình?

Dưới đây là một số điều mà tôi đã cố gắng:

  1. Đặt LockBackground.png vào/private/var/mobile/Library/SpringBoard /. Điều này làm việc nhưng đòi hỏi một respring cứng. notify_post("com.apple.language.changed"); không hoạt động cho một respring mềm.

  2. Sử dụng class-dump để đổ phương thức riêng tư của UIKit. UIKit trong phiên bản 4.2 được sử dụng để có phương thức có tên là + (void)setDesktopImageData:(id)fp8; nhưng có vẻ như bị thiếu trong phiên bản 4.3 trở lên.

Có điều gì tôi thiếu không?

+1

Tại sao bạn không đổ SpringBoard? – EmilioPelaez

+0

Tôi nghĩ tôi đã làm và không tìm thấy bất cứ điều gì hữu ích .. Tôi sẽ thử lại. – EightyEight

+0

Nếu bạn quan tâm đến câu hỏi này tại sao không hỗ trợ đề xuất Khu vực 51 cho một [trang web trao đổi ngăn xếp do nhà tù phá vỡ] (http://area51.stackexchange.com/proposals/18154/ios-jailbreaking-development?referrer=EuWVi6IpN0_KzzEhC7I-Qw2) – rjstelling

Trả lời

11

Tôi thấy điều này trong các bãi chứa SpringBoard mà tôi nghĩ sẽ được sử dụng cho bạn:

Trong SBWallpaperView.h:

- (void)replaceWallpaperWithImage:(id)image; 

Và trong SBUIController.h:

- (id)wallpaperView; 

Vì vậy, bạn có thể làm điều gì đó như:

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

Đó là một cách.

Điều khác tôi thấy là sử dụng số + (void)noteWallpaperPreferencesChanged; của SBWallpaperView, tôi không chắc về điều này, nhưng có vẻ như bạn làm những gì bạn đã làm trong lần đầu tiên bạn thử và sau đó sử dụng thay vì respring , có thể đấy.

+0

Bạn tìm thấy các tệp tiêu đề này ở đâu? – EightyEight

+0

Tôi đã xóa tệp thực thi SpringBoard. – EmilioPelaez

+0

Nếu câu trả lời này có hiệu quả với bạn, bạn có thể chấp nhận nó và cho tôi tiền thưởng không? – EmilioPelaez

Các vấn đề liên quan