2017-01-29 3 views
0

Я пытаюсь получить страну telephonic код по чтению геолокация при запуске приложения.Получение телефонного кода страны при запуске приложения

Но я бы получил только широта и долгота. Как получить телефонный код из геолокации.

Я сделал это далеко см:

Сначала в Струнный XML Я хотел бы создать массив как этот

<string-array name="CountryCodes" > 
<item>91,IN</item> 
..... 
..... 
..... 
</string-array> 

public String GetCountryZipCode(){ 
    String CountryID=""; 
    String CountryZipCode=""; 

    TelephonyManager manager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE); 
    //getNetworkCountryIso 
    CountryID= manager.getSimCountryIso().toUpperCase(); 
    String[] rl=this.getResources().getStringArray(R.array.CountryCodes); 
    for(int i=0;i<rl.length;i++){ 
     String[] g=rl[i].split(","); 
     if(g[1].trim().equals(CountryID.trim())){ 
      CountryZipCode=g[0]; 
      break; 
     } 
    } 
    return CountryZipCode; 
} 

Теперь предположим, что я прочитал геолокации, но как бы я знать название страны или код страны (более легко, если я получаю это)

+0

Пожалуйста, уточните свой вопрос. –

+0

@HarisQureshi Я использую sms-шлюз для отправки otp на международном уровне? и международный номер требует телефонный код страны. – SamH67

ответ

0

Согласно документации getSimCountryIso

Возвращает код страны ISO, эквивалентный коду страны поставщика SIM-карты.

Он имеет некоторые (странное) поведение взглянуть на Unexpected getSimCountryIso() behaviour за лучший опыт, который вы должны использовать Mobile country code (MCC). Вы можете найти MCC в андроиде с помощью кода ниже

TelephonyManager tel = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String networkOperator = tel.getNetworkOperator(); 
if (!TextUtils.isEmpty(networkOperator)) { 
    int mcc = Integer.parseInt(networkOperator.substring(0, 3)); 
    int mnc = Integer.parseInt(networkOperator.substring(3)); 
} 

Вы можете найти список MCC here и here. Сохраните список MCC (с любого из вышеуказанных ссылок) в своем приложении и найдите код страны MCC или MCCMNC.

+0

Для проверки перевода между Harish и otp необходим телефонный код страны -: 91 для Индии. Мне трудно понять, что такое MCC? – SamH67

Смежные вопросы