0

電話がかかってきているのが国際的なものかどうかを確認したいのですが。TelephonyManager.getLine1Number()を使用して取得したSIM番号と、TelephonyManager.getSimCountryIso()を使用して取得したSIMカードの国コードISOを持っています。

とにかく、電話をかけている番号の国番号を見つけることができますか?

4

1 に答える 1

0

あなたの国のISOtelephonyManager.getSimCountryIso()を返すので、「呼び出しが行われている国」を判断するのに役立つとは思いません。

さらに、ISD コードの長さは国によって異なります。一部の国では 1、一部の国では 2、一部の国では 3、その他の国では 4 です。したがって、以下に示すように、発信番号からこれらの長さの 4 つの異なるキーを抽出/作成する必要があります。

発信番号が +91-XXX-XXX-XXXX だとします。次に、次のように 4 つのキーを作成します。

  1. 9 (1桁キー)
  2. 91 (2桁キー)
  3. 91X (3桁キー)
  4. 91XX(4桁キー)

次に、次の 4 つのキーのいずれかがこのリストに存在するかどうかを確認します: ISO List

[編集: 代替ソリューション]

繰り返しますが、かけられている通話が国際通話かどうかを判断するだけでよい場合は、以下の条件を簡単に確認できます。

if(outgoing-number `startswith` "00" || outgoing-number does not `startswith` your "country's-ISD-code") {
    //it's an international call;
} else {
    //it's a domestic call;
}
于 2012-10-30T04:45:02.580 に答える