¿Hay alguna manera de activar y desactivar el bluetooth y / o wifi mediante progtwigción en iOS?

Estoy buscando una manera fácil de alternar entre bluetooth y wifi entre los estados de encendido y apagado en dispositivos iOS 4.x (iPhone y iPad).

Constantemente estoy alternando estas funciones a medida que avanzo entre diferentes ubicaciones y escenarios de uso, y en este momento se necesitan múltiples toques y visitas a la Aplicación de configuración. Estoy buscando crear una aplicación simple, que viva en Springboard, que pueda tocar y apagará el wifi si está activado, y viceversa, y luego lo abandonará de inmediato. Del mismo modo, con una aplicación para alternar el estado de Bluetooth.

Tengo el desarrollador de SDK, y estoy cómodo con Xcode y con el desarrollo de iOS, por lo que me complace escribir el código requerido para crear la aplicación. Simplemente no sé qué API, privada o no, tiene la funcionalidad requerida para simplemente alternar el estado de estas instalaciones.

Debido a que esto está rayando un picor muy personal, no tengo la intención de intentar vender la aplicación o ponerla en la tienda de aplicaciones, por lo que cumplir con las pautas de la aplicación sobre el uso de la API no es un problema. Lo que no quiero hacer es hacer jailbreak a los dispositivos, ya que quiero mantener el software central como se envió.

¿Alguien puede indicarme algún código de muestra o más información sobre cómo lograr este objective, ya que mi Google-fu me está decepcionando, y si la información está disponible para dispositivos 4.x simplemente no puedo encontrarla?

Gracias a Matt Farrugia (@mattfarrugia en Twitter) la respuesta que estaba buscando fue:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. #if TARGET_IPHONE_SIMULATOR exit( EXIT_SUCCESS ) ; #else /* this works in iOS 4.2.3 */ Class BluetoothManager = objc_getClass( "BluetoothManager" ) ; id btCont = [BluetoothManager sharedInstance] ; [self performSelector:@selector(toggle:) withObject:btCont afterDelay:0.1f] ; #endif return YES ; } #if TARGET_IPHONE_SIMULATOR #else - (void)toggle:(id)btCont { BOOL currentState = [btCont enabled] ; [btCont setEnabled:!currentState] ; [btCont setPowered:!currentState] ; exit( EXIT_SUCCESS ) ; } #endif 

También debe vincularse con el marco de Gamekit, pero simplemente agregue este código a un nuevo proyecto de Xcode y ejecútelo en el dispositivo. Al hacerlo, se crea una aplicación de un toque que activa y desactiva Bluetooth.