2016-08-10 20 views
0

電話番号の形式について質問があります。私がアンドロイドデバイスの通話記録を読み込もうとすると、両方のフォーマットで数字が得られます。国際版とショート版。私はいつも、この動作は連絡先が連絡先に保存されている形式によって何らかの形で影響を受けると考えていました。しかし、私はもはや確信していません。通話履歴から国際電話番号を取得する方法

電話機がプロバイダからフルフォーマットを取得できない可能性はありますか?そしてそれはそれを私に与えることはできないのですか?この場合、プロバイダがフルフォーマットを提供していない条件の下でいくつかの仕様がありますか?たとえば、同じ国の中にコールがあるとしますか?

携帯電話は常に完全な形式であり、アンドロイドは私からそれを隠しています。

私が取得する必要がある究極の状態は、国際的な形式のすべての電話番号です。しかし、それは私にとって不可能です。私はすべての番号の国情報を持っていません。

答えて

0

はい、プロバイダに依存しています一部は国際番号を送信し、一部は国内番号を送信します。

後者の場合、あなたは最良の推測しかできません。私は非国際的な番号のために以下の方法を取った: 現在のネットワークプロバイダーの国コードを使用してください。それが利用できない場合は、 SIMカードの国コードを使用してください。それが利用できない場合は、 現在のロケールの国コードを使用してください。

やAndroidのコードで:

TelephonyManager tm = (TelephonyManager) getActivity() 
     .getSystemService(Context.TELEPHONY_SERVICE); 
String countryISOCode = tm.getNetworkCountryIso().toUpperCase(Locale.US); 
if (countryISOCode.isEmpty()) { // when not connected fall back to the SIM's country 
    countryISOCode = tm.getSimCountryIso().toUpperCase(Locale.US); 
} 
if (countryISOCode.isEmpty()) { // when even no SIM, get the countrycode from the locale 
    countryISOCode = Locale.getDefault().getCountry(); 
} 
+0

感謝。しかし、連絡先リストはどうですか?それはまたカウントされますか?私はそこに短い形式で番号を持っている場合、それを使用するよりもアンドロイドですか?観測に基づいて、1つのデバイスから両方の形式で番号が取得されるためです。 –

+0

私はそれを完全に理解していません。連絡先リストの電話番号は、あなたがそれを置いた形式です... –

+0

はい、ユーザーは任意の形式を置くことができますが、私たちは国際化する必要があります。質問は、ユーザーが連絡先リストに番号を格納した形式が何とかプロセスの一部であるかどうかです。 –

関連する問題