2011-07-19 14 views
9

Me gustaría poder establecer la imagen de fondo de la pantalla de bloqueo programáticamente. Soy consciente de que esto solo es posible para dispositivos iOS con jailbreak.¿Configura el fondo de iOS/imagen de pantalla de bloqueo programáticamente?

Aquí hay algunas cosas que he probado:

  1. Coloque un LockBackground.png en// var/mobile/Library/trampolín privada /. Esto funciona pero requiere un respring duro. notify_post("com.apple.language.changed"); no funciona para un respring suave.

  2. Utilice class-dump para volcar métodos privados de UIKit. UIKit en 4.2 solía tener un método llamado + (void)setDesktopImageData:(id)fp8; pero parece que falta en 4.3 y superior.

¿Hay algo que me falta?

+1

¿Por qué no vuelcas SpringBoard en su lugar? – EmilioPelaez

+0

Pensé que sí y no encontré nada útil ... Lo intentaré de nuevo. – EightyEight

+0

Si está interesado en esta pregunta, ¿por qué no admite la propuesta del Área 51 para un sitio de Intercambio de Apéndices (http://area51.stackexchange.com/proposals/18154/ios-jailbreaking-development?referrer=EuWVi6IpN0_KzzEhC7I-Qw2) – rjstelling

Respuesta

11

He encontrado esto en el vertedero de trampolín, que creo que será de utilidad para usted:

En SBWallpaperView.h:

- (void)replaceWallpaperWithImage:(id)image; 

Y en SBUIController.h:

- (id)wallpaperView; 

Por lo tanto, puede hacer algo como:

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

Esa es una manera.

La otra que encontré fue para usar SBWallpaperView's + (void)noteWallpaperPreferencesChanged;, no estoy tan seguro de esto, pero parece que si haces lo que hiciste en el primer intento y luego usar esto en lugar de respring , podría funcionar.

+0

¿Dónde encontraste estos archivos de encabezado? – EightyEight

+0

Dejé el ejecutable SpringBoard. – EmilioPelaez

+0

Si esta respuesta funcionó para usted, ¿le importaría aceptarla y darme la recompensa? – EmilioPelaez

Cuestiones relacionadas