Skip to content

Instantly share code, notes, and snippets.

View nowshad-hasan's full-sized avatar
🎯
Focusing

Nowshad Hasan nowshad-hasan

🎯
Focusing
View GitHub Profile
implementation 'com.google.android.gms:play-services-auth:17.0.0'
implementation 'com.google.android.gms:play-services-auth-api-phone:17.1.0'
implementation 'com.google.android.gms:play-services-auth:17.0.0'
public interface SMSListener {
void onSuccess(String message);
void onError(String message);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// This block for request hint --> getting user phone number.
if (requestCode == RESOLVE_HINT) {
if (resultCode == RESULT_OK) {
Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
if (credential != null) {
// credential.getId(); <-- will need to process phone number string
// sendPhoneNumberToServer(credential.getId());
// Start listening for SMS User Consent broadcasts from senderPhoneNumber
// The Task<Void> will be successful if SmsRetriever was able to start
// SMS User Consent, and will error if there was an error starting.
SmsRetriever.getClient(context).startSmsUserConsent(senderPhoneNumber /* or null */);
<receiver android:name=".MySMSBroadcastReceiver" android:exported="true">
<intent-filter>
<action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED"/>
</intent-filter>
</receiver>
SmsRetrieverClient client = SmsRetriever.getClient(this); // starting the SmsRetriever API
Task<Void> task = client.startSmsRetriever();
task.addOnSuccessListener(aVoid -> {
MySMSBroadcastReceiver.initSMSListener(new SMSListener() {
@Override
public void onSuccess(String message) {
if (message != null) {
// get the message here
}
/**
* BroadcastReceiver to wait for SMS messages. This can be registered either
* in the AndroidManifest or at runtime. Should filter Intents on
* SmsRetriever.SMS_RETRIEVED_ACTION.
*/
public class MySMSBroadcastReceiver extends BroadcastReceiver {
private static SMSListener smsListener;
@Override
public void onReceive(Context context, Intent intent) {
// Obtain the phone number from the result
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESOLVE_HINT) {
if (resultCode == RESULT_OK) {
Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
// credential.getId(); <-- will need to process phone number string
}
}
private void requestHint() {
HintRequest hintRequest = new HintRequest.Builder()
.setPhoneNumberIdentifierSupported(true)
.build();
PendingIntent intent = Credentials.getClient(this).getHintPickerIntent(hintRequest);
try {
startIntentSenderForResult(intent.getIntentSender(),