Request user's phone number (supports dual sim) and/or consent to read SMS without adding any permissions, using Android's SMS User Consent API This package is actually the same package SMS User Consent API but change chanel type from private to public to can dispose chanel
1] Create an instance, optionally supply phone number listener and sms listener
SmsUserConsent smsUserConsent = SmsUserConsent(
// optionally, do something when user selects a number.
// You can even add/update this listener later on by simply
// calling smsUserConsent.updatePhoneNumberListener(updatedListener)
phoneNumberListener: () {},
// optionally, do something when user receives sms.
// You can even add/update this listener later on by simply
// calling smsUserConsent.updateSmsListener(updatedListener)
smsListener: () {}
);
2a] OPTIONAL : Request user's phone number
smsUserConsent.requestPhoneNumber();
Once the user selects a phone number, it can be accessed as
smsUserConsent.selectedPhoneNumber;
2b] OPTIONAL : Request to receive SMS
smsUserConsent.requestSms();
or you can specify the phone number you wish to capture the SMS from
smsUserConsent.requestSms(senderPhoneNumber: sender_number);
Once the user receives a SMS and the user taps Allow, it can be accessed as
smsUserConsent.receivedSms;
3] Finally, dispose the instance
smsUserConsent.dispose();
As per the SMS User Consent API, message will be received by the plugin only if it meets these criteria:
- The message contains a 4-10 character alphanumeric string with at least one number.
- The message was sent by a phone number that's not in the user's contacts.
- If you specified the sender's phone number, the message was sent by that number.
- Found a bug or idea to improve the plugin? Send a PR.
- Found this plugin helpful and want to thank me? I love ☕
- Want to hire me for a gig? Let's talk on LinkedIn
MIT © 2020 Harsh P