3G сам по себе кажется трудным для поиска. Вы можете узнать, может ли устройство совершать звонки , используя [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"tel://"]]
. Вы можете проверить, может ли устройство подключиться к Интернету, точка (и каким способом это может в настоящее время произойти), используя Достижимость код:
NetworkStatus currentStatus = [[Reachability reachabilityForInternetConnection]
currentReachabilityStatus];
if(currentStatus == kReachableViaWWAN) // 3G
else if(currentStatus == kReachableViaWifi) // ...wifi
else if(currentStatus == kNotReachable) // no connection currently possible
.. но кроме этого, я не думаю, что вы можете проверить наличие модема 3G в устройстве. ***** Если он не может позвонить, и в настоящее время не имеет сотового данные включены и Wi-Fi выключен выключен , вы не сможете узнать, поддерживает ли он 3G.
Альтернативный способ (хотя и не совместимый с прямым обращением, так что вы, вероятно, не хотите этого делать) - сравнить модель устройства с исчерпывающим списком, зная, какие из них имеют модемы 3G, как показано здесь .
***** Согласно ответу Bentech, если вы хотите копаться с именами устройств (это может перестать работать без предварительного предупреждения, если Apple решит изменить имя интерфейса 3g), позвоните по номеру getifaddrs
и проверьте, pdp_ip0
интерфейс.