iPhone active network type (2G, 3G, WiFi)

iphone, networking, wifi

Solution

The `SCNetworkReachability` interface can help you with that. Basically, you create a so-called reachability reference and then call `SCNetworkReachabilityGetFlags` on it to get information about the connection.

The returned flags include `kSCNetworkReachabilityFlagsIsWWAN`, which tells you whether you are connected via WiFi or the cell network. AFAIK it cannot be used to tell the difference between 2G and 3G, though.

See Apple's Reachability sample app for an implementation. In most cases, you should be able to directly use the included `Reachability` class in your project.

Problem

Does anyone know how to determine the active network type at the specific moment: 2G, 3G or WiFi. For example, at a specific moment there could be enabled 3G, but the used network type could be 2G.

Original source