Obtenga notificación de disponibilidad de Wi-Fi para dispositivo habilitado para Wi-Fi

Tengo un adaptador de dispositivo OBD2 que admite Wi-Fi. Ahora quiero recibir notifications acerca de Wi-Fi con el dispositivo OBD2 disponible, así que puedo comenzar a hablar con ese dispositivo y leer datos, y Wi-Fi con el dispositivo OBD2 no está disponible.

Cuando el dispositivo está conectado al puerto OBD2, wifi está transmitiendo. He utilizado el código de ejemplo de la class de scope. Pero no puedo recibir la notificación adecuada.

Intenté con el código SimplePingHelper. Funciona bien con el hilo principal, pero no funciona con hilo de background. SimplePingHelper Código fuente

El código SimplePingHelper realmente usa el código de muestra SimplePing de Apple. Código SimplePing por Apple

¿Me puede ayudar en este código que funcione con hilo de background? O ¿Qué otras forms puedo comprobar para get esta notificación?

`Usar la class de accesibilidad pnetworkingeterminada de Apple:

Descargue el proyecto de accesibilidad desde este enlace

Copie el file Reachability.h y Reachability.m en su proyecto.

Y configure este método en el file de delegado de la aplicación.

– (void) initializeRechabilityObeserver {// Cambia el nombre de host aquí para cambiar el server de tu monitor hostReach = [Alcanceabilidad reachabilityWithHostName: @ "www.apple.com http://www.apple.com "]; [hostReach startNotifier]; // [self updateInterfaceWithReachability: hostReach];

internetReach = [Reachability reachabilityForInternetConnection]; [internetReach startNotifier]; //[self updateInterfaceWithReachability: internetReach]; wifiReach = [Reachability reachabilityForLocalWiFi] ; [wifiReach startNotifier]; //[self updateInterfaceWithReachability: wifiReach]; 

}

La accesibilidad solo detecta la disponibilidad de la networking de su dispositivo iOS en sí.
Además, Apple no permite que las aplicaciones realicen ninguna exploración de Wi-Fi, por lo que no hay API pública para hacerlo.

¿Su adaptador de dispositivo OBD2 está conectado físicamente al dispositivo iOS por cable o por Wi-Fi local?
Creo que deberías enfocarte en cómo comunicarte con el dispositivo externo OBD2 en iOS.

Usa la class de accesibilidad pnetworkingeterminada de Apple:

Descargue el proyecto de accesibilidad desde este enlace

Copie el file Reachability.h y Reachability.m en su proyecto.

Y configure este método en el file de delegado de la aplicación.

 -(void)initializeRechabilityObeserver { //Change the host name here to change the server your monitoring hostReach = [Reachability reachabilityWithHostName: @"www.apple.com <http://www.apple.com>"]; [hostReach startNotifier]; //[self updateInterfaceWithReachability: hostReach]; internetReach = [Reachability reachabilityForInternetConnection]; [internetReach startNotifier]; //[self updateInterfaceWithReachability: internetReach]; wifiReach = [Reachability reachabilityForLocalWiFi] ; [wifiReach startNotifier]; //[self updateInterfaceWithReachability: wifiReach]; } 

Para get la notificación de cambio de Alcance, utilice el siguiente código:

Agregue este método de notificación en la aplicación didFinishLaunching

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; internetReachable = [Reachability reachabilityForInternetConnection] ; [internetReachable startNotifier]; } 

y también agregue este método:

 - (void)reachabilityChanged: (NSNotification* )note { NSLog(@"Reachability changed"); Reachability* curReach = [note object]; NSParameterAssert([curReach isKindOfClass: [Reachability class]]); [self updateInterfaceWithReachability: curReach]; }