2011-05-19 14 views
6

我試圖讓運營商名稱:獲得運營商與CoreTelephony名稱與代碼(使用CoreTelephony)僅返回「承運人」

CTTelephonyNetworkInfo *netinfo = [[CTTelephonyNetworkInfo alloc] init]; 
CTCarrier *carrier = [netinfo subscriberCellularProvider]; 
NSLog(@"Carrier Name: %@", [carrier carrierName]); 

它返回「承運人」。如果我去iPhone設置我的運營商的名字是正確的。我的iOS手機是v4.2.1。

我在做什麼錯了?

+0

我也面臨着同樣的issue..didü解決這個問題? @DixieFlatline – iSwaroop 2014-01-17 12:32:32

+0

這蘋果審查安全嗎? – 2016-09-13 06:51:46

回答

2

你真正得到的字符串「承運人」或是字符串空?文件說:

此屬性的值是零,如果下列任何適用的:

設備處於飛行模式。設備中沒有SIM卡。 設備不在蜂窩服務範圍內。

在模擬器中打賭它也是空的。

無論如何,你應該檢查移動網絡代碼,因爲名字很少是正確的(至少在歐洲,運營商來去往往經常改變他們的名字)。

0

由此您可以獲得移動網絡代碼,移動國家代碼。從這些值 您可以指定哪個sim名稱是這個。

CTTelephonyNetworkInfo* info = [[CTTelephonyNetworkInfo alloc] init]; 
CTCarrier* carrier = info.subscriberCellularProvider; 
NSString *mobileCountryCode = carrier.mobileCountryCode; 
NSString *carrierName = carrier.carrierName; 
NSString *isoCountryCode = carrier.isoCountryCode; 
NSString *mobileNetworkCode = carrier.mobileNetworkCode; 

並且您可以爲此指定webservice以指定此參數屬於哪個網絡的運營商名稱。 這些參數可以從這wikipedia唯一標識。

例如我的國家代碼爲「410」,我的載波網絡是「06」和​​它的正確標識我的載體的名稱。

我也stucked在同一問題SameQuestion現在解決