2010-12-23 943 views
20

Estoy buscando una manera fácil de alternar entre bluetooth y wifi entre estados de encendido y apagado en dispositivos iOS 4.x (iPhone y iPad).¿Hay alguna forma de activar y desactivar el bluetooth y/o wifi mediante programación en iOS?

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 me siento cómodo en 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 es un rasguño muy personal, no tengo intención de intentar vender la aplicación o ponerla en la App Store, 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 me puede indicar algún código de muestra o más información sobre cómo lograr este objetivo, ya que mi Google-fu me está decepcionando, y si la información está disponible para dispositivos 4.x simplemente no puedo encontrarla?

+0

Pago por una cuenta de desarrollador, así que seguramente si el certificado caduca, ¿acabo de volver a descargarlo y volver a instalar la aplicación de Xcode? Al igual que instalaría cualquier otra aplicación de trabajo en progreso. Esto es para una aplicación interna y personal para resolver mi propio problema de una sola vez. Las API privadas están bien, ya que los únicos dispositivos que verá son los míos. – creednmd

Respuesta

25

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

- (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 

es necesario enlazar contra el marco GameKit también, pero sólo tiene que añadir en este código a un nuevo Xcode proyectar y ejecutar en el dispositivo. Al hacerlo, se crea una aplicación de un toque que activa y desactiva Bluetooth.

+0

Probé el método anterior en mi propia aplicación, pero no funciona, estoy usando Xcode3.2.5 y iPod 4, iOS 4.3.2 ,, ¿me pueden ayudar? – Raj

+1

disculpe las soluciones ... al dar más demoras funciona bien para mí ... gracias creednmd – Raj

+0

@creednmd ¿conoce los efectos de las propiedades setEnabled y setPowered? ¿Cuál de estas configuraciones logra qué? – marcus

Cuestiones relacionadas