flutter_sms_reader

Flutter plugin to read SMS inbox, conversations, and messages on Android with typed models.

pub package analysis platform

Features

  • Read all SMS messages as typed SmsMessage models
  • List conversation threads as SmsConversation
  • Fetch messages in a conversation as SmsConversationMessage
  • Filter messages by address/number
  • Safe parsing of platform data to strongly typed models

Getting started

  1. Add dependency in your pubspec.yaml:
    dependencies:
      flutter_sms_reader: ^0.0.1
    
  2. On Android, ensure you declare and request SMS permissions (e.g., READ_SMS) at runtime.
  3. This package currently supports Android. iOS is not implemented yet.

Usage

import 'package:flutter_sms_reader/flutter_sms_reader.dart';

Future<void> demo() async {
  // Get all SMS
  final messages = await FlutterSmsReader.getAllSms();

  // Get conversations
  final conversations = await FlutterSmsReader.getConversations(limit: 10);

  // Get messages for a conversation
  final convoMessages = await FlutterSmsReader.getConversationMessages('123');

  // Get messages by address/number
  final fromAlice = await FlutterSmsReader.getMessagesByAddress('+123456789');
}

See the full runnable example in the example/ app.

API

  • FlutterSmsReader.getAllSms()Future<List<SmsMessage>>
  • FlutterSmsReader.getConversations({int limit = 0, int offset = 0})Future<List<SmsConversation>>
  • FlutterSmsReader.getConversationMessages(String threadId)Future<List<SmsConversationMessage>>
  • FlutterSmsReader.getMessagesByAddress(String address)Future<List<SmsMessage>>

Permissions (Android)

You must declare and request SMS permissions. Consider using permission_handler to request runtime permissions.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Changelog

See CHANGELOG.md.