ユーザーが理論的に電話をかけることができるかどうかを知る必要があります。
ユーザーのiPhoneが携帯通信会社のネットワークに接続できるときに(Cocoa iOSを使用して)「trueを返す」方法を知っている人はいますか?(インターネットではありません)
または、ユーザーが持っている「受信バーの数」をプログラムで伝える方法はありますか?
ユーザーが理論的に電話をかけることができるかどうかを知る必要があります。
ユーザーのiPhoneが携帯通信会社のネットワークに接続できるときに(Cocoa iOSを使用して)「trueを返す」方法を知っている人はいますか?(インターネットではありません)
または、ユーザーが持っている「受信バーの数」をプログラムで伝える方法はありますか?
アプリケーションをCoreTelephony.frameworkにリンクする
CTCarrierオブジェクトをチェックして、電話プロバイダーとの接続を必要とする一部のプロパティに対して有効な結果 (!=nil) があるかどうかを確認できます。
たとえば、以下は CTCarrier のmobileNetworkCodeプロパティをチェックするコードの抜粋です。このプロパティは、デバイスが電話プロバイダーに接続されている場合にのみ != nil です (目的のタスク、電話をかけることができるユーザーは、上記の状態に含まれます)。
CTTelephonyNetworkInfo *netInfo = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier *carrier = [netInfo subscriberCellularProvider];
//The value for this property is nil if any of the following apply:
// - The device is in Airplane mode.
// - There is no SIM card in the device.
// - The device is outside of cellular service range.
NSString *mnc = [carrier mobileNetworkCode];
if(!mnc) {
//if we're here, than probably we're disconnected from the Phone Provider
}
netInfo.subscriberCellularProviderDidUpdateNotifier = ^ (CTCarrier * carrier) {
//this block is executed each time we've a change to the state of the carrier
//be sure to check the carrier object, in order to see is we're connected to a
//phone provider.
};
詳細については、Apple Developer Documentation URL: http://developer.apple.com/library/IOs/#documentation/NetworkingInternet/Reference/CTCarrier/Reference/Reference.htmlを参照してください。