Как получить номер мобильного телефона без кода страны при использовании HintRequest для номера мобильного телефона в Android

Я использую этот код для получения номера мобильного телефона. но проблема в том, что номер, который я получаю, привязан к коду страны. Я хочу номер без кода страны (только номер мобильного телефона). Я не могу сократить длину номера, потому что все страны имеют разную длину кода страны.

Итак, что я могу сделать для этого.

  public void getHintPhoneNumber() {
    HintRequest hintRequest =
            new HintRequest.Builder()
                    .setPhoneNumberIdentifierSupported(true)
                    .build();
    PendingIntent mIntent = Auth.CredentialsApi.getHintPickerIntent(mGoogleApiClient, hintRequest);
    try {
        startIntentSenderForResult(mIntent.getIntentSender(), RESOLVE_HINT, null, 0, 0, 0);
    } catch (IntentSender.SendIntentException e) {
        e.printStackTrace();
    }
}

И этот код для установки мобильного номера.

@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    //Result if we want hint number
    if (requestCode == RESOLVE_HINT) {
        if (resultCode == Activity.RESULT_OK) {
            if (data != null) {
                Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
                // credential.getId();  <-- will need to process phone number string
                Log.v("wkdcbgwc",credential.getId());
                etMobile.setText(credential.getId());
            }

        }
    }
}

Я понятия не имею, как это сделать.


person Mega Infomatix    schedule 30.07.2019    source источник


Ответы (1)


Я знаю, что немного опоздал с ответом, но это может помочь другим, ищущим ответ на тот же вопрос. Просто замените этот код внутри вашего onActivityResult

if (data != null) {
   Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
   if (credential.getId().startsWith("+")) {
      if (credential.getId().length() == 13) {
         etMobile.setText(credential.getId().substring(3));
      } else if (credential.getId().length() == 14) {
           etMobile.setText(credential.getId().substring(4));
      }
   } else {
       etMobile.setText(credential.getId());
   }
}
person Kartik Agarwal    schedule 24.04.2020