2011-07-19 9 views
9

मैं प्रोग्रामिक रूप से लॉकस्क्रीन पृष्ठभूमि छवि सेट करने में सक्षम होना चाहता हूं। मुझे पता है कि यह जेलब्रोकन आईओएस उपकरणों के लिए ही संभव है।आईओएस पृष्ठभूमि/लॉकस्क्रीन छवि को प्रोग्रामिक रूप से सेट करना?

  1. प्लेस/निजी/var/मोबाइल/Library/स्प्रिंगबोर्ड में एक LockBackground.png /:

    यहाँ कुछ चीजें हैं जो मैं कोशिश की है कर रहे हैं। यह काम करता है लेकिन एक कठिन अनुशासन की आवश्यकता है। notify_post("com.apple.language.changed"); मुलायम respring के लिए काम नहीं करता है।

  2. UIKit के निजी तरीकों को डंप करने के लिए class-dump का उपयोग करें। 4.2 में UIKit + (void)setDesktopImageData:(id)fp8; नामक एक विधि का उपयोग करता था लेकिन ऐसा लगता है कि यह 4.3 और बाद में गायब है।

क्या कोई ऐसी चीज है जो मुझे याद आ रही है?

SBWallpaperView.h में:

+1

आप इसके बजाय स्प्रिंगबोर्ड को डंप क्यों नहीं करते? – EmilioPelaez

+0

मैंने सोचा कि मैंने किया और कुछ भी उपयोगी नहीं मिला .. मैं फिर कोशिश करूंगा। – EightyEight

+0

यदि आप इस प्रश्न में रूचि रखते हैं तो क्यों [जेल ब्रेकिंग स्टैक एक्सचेंज साइट] के लिए एरिया 51 प्रस्ताव का समर्थन नहीं करते हैं (http://area51.stackexchange.com/proposals/18154/ios-jailbreaking-development?referrer=EuWVi6IpN0_KzzEhC7I-Qw2) – rjstelling

उत्तर

11

मैं स्प्रिंगबोर्ड डंप जो मैं तुम्हें करने के लिए उपयोग की जाने योग्य मानते में यह पाया

- (void)replaceWallpaperWithImage:(id)image; 

और SBUIController.h में:

- (id)wallpaperView; 

तो आप कुछ ऐसा कर सकते हैं:

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

यह एक तरीका है।

मुझे जो दूसरा मिला वह एसबीब्लैलपेपर व्यू + (void)noteWallpaperPreferencesChanged; का उपयोग करना था, मुझे इस बारे में निश्चित नहीं है, लेकिन ऐसा लगता है कि आपने जो कुछ किया है, उसमें आपने जो किया है, और उसके बाद इसे किसी नस्ल के बजाय उपयोग करें , यह काम हो सकता है।

+0

आपको इन हेडर फाइलों को कहां मिला? – EightyEight

+0

मैंने स्प्रिंगबोर्ड को निष्पादन योग्य छोड़ दिया। – EmilioPelaez

+0

यदि यह उत्तर आपके लिए काम करता है, तो क्या आप इसे स्वीकार करते हैं और मुझे बक्षीस देते हैं? – EmilioPelaez