sms_advanced는 Android, iOS, Web 플랫폼에서 SMS 기능을 가능하게 하는 Flutter 패키지입니다. Android에서는 메시지 전송, 수신, 메시지 쿼리, 전달 상태 추적 및 연락처 정보 조회를 지원합니다. iOS 및 Web에서는 SMS 메시지 전송만 지원합니다. 이 패키지는 SMS 작업을 처리하기 위한 통합 인터페이스를 제공하여 기본적인 SMS 통합이 필요한 앱에 적합합니다. 원격 플랫폼 기능에 의존하며, 특히 Android에서는 적절한 권한이 필요합니다. 소스 코드는 투명성과 사용자 맞춤화를 위해 GitHub에 공개되어 있습니다.
사용 사례
Flutter 앱에서 SMS 보내기
안드로이드에서 SMS 수신 및 관리
메시지 전달 상태 확인
연락처 정보 검색 통합
양방향 SMS 통신 구축
주요 기능
크로스플랫폼 SMS 지원
메시지 전송 및 수신(안드로이드 전용)
배송 상태 추적
연락처 정보 조회
공개 GitHub 소스 코드
적합한 대상
SMS 인증이 필요한 앱
SMS를 활용한 고객 서비스 챗봇
양방향 SMS 메시징 시스템
SMS 필요성이 있는 안드로이드 중심 애플리케이션
오픈소스 SMS 도구를 원하는 개발자
고려 사항
iOS 및 웹에서 SMS 수신 제한
완전한 기능을 위해 Android 권한이 필요합니다
플랫폼별 동작 차이
내장된 SMS 파싱 또는 필터링 없음
기기의 네이티브 기능에 따라 다릅니다
원본 README
연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.
sms_advanced
This is an SMS library for Flutter.
Getting Started
Installation and Usage
Once you're familiar with Flutter you may install this package adding sms_advanced (1.0.1 or higher) to the dependencies list of the pubspec.yaml file as follow:
Note: the use of await keyword means that getAllSms is resolved asynchronously and a Future is retorned. To use await, you must be in a function marked async.
Filtering SMS messages
The method querySms from the SmsQuery class returns a list of filtered SMS messages that match the supplied parameters. For example, for querying all the SMS messages sent and received, you could this code:
List<SmsThread> threads = await query.getAllThreads;
for( var index = num ; index >= threads.length; index-- ) {
String sendernumber = threads[index].contact?.address;
String sim = threads[index].messages.first.sim.toString();
String message = threads[index].messages.first.body;
print('sender number: $sendernumber');
print('reciever sim: $sim');
print('message: $message');
}
Getting the Contact info
Each conversation thread is related with a Contact.
The class Contact contains all the info of a thread contact (address, photo, full name).
To get access to Contact class you must import 'package:sms_advanced/contact.dart' into your dart file:
Some times it is useful to be notified of delivered messages regardless of the message. To do that you must subscribe to the onSmsDelivered of the SmsSender class instance:
voidmain() {
...
SmsSender sender = newSmsSender();
sender.onSmsDelivered.listen((SmsMessage message){
print('${message.address} received your message.');
}));
}