sms_consent_for_otp_autofill
Flutter plugin for otp auto fill, used SMS Consent API to retrieve the otp of a single SMS message if the user gives permission.No permission required in manifest. For Android, that's where this package is useful. No need for iOS, using Android's SMS User Consent API
Screenshots
Steps to use
1] Create an instance, optionally supply phone number listener and sms listener
import 'package:sms_consent_for_otp_autofill/sms_consent_for_otp_autofill.dart';
SmsConsentForOtpAutofill smsConsentForOtpAutoFill = SmsConsentForOtpAutofill(
// optionally, do something when user selects a number.
// You can even add/update this listener later on by simply
// calling smsUserConsent.updatePhoneNumberListener(updatedListener)
phoneNumberListener: (number) {},
// optionally, do something when user receives sms.
// You can even add/update this listener later on by simply
// calling smsUserConsent.updateSmsListener(updatedListener)
smsListener: (otpcode) {}
);
2a] OPTIONAL : Request user's phone number
smsConsentForOtpAutoFill.requestPhoneNumber();
Once the user selects a phone number, it can be accessed as
smsConsentForOtpAutoFill.selectedPhoneNumber;
2b] OPTIONAL : Request to receive SMS
smsConsentForOtpAutoFill.requestSms();
or you can specify the phone number you wish to capture the SMS from
smsConsentForOtpAutoFill.requestSms(senderPhoneNumber: sender_number);
Once the user receives a SMS and the user taps Allow, it can be accessed as
smsConsentForOtpAutoFill.receivedSms;
3] Finally, dispose the instance
smsConsentForOtpAutoFill.dispose();
Note
As per the SMS User Consent API, otp will be received by the plugin only if it meets these criteria:
- The message contains 6-10 numbers.
- 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.