I am creating an OTP login screen where I need to retrive device Phone number , I used HintRequest ealier and it is now deprecated. now I used GetPhoneNumberHintIntentRequest and getting an error :
com.google.android.gms.common.api.ApiException: 16: No phone number is found on this device.
please guide
my code :
public void getHintPhoneNumber() {
Log.d("getHintPhoneNumber","getHintPhoneNumber");
GetPhoneNumberHintIntentRequest request = GetPhoneNumberHintIntentRequest.builder().build();
Identity.getSignInClient(getActivity())
.getPhoneNumberHintIntent(request)
.addOnSuccessListener( result -> {
try {
phoneNumberHintIntentResultLauncher.launch(result.getIntentSender());
} catch(Exception e) {
e.printStackTrace();
}
})
.addOnFailureListener(e -> {
e.printStackTrace();
});
}
ActivityResultLauncher phoneNumberHintIntentResultLauncher =
registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
new ActivityResultCallback<ActivityResult>() {
@Override
public void onActivityResult(ActivityResult result) {
try {
phoneNumber = Identity.getSignInClient(getActivity()).getPhoneNumberFromIntent(result.getData());
if (!phoneNumber.isEmpty()) {
phonenumber_error.setVisibility(View.GONE);
et_otp_InputMobile.setText(phoneNumber);
} else {
setErrorField("Please enter mobile Number", phonenumber_error);
}
} catch(Exception e) {
}
}
});