2012-05-13 13 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

これは、電話のホームネットワーク情報を取得するようです - 私は米国の携帯電話を持っています現在は英国にあります。また、国別コードでは米国と引き続き、国番号は310(米国)です。 – Toby

+0

また、それを調べたところ、112がGSM標準であるため、Verizon/SprintのiPhoneのようなCDMA携帯電話でも動作するのかどうかはわかりません。私はアプリを終了し、911にスティッキーな状況を避ける:) – Toby

+0

私の間違い、私はドキュメントを読んでいない、 'subscriberCellularProvider'本当にホームネットワークを返します。 –

関連する問題