Ho scritto un tweak per Cydia, aggiunge un'icona alla barra di stato. Funziona alla perfezione sulla schermata iniziale e quando viene avviato SpringBoard, inoltre, se un'app è già avviata, funziona comunque, , se un'applicazione (come Facebook o Twitter) è chiusa (completamente) e l'icona mostra , quando si avvia l'applicazione, l'icona scompare. L'icona viene visualizzata utilizzando libStatusBar utilizzando questo codice:L'icona di LibStatusBar scompare all'avvio dell'app di terze parti
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"];
Ho anche provato ad utilizzare i metodi suggeriti nel file di libStatusBar
README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
Ho provato l'override -(id)init
e aggiornare l'icona lì, ma lo stesso risultato .
Il codice mostrato sopra viene chiamato da una funzione static void
. questa funzione è chiamato più volte, ad esempio da -(void)applicationDidFinishLaunching:(id)application
sotto %hook SpringBoard
e -(void)ringerChanged:(int)changed
All interno Tweak.xm
. Il problema si verifica anche in iOS7
.