I am using this code for getting mobile number. but the problem is the number I am getting is attached with its country code. I want a number without country code (only mobile number). I cannot cut the length of number because all country have different length of country code.
So what can I do for this.
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();
}
}
And this code for setting mobile number.
@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());
}
}
}
}
I do not have any idea how to do this.
I know I am a little late to answer but this may help others seeking an answer for the same question. Just replace this code inside your 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());
}
}
Replace your onActivityResult with this:-
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESOLVE_HINT) {
if (resultCode == Activity.RESULT_OK) {
if (data != null) {
Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
if (credential.getId().startsWith("+")) {
switch(credential.getId().length()){
case 12:
etMobile.setText(credential.getId().substring(2));
break;
case 13:
etMobile.setText(credential.getId().substring(3));
break;
case 14:
etMobile.setText(credential.getId().substring(4));
break;
default:
Toast.makeText(this, "Please enter your phone number manually!",
Toast.LENGTH_LONG).show();
break;
}
} else {
etMobile.setText(credential.getId());
}
}
}
}
}
If you want to separate country code & mobile number:-
@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);
if (credential.getId().startsWith("+")) {
switch(credential.getId().length()){
case 12:
inputCountryCode.setText(credential.getId().substring(1,2));
inputMobileNumber.setText(credential.getId().substring(2));
break;
case 13:
inputCountryCode.setText(credential.getId().substring(1,3));
inputMobileNumber.setText(credential.getId().substring(3));
break;
case 14:
inputCountryCode.setText(credential.getId().substring(1,4));
inputMobileNumber.setText(credential.getId().substring(4));
break;
default:
Toast.makeText(this, "Please enter your phone number manually!",
Toast.LENGTH_LONG).show();
break;
}
} else {
inputMobileNumber.setText(credential.getId());
}
}
}
}
}
you can take last 10 digits of the result it?.takeLast(10)
to release 91/+91
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.