Escribí un ajuste para Cydia, agrega un ícono a la barra de estado. Funciona bien en la pantalla de inicio y cuando se inicia SpringBoard, también, si una aplicación ya está iniciada, funciona bien, sin embargo, si una aplicación (como Facebook o Twitter) está cerrada (completamente) y el icono se muestra, cuando Al iniciar la aplicación, el icono desaparecerá. El icono se muestra usando libStatusBar usando este código:
if(icon) // if icon needs to be removed
{
[icon release];
icon = nil;
}
...
// add the icon to the status bar
icon = [[%c(LSStatusBarItem) alloc] initWithIdentifier:[NSString stringWithFormat:@"muteIconLablabla"] alignment:StatusBarAlignmentRight];
icon.imageName = [NSString stringWithFormat:@"Mute"];
También intenté usar los métodos sugeridos en el libStatusBar
archivo README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
Intenté anular -(id)init
y actualizar el ícono allí, pero el mismo resultado.
El código que se muestra arriba se llama desde una static void
función. Esta función se llama varias veces, por ejemplo, desde -(void)applicationDidFinishLaunching:(id)application
abajo %hook SpringBoard
y-(void)ringerChanged:(int)changed
Todo el interior Tweak.xm
. El problema también ocurre en iOS7
.