Ios 通过编程在iPhone上拨打紧急电话

Ios 通过编程在iPhone上拨打紧急电话,ios,iphone,objective-c,Ios,Iphone,Objective C,我想做一个按钮,用户可以用它拨打紧急服务 似乎没有任何特定的方法可以调用来实现这一点,所以我认为我必须使用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 然后自己分配电话号码。然而,虽然我知道这是美国的911,英国的999等等,但我不确定如何确定用户所在的国家-我可以检索他们的语言环境,但如果他们手动设置语言环境或在国外旅行,这将是不可靠的。我可以确定他们的位置,但如果他们关闭了GP

我想做一个按钮,用户可以用它拨打紧急服务

似乎没有任何特定的方法可以调用来实现这一点,所以我认为我必须使用

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]];
然后自己分配电话号码。然而,虽然我知道这是美国的911,英国的999等等,但我不确定如何确定用户所在的国家-我可以检索他们的语言环境,但如果他们手动设置语言环境或在国外旅行,这将是不可靠的。我可以确定他们的位置,但如果他们关闭了GPS或没有互联网连接,这将不起作用

我听说112现在是GSM手机的通用标准-它能在所有iPhone上使用吗

似乎没有任何特定的方法可以调用来实现这一点,所以我 我想我必须使用

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

这是正确的


关于拨打哪个号码,我认为没有全球紧急电话号码。

我不确定如何获得不同的号码,但假设您有一组号码(比如按国家分类的字典),那么您可以使用网络信息来确定手机当前位于哪个国家

您可以通过使用CoreTelephony框架,特别是
CTTelephonyNetworkInfo
CTCarrier
类来实现这一点。这是一个小样本,可以获得当前承运人的ISO 3166-1国家代码

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

现在,
countryCode
将拥有代码(据我所知,是Alpha-2代码),这是每个国家独有的,

测试这一功能应该很有趣……似乎112至少在大多数国家都能工作:这似乎可以检索手机的家庭网络信息-我有一部美国手机(带有美国SIM卡),目前在英国,它不断地检索我们的国家代码,以及310(美国)的移动国家代码。此外,在调查之后——由于112是GSM标准,我不确定它是否适用于像Verizon/Sprint iPhone这样的CDMA手机……我可能只是告诉用户关闭应用程序并拨打911以避免棘手的情况:)我的错误,我没有阅读文档,“subscriberCellularProvider”确实返回了家庭网络。