iPhones OS: how to programmatically differentiate iPad 3G from iPad Wi-Fi?

ipad, iphone

Solution

I assume that other than 3G networking capabilities, there is no need to make a difference. Using Reachability.h class provided by Apple you can check if internet connection is available and if it is Mobile network or Wireless network.

Sample code here: http://developer.apple.com/iphone/library/samplecode/Reachability/Introduction/Intro.html

The Reachability class provides the following values:

`ReachableViaCarrierDataNetwork`, `ReachableViaWiFiNetwork` or `NotReachable`.

Problem

Is there any property or other mechanism in iPhone OS to check during runtime whether application is running on iPad 3G or iPad Wi-Fi? Seems like UIDevice class does not provide anything like that. My application is using internet access extensively and I would like to explicitly warn user that on 3G delays or additional costs can be expected OR even ban application from running on iPad 3G with some fancy popup.

Original source