0

私はsimからユーザーの完全な電話番号を取得するアプリケーションを作成しています。私が持っている電話番号は061555555なので、それをサーバーに保存すると、次のようになります:+38761555555Androidで間違ったモバイルプレフィックスを取得する

ここに私の問題があります。下のコードを使用すると、次のようになります。+387218900032555555 の代わりに061が61になると、218900032となります。私もthisthisを試してみました

MyPhoneNumber = tMgr.getLine1Number(); 

:この行番号が間違った番号を与えます。私はあなたの代わりに "COUNTRY_CODE" の "national_number" を解析していると思う

// Get users phone number 
private String getMyPhoneNumber() { 
    TelephonyManager tMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 

    // Get the SIM country ISO code 
    String simCountry = tMgr.getSimCountryIso().toUpperCase(); 
    // Get the operator code of the active SIM (MCC + MNC) 
    String simOperatorCode = tMgr.getSimOperator(); 
    // Get the name of the SIM operator 
    String simOperatorName = tMgr.getSimOperatorName(); 
    // Get the SIM’s serial number 
    String simSerial = tMgr.getSimSerialNumber(); 

    String MyPhoneNumber = "0000000000"; 

    try { 
     MyPhoneNumber = tMgr.getLine1Number(); 
    } catch (NullPointerException ex) { 
    } 

    if (MyPhoneNumber.equals("")) { 
     MyPhoneNumber = tMgr.getSubscriberId(); 
    } 

    PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); 
    Phonenumber.PhoneNumber countryNumberProto = null; 
    try { 
     countryNumberProto = phoneUtil.parse(MyPhoneNumber, simCountry); 
    } catch (NumberParseException e) { 
     System.err.println("NumberParseException was thrown: " + e.toString()); 
    } 

    String myPhone = phoneUtil.format(countryNumberProto, PhoneNumberUtil.PhoneNumberFormat.E164); 
    // I tried INTERNATIONAL and NATIONAL as well 

    return myPhone; 
} 

答えて

1

は、これは私のコードです。あなたのJSONの解析コードをチェックロジック

{ 
    "country_code": 41, 
    "national_number": 446681800 
} 

https://github.com/googlei18n/libphonenumber

+0

私が取得したものをデバッグすると、次のようになります。「国コード:387ナショナル・ナンバー21890032555555」。 – Kemo

+0

これは38が "simCountry"の国コードではないことを示しています。上のものはあなたのQと同じです。 – VVB

+0

私の国コードは387ですが、私の国内番号(モバイルプレフィックス)は21890032ではなく61から始める必要があります。あなたの答えを正しく理解していない、私は再び私のコードを更新しました。あなたは私のコードエラーを教えてください。 – Kemo

0

をフィールド私は私の設定 - >ステータスをチェックし、私の電話番号が不明であり、代わりに私の電話番号で、それはIMEIを表示するので、私は私がすると思いますが分かりました手動で入力して電話番号を確認させる。

関連する問題