From iPhone Development Wiki
Revision as of 00:21, 28 February 2013 by Cykey (talk | contribs)
Jump to: navigation, search
Private Framework
Availabile 3.0 – present

MobileWiFi is the framework that manages WiFi functionality on iOS. It replaces the obsolete Apple80211 framework. MobileWiFi.framework has a C API, and a unfinished reverse-engineered header is available here.

Note: Your program needs the entitlement to use any of the WiFiManager functions.

Retrieving a list of known networks

#include <MobileWiFi.h>

WiFiManagerRef manager = WiFiManagerClientCreate();

CFArrayRef networks = WiFiManagerClientCopyNetworks(manager);

NSLog(@"networks: %@", networks);


Getting the WiFi signal strength

#include <math.h>
#include <MobileWiFi.h>

// We're not using the manager here but you need to create one for this code to work.
WiFiManagerRef manager = WiFiManagerClientCreate();
CFArrayRef devices = WiFiManagerClientCopyDevices();

WiFiDeviceClientRef client = (WiFiDeviceClientRef)CFArrayGetValueAtIndex(devices, 0);
CFNumberRef RSSI = (CFNumberRef)WiFiDeviceClientCopyProperty(client, kWiFiScaledRSSIKey);

float strength;
CFNumberGetValue(RSSI, kCFNumberFloatType, &strength);

strength = strength * 100;

// Round to the nearest integer.
strength = ceilf(strength);

// Convert to a negative number.
strength = strength * -1;

NSLog(@"WiFi signal strength: %f dBm", strength);