advanced_sms_log 1.0.1 copy "advanced_sms_log: ^1.0.1" to clipboard
advanced_sms_log: ^1.0.1 copied to clipboard

PlatformAndroid

Android SMS log reader with real-time incoming stream, optional store observer, SMS send status callbacks, and OTP via SMS User Consent API.

๐Ÿ“ฉ advanced_sms_log #

โ— Android SMS log reader (inbox/sent/etc)
โ— Real-time incoming SMS listener (stream)
โ— OTP read (User Consent API) โ€” Play-safe

Platforms: โœ… Android | โŒ iOS (not supported by iOS APIs)


๐Ÿ“ธ Screenshots #

advanced_sms_log screenshot


โœจ Features #

โœ… 1) SMS log reader #

  • Read SMS logs:
    • Inbox / Sent / Draft / Outbox / Failed / Queued / All
  • Filters:
    • address, bodyContains, threadId, date range from/to
  • Pagination:
    • limit + offset
  • Best-effort SIM info:
    • subId (if available on device/ROM)

โœ… 2) Real-time listener (stream) #

  • Incoming SMS events:
    • Works while your app process is alive
    • Uses BroadcastReceiver for SMS_RECEIVED
  • Optional store change watcher:
    • ContentObserver on content://sms
    • Emits store_changed events (and can fetch latest message if READ_SMS granted)

โœ… 3) Send SMS + status callbacks (optional) #

  • Send SMS through this plugin (uses SmsManager)
  • Get sent / delivered callbacks via events stream
    (Status callbacks are only guaranteed for messages sent via this plugin.)
  • OTP via SMS User Consent API
  • No READ_SMS / RECEIVE_SMS runtime permission required
  • Provide a regex like \b\d{4,8}\b

โš ๏ธ Google Play policy note (important) #

Google Play restricts use of SMS permissions (like READ_SMS, RECEIVE_SMS).
If your app does not qualify under Play policies, do not include those permissions.
Use OTP via User Consent / SMS Retriever instead.


๐Ÿ“ฆ Install #

dependencies:
  advanced_sms_log: ^1.0.1

๐Ÿค– Android setup #

Permissions (only if you use full logs + incoming SMS receiver) #

Add to your app android/app/src/main/AndroidManifest.xml:

<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<!-- Only if you send SMS via plugin -->
<uses-permission android:name="android.permission.SEND_SMS" />

If you publish on Google Play, ensure policy compliance before requesting SMS permissions.

OTP dependency #

This plugin uses Google Play Services Auth API Phone for OTP consent.
The dependency is already included in the plugin's Android Gradle config.


๐Ÿš€ Usage #

1) Read SMS logs #

import 'package:advanced_sms_log/advanced_sms_log.dart';

final ok = await AdvancedSmsLog.requestSmsLogPermission();
if (!ok) return;

final items = await AdvancedSmsLog.getSms(
  box: SmsBox.inbox,
  limit: 50,
  offset: 0,
  bodyContains: 'otp',
);

for (final m in items) {
  print('${m.address}  ${m.date}  ${m.body}');
}

2) Real-time incoming SMS listener #

await AdvancedSmsLog.startIncomingListener(
  useBroadcast: true,
  useObserver: true,
);

final sub = AdvancedSmsLog.events.listen((e) {
  if (e.type == SmsEventType.received) {
    final sms = e.sms;
    print('Incoming: ${sms?.address} -> ${sms?.body}');
  }
});

// later...
// await AdvancedSmsLog.stopIncomingListener();
// await sub.cancel();
await AdvancedSmsLog.startOtpUserConsent(
  otpRegex: r'\b\d{4,8}\b',
);

AdvancedSmsLog.events.listen((e) {
  if (e.type == SmsEventType.otp) {
    print('OTP: ${e.otp}');
    print('Message: ${e.message}');
  }
});

4) Send SMS (optional) #

final ok = await AdvancedSmsLog.requestSendPermission();
if (!ok) return;

final sent = await AdvancedSmsLog.sendSms(
  to: '+919999999999',
  message: 'Hello from advanced_sms_log',
);

print('sendSms(): $sent');

๐Ÿ“š API #

Enums #

  • SmsBox: inbox, sent, draft, outbox, failed, queued, all

Models #

  • SmsLog
    • id, address, body, date, dateSent, threadId, type, read, seen, subId

Events (single stream) #

  • received โ†’ SmsLog
  • store_changed โ†’ SmsLog? (if READ_SMS granted, we include latest)
  • sent_status โ†’ {messageId, kind, status, resultCode}
  • otp โ†’ {otp, message}
  • error โ†’ {error}

๐Ÿ“„ Docs #

  • doc/USAGE.md
  • doc/ARCHITECTURE.md

โ˜• Sponsor a cup of tea #

If this package saves you development time, consider supporting my work.

Sponsor

https://github.com/sponsors/nousath


๐Ÿงพ Changelog #

See CHANGELOG.md.

1
likes
150
points
108
downloads

Publisher

verified publishernh97.co.in

Weekly Downloads

Android SMS log reader with real-time incoming stream, optional store observer, SMS send status callbacks, and OTP via SMS User Consent API.

Homepage
Repository (GitHub)
View/report issues

Topics

#sms #telephony #otp #android #permissions

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on advanced_sms_log

Packages that implement advanced_sms_log