2

この質問は Android に固有のものではありませんが、タグを含めました。

電話番号をある種の標準形式 (理想的には文字列) で格納できるようにする必要があります。そこでは、等価性をすばやくテスト/評価できます (したがって、文字列が理想的です)。

私はすでにいくつかの答えを見つけましたが、最高のものはhttp://developer.android.com/reference/android/telephony/PhoneNumberUtils.htmlを指していました (ライブラリを使用してそれを実行しても問題ありません)

しかし、これでは十分ではありません。さまざまな形式の数値を試してみました。編集可能なファクトリでそのクラスの静的メソッドのいくつかを使用することを学びましたが、期待していたフォームが返されないようです。

私は、電話番号ハッシュのようなものを期待していました。同じ番号を表す2 つの入力は、この「標準形式」で同じものを生成し、この標準形式をダイヤルして問題ないことを期待していました。さまざまな + などはすべて、この標準形の省略形になると思いました。

そのようなものが現在存在するかどうかはわかりません。

「現在の地域」(または国)を意味するものがあることを理解しています。これが、固定電話が市外局番を省略できる理由です。現在の場所の形式を返す関数を期待していました(ただし、これは携帯電話には当てはまりません。たとえば、市外局番を先頭に追加する固定電話回線だった場合、これは (より) 私が存在すると仮定している「標準形式」に近いものになります)

電話システムがどのように機能するかを考えると(私は認めていると思います)、電話番号の完全な形式が存在することはかなり確信しています。地球全体で番号を一意に識別する形式が必要です。ケース (市外局番のない固定電話からの市内通話など) は最適化です。

だから私は2つの質問があります:

電話番号をその番号の一意の文字列に「展開」するにはどうすればよいですか?その番号を書く別の形式 (スペース、0 または +44 など) をこの一意の番号に「展開」しますか?

ISO(/IEC?) (O は何の略ですか?) 草案が公開されている標準文書はありますか? 私はウィキペディアのページを読みました (何年も前に、ウィキをブラウズするのに何時間も費やし、何百ものタブを開きました) が、歴史や書式設定に関する情報をカバーしています)、そのことについてもっと知りたいです私は約8年ほどの間、今では当然のことと思っています。

また、なぜ Windows Phone 8 がタグなのですか? 誇り高き12名のルミナオーナーを取り残されないようにするには?(タグとして提案されました!)

補遺

残念ながら、電話番号を正規化する Android の API には解決策がありません (これには libphonenumber が含まれます)。

http://en.wikipedia.org/wiki/Panel_switch

http://en.wikipedia.org/wiki/Nonblocking_minimal_spanning_switch

http://en.wikipedia.org/wiki/Telephone_exchange

そして、数字の「完全な形式」がないと結論付けることはまだできません。

+44 を 0 などに単純に交換するソリューションをあえて作成するつもりはありません。

4

1 に答える 1

3

あなたの質問を読んだ後、 libphonenumberという Google のライブラリを思い出しました。国際電話番号を解析、フォーマット、保存、および検証するための Google の共通ライブラリです。次のことを行います(そのうちのいくつかは、使用できると思われるものです)。

  • 世界のすべての国/地域の電話番号の解析/フォーマット/検証。
  • getNumberType - 数値自体に基づいて数値のタイプを取得します。固定回線、携帯電話、フリーダイヤル、プレミアム レート、共有料金、VoIP、および個人番号を区別できる (可能な限り)。
  • isNumberMatch - 2 つの数値が同じかどうかの信頼レベルを取得します。
  • isPossibleNumber - 長さ情報のみを使用して、番号が可能な電話番号であるかどうかをすばやく推測します。完全な検証よりもはるかに高速です。
  • isValidNumber - 長さとプレフィックス情報を使用した地域の電話番号の完全な検証。
  • AsYouTypeFormatter - ユーザーが各数字を入力するときに、オンザフライで電話番号をフォーマットします。
  • PhoneNumberOfflineGeocoder - 電話番号に関連する地理情報を提供します。

電話番号の国際形式に関しては、E.164形式が国際電気通信連合によって推奨されています。これは、世界規模の公衆交換電話網の番号計画を定義し、国際電話番号の一般的な形式です (通常+、国コード、市外局番、番号が続く統計情報)。

上記のライブラリを使用して、電話番号とともに国際コードを指定すると、すべての電話番号の有効性を確認できます (1米国とカナダの例)。コードを持っていなくても、番号を確認したい国の名前がわかっている場合は、検証することもできます。このライブラリを使用して、1 つの標準E.164形式のすべての有効な数値を変換することもできます。その特定の国の Local National 形式で数値を「拡張」することもできます。String として保存することもできます。PhoneNumberUtils質問で言及したことは使用しますが。

これがあなたが探しているものかどうかはわかりませんが、この情報があなたのお役に立てば幸いです.

于 2013-09-13T17:23:32.190 に答える