Eu escrevi um tweak para o Cydia, ele adiciona um ícone à barra de status. Ele funciona bem na tela inicial e, quando o SpringBoard é iniciado, também, se um aplicativo já foi iniciado, ele funciona bem; no entanto, se um aplicativo (como o Facebook ou o Twitter) estiver fechado (completamente) e o ícone aparecer, quando ao iniciar o aplicativo, o ícone desaparecerá. O ícone é exibido 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"];
Eu também tentei usar os métodos sugeridos no libStatusBar
arquivo README
[[UIApplication sharedApplication] addStatusBarImageNamed:@"ON_Mute"]; // and removeStatusBarImageNamed:...
Tentei substituir -(id)init
e atualizar o ícone lá, mas o mesmo resultado.
O código mostrado acima está sendo chamado de uma static void
função. esta função está sendo chamada várias vezes, por exemplo, de -(void)applicationDidFinishLaunching:(id)application
baixo %hook SpringBoard
e de baixo-(void)ringerChanged:(int)changed
Tudo por dentro Tweak.xm
. O problema acontece iOS7
também.