Necesito un código obj-c de muestra que escanea y se conecta a wifi. La API privada está bien, no voy a publicar la aplicación en la tienda de aplicaciones. Encontré la aplicación en cydia llamada "WiFiFoFum" que puede escanear y conectar, desafortunadamente no puedo encontrar el código fuente de esa aplicación. ¿Alguien sabe dónde puedo encontrar ese código? GraciasDónde encuentro código iOS Obj-C para escanear y conectarme a wifi (API privada)
Respuesta
encontrado la respuesta aquí: http://code.google.com/p/iphone-wireless/issues/detail?id=20
funciona perfectamente bien en mi iPhone 4 v5.1.1. Puedo escanear y conectarme a redes. Puede descargar el proyecto aquí https://github.com/devinshively/wifiAssociate
Aquí es una cita:
Apple80211Associate sigue trabajando (al menos en 3.1.2). Entre el iPhone OS 2 y 3, el marco ha cambiado de nombre, por lo que debe enlazar las funciones de la siguiente manera:
void *airportHandle;
int (*Apple80211Open)(void *);
int (*Apple80211BindToInterface)(void *, NSString *);
int (*Apple80211Close)(void *);
int (*Apple80211Info)(void *, NSDictionary**);
int (*Apple80211Associate)(void *, NSDictionary*, void *);
int (*Apple80211Scan)(void *, NSArray **, void *);
libHandle = dlopen("/System/Library/SystemConfiguration/WiFiManager.bundle/WiFiManager", RTLD_LAZY);
Apple80211Open = dlsym(libHandle, "Apple80211Open");
Apple80211BindToInterface = dlsym(libHandle, "Apple80211BindToInterface");
Apple80211Scan = dlsym(libHandle, "Apple80211Scan");
Apple80211Close = dlsym(libHandle, "Apple80211Close");
Apple80211Info = dlsym(libHandle, "Apple80211GetInfoCopy");
Apple80211Associate = dlsym(libHandle, "Apple80211Associate");
El cambio más significativo de V2 a V3 es el parámetro SCAN_RSSI_THRESHOLD (utilizado para la función de exploración) . Suele tomar un número positivo, lejos del dB físico debería haber sido
y ahora toma los dB de la señal. Si usted hace uso de ella, se puede establecer a -100: Aquí está cortado con tijeras un código (cereza recogido de mi código, así como no probada es):
void *airportHandle;
NSArray *keys = [NSArray arrayWithObjects:@"SCAN_RSSI_THRESHOLD", @"SSID_STR", nil];
NSArray *objects = [NSArray arrayWithObjects:[NSNumber numberWithInt:-100], ssid, nil];
NSDictionary *params = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
NSArray *found;
int openResult = Apple80211Open(&airportHandle);
NSLog(@"Openning wifi interface %@", (openResult == [email protected]"succeeded":@"failed"));
int bindResult = Apple80211BindToInterface(airportHandle, @IF_NAME);
int scanResult = Apple80211Scan(airportHandle, &found, params);
NSDictionary *network;
// get the first network found
network = [found objectAtIndex:0];
int associateResult = Apple80211Associate(airportHandle, network,NULL);
Apple80211Close(airportHandle);
Objective-C está compilado, por lo que no puede obtener el código fuente de los programas como en un lenguaje de scripting. Puede verificar si "WiFiFoFum" es de código abierto y es posible que pueda descargar la fuente del github del autor. De lo contrario se puede ver en los marcos privados en el directorio /System/Library/PrivateFrameworks
y volcar los ficheros de cabecera de ellos usando class-dump-z como esto
$ class-dump-z -H <private framework>
sin los corchetes angulares por supuesto.
edición:
acaba de comprobar, no se ve como es de código abierto.
No soy muy bueno en ingeniería inversa, por lo que incluso si obtengo archivos de encabezado (están disponibles para descargar), simplemente no sé cómo usarlos. Esos métodos toman algunos parámetros (estructuras), y no sé cuáles son. Es por eso que me gustaría tener un ejemplo de código listo para usar en obj-c – almas
Bueno, no se puede ver la implementación de los métodos, se llaman privados (y no documentados) por alguna razón. Los nombres y parámetros suelen ser un buen indicador de lo que hace la función. Busque cualquier estructura de la que no esté seguro y, si realmente lo necesita, puede usar el sustrato móvil para escribir un ajuste para enganchar estos métodos y encontrar más información sobre lo que se les está transmitiendo y lo que están devolviendo. –
- 1. ¿Dónde encuentro la clave de API y el secreto de API para Facebook?
- 2. iOS ¿Cómo utilizar la API privada?
- 3. Documentación de API privada de iOS
- 4. Cómo detectar y conectarme a una red Wifi programáticamente usando el SDK de Apple
- 5. iOS WiFi red switching
- 6. ¿Dónde encuentro Microsoft.VisualStudio.DebuggerVisualizers?
- 7. lista de API privada
- 8. Seguridad para API REST "privada"
- 9. Bluetooth/WiFi entre Mac y iOS aplicación
- 10. Conectar a Open WiFi
- 11. ¿Dónde encuentro System.Windows.Interactivity como redistribuible?
- 12. ¿Dónde encuentro el código de biblioteca estándar de Python?
- 13. use 3g para internet cuando esté conectado a wifi adhoc (usando API privadas)
- 14. ¿Puedo conectarme a una API de Java con C#?
- 15. ¿Hay alguna forma de activar y desactivar el bluetooth y/o wifi mediante programación en iOS?
- 16. iOS detectar puntos de conexión WiFi o dispositivos Bluetooth
- 17. ¿Cómo uso Jconsole para conectarme a EC2?
- 18. API para el escáner de código de barras IOS PDF417
- 19. Escanear redes Wifi a través de Object-C en una aplicación Mac OS X
- 20. ¿Dónde encuentro la máquina épsilon en C#?
- 21. ¿Dónde encuentro los registros de System.out.println()?
- 22. ¿Cómo compilar código objc en Linux?
- 23. Uso de C# o Powershell para escanear todas las redes inalámbricas disponibles y conectar a un SSID específico
- 24. Generación de código para iOS y Android
- 25. ¿Hay una mejor herramienta para escanear y escanear HTML que CGI para Ruby?
- 26. Escanee y conéctese a redes WiFi usando Java
- 27. ¿cómo puedo conectarme a un mongodb del código de Ruby?
- 28. ¿Dónde encuentro la definición de size_t?
- 29. No puedo conectarme a FTP en Gingerbread
- 30. ¿Dónde puedo encontrar una biblioteca libre .Net (C#) que pueda utilizar para escanear documentos y OCR?
cualquier actualización sobre esto para iOS 8? Probé https://github.com/devinshively/wifiAssociate, no funciona en iOS 8. – divyum
No, no lo he probado en iOS 8. – almas