Instancia SBStatusBarController

¿Alguien podría ayudarme con una pequeña muestra de cómo obtener la instancia de SBStatusBarController? Eché un vistazo a muchos foros y códigos fuente y no funciona para mí 🙁

Gracias.

Bien, he encontrado la manera de mostrar la barra de estado de doble altura, como la barra de estado en llamada sin SpringBoard y usando medios legales. Aquí hay una solución. Hay dos formas de mostrar la barra de estado de doble altura con el nombre de la aplicación mientras la aplicación está en modo de baground: Conéctese al servicio de VoIP con sockets o simule la grabación de audio. Usando la primera forma, verá una barra de estado verde shiny y si prefiere el color rojo, debe usar el segundo. Ok, uso el segundo enfoque y realizo la simulación de grabación de audio. Para llegar a esto, simplemente agregue las siguientes cadenas a PLIST config file of application:

UIBackgroundModes  voip audio  

Le indicará a iOS que su aplicación usará audio y VoIP en segundo plano. Y ahora código. Simularemos la grabación de audio desde el micrófono al dispositivo NULL:

 - (void) startRecording { AVAudioSession *audioSession = [AVAudioSession sharedInstance]; NSError *err = nil; [audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err]; if(err){ NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]); return; } [audioSession setActive:YES error:&err]; err = nil; if(err){ NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]); return; } recordSetting = [[NSMutableDictionary alloc] init]; [recordSetting setValue :[NSNumber numberWithInt:kAudioFormatLinearPCM] forKey:AVFormatIDKey]; [recordSetting setValue:[NSNumber numberWithFloat:44100.0] forKey:AVSampleRateKey]; [recordSetting setValue:[NSNumber numberWithInt: 2] forKey:AVNumberOfChannelsKey]; [recordSetting setValue :[NSNumber numberWithInt:16] forKey:AVLinearPCMBitDepthKey]; [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsBigEndianKey]; [recordSetting setValue :[NSNumber numberWithBool:NO] forKey:AVLinearPCMIsFloatKey]; NSURL *url = [NSURL fileURLWithPath:@"/dev/null"]; err = nil; recorder = [[ AVAudioRecorder alloc] initWithURL:url settings:recordSetting error:&err]; if(!recorder){ NSLog(@"recorder: %@ %d %@", [err domain], [err code], [[err userInfo] description]); UIAlertView *alert = [[UIAlertView alloc] initWithTitle: @"Warning" message: [err localizedDescription] delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [alert show]; [alert release]; return; } //prepare to record [recorder setDelegate:self]; [recorder prepareToRecord]; recorder.meteringEnabled = YES; BOOL audioHWAvailable = audioSession.inputIsAvailable; if (! audioHWAvailable) { UIAlertView *cantRecordAlert = [[UIAlertView alloc] initWithTitle: @"Warning" message: @"Audio input hardware not available" delegate: nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; [cantRecordAlert show]; [cantRecordAlert release]; return; } // start recording [recorder record];//recordForDuration:(NSTimeInterval) 40]; } 

Agregue este método al delegado de su aplicación y llámelo desde didFinishLaunchingWithOptions. Además, como entendí, puede simplemente configurar la categoría de la sesión de audio como AVAudioSessionCategoryPlayAndRecord y activarla. Si agrega este código a su proyecto, en caso de que ponga su aplicación en segundo plano, verá la barra de estado de doble altura con el nombre de su aplicación dentro.

Creo que eso es todo.

Gracias.