Определить, есть ли у телефона услуга сотовой связи iOS 8
Я пытаюсь проверить, имеет ли устройство доступ к сотовой связи (не данные), и если да, то разрешить ему сделать звонок. Я сейчас пользуюсь [[UIApplication sharedApplication] canOpenURL:numberURL]
просто чтобы узнать, может ли устройство совершать телефонные звонки, которые, очевидно, вернутся YES
если это iPhone или другое устройство, как я читаю. В настоящее время я тестирую устройство, которое не имеет услуг оператора. Любая помощь по этому вопросу будет принята с благодарностью, спасибо.
3 ответа
Насколько я знаю, вы можете играть с информацией о носителе вашего телефона с помощью инфраструктуры CoreTelephony.
Проверьте сами: https://developer.apple.com/library/prerelease/ios/documentation/NetworkingInternet/Reference/CoreTelephonyFrameworkReference/index.html
РЕДАКТИРОВАТЬ:
Попробуй классCTCarrier
и посмотрим, решит ли это вашу проблему.
@property(readonly, retain) CTCarrier *subscriberCellularProvider
Discussion
A CTCarrier object that contains information about the user’s home cellular service provider—that is, the provider with whom the user has an account. This information is available immediately after you allocate and initialize the CTTelephonyNetworkInfo object.
Вы можете проверить, есть ли на устройстве носитель с его сим-картой:
`CTTelephonyNetworkInfo telephonyNetworkInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier carrier = [telephonyNetworkInfo subscriberCellularProvider]; `
проверьте наличие любого из следующих свойств на carrier
чтобы узнать, есть ли на телефоне оператор:
carrier.carrierName
carrier.carriermobileCountryCode
carrier.mobileNetworkCode
carrier.isoCountryCode
Вы, вероятно, ищете что-то вроде Reachability. Вы можете использовать этот класс для определения подключения к сети и средств, с помощью которых устройство подключено, либо ReachableViaWiFi
или же ReachableViaWWAN
,
При работе с Reachability есть одно предостережение, о котором вам следует знать перед его использованием. Иногда достижимость сообщает, что нет соединения, но соединение может фактически быть установлено, если был предпринят запрос. Лучше всего использовать Reachability после сбоя запроса, когда устройство может быть уверено, что оно не может установить соединение, и вы можете сообщить об этом пользователю.