2012-05-13 54 views
4

我想製作一個按鈕,用戶可以通過該按鈕撥打緊急服務。以編程方式在iPhone上撥打緊急電話

似乎有不被調用做到這一點的任何具體方法,所以我覺得我必須使用

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 

並分配phoneNumber的自己。然而,雖然我知道這是美國的911,英格蘭的999等,但我不確定如何確定用戶在哪個國家 - 我可以檢索他們的語言環境,但是如果他們手動設置他們的語言環境或在他們的國家之外旅行,這將是不可靠的。我可以解決他們的位置,但如果他們關閉了GPS或沒有互聯網連接,它將無法工作。

我聽說112現在是GSM手機上的通用標準 - 它可以在所有的iPhone上使用嗎?

+0

測試這個功能應該是有趣...... –

+1

好像112個在工作至少在大多數國家:[維基百科](http://en.wikipedia.org/wiki/112_(emergency_telephone_number)) –

回答

0

似乎沒有爲任何特定的方法來調用做到這一點,所以我想 我必須使用

[UIApplication的sharedApplication]的OpenURL:[NSURL URLWithString:phoneNumber的];

這是正確的。

關於撥打什麼號碼,我不認爲有全球緊急電話號碼。

8

我不確定如何獲取不同的號碼,但假設您有一組這樣的字符(比如說一個國家的字典),那麼您可以使用網絡信息來決定手機當前位於哪個國家/地區英寸

您可以通過使用CoreTelephony框架,特別是CTTelephonyNetworkInfoCTCarrier類來實現。這是一個小樣本,將獲得當前運營商的ISO 3166-1國家代碼。

CTTelephonyNetworkInfo *network = [[[CTTelephonyNetworkInfo alloc] init] autorelease]; 
CTCarrier *carrier = [network subscriberCellularProvider]; 
NSString *countryCode = [carrier isoCountryCode]; 

現在countryCode將有代碼(據我所知,α-2碼),這是每個國家獨特,here's a list of these

+0

這似乎檢索手機的家庭網絡信息 - 我有一個美國電話(與美國SIM卡)和上午目前在英國,並且它一直在檢索美國的國家代碼,以及310(美國)的移動國家代碼。 – Toby

+0

另外,在調查之後 - 因爲112是GSM標準,我不確定它是否可以與像Verizon/Sprint iPhone這樣的CDMA手機一起工作......我可能會告訴用戶關閉該應用並撥打911避免粘性情況:) – Toby

+0

我的錯誤,我沒有通過文檔閱讀,'subscriberCellularProvider'確實返回家庭網絡。 –