sms_enricher 1.0.0
sms_enricher: ^1.0.0 copied to clipboard
A comprehensive solution for accessing and processing SMS messages on Android devices. It allows Flutter apps to request user permissions for SMS access, retrieve SMS messages based on specific filter [...]
import 'package:flutter/material.dart';
import 'package:sms_enricher/sms_enricher.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final SmsEnricher _smsEnricher = SmsEnricher();
bool _permissionsGranted = false;
List<dynamic> _enrichedMessages = [];
@override
void initState() {
super.initState();
_requestPermissions();
}
Future<void> _requestPermissions() async {
bool permissionsGranted = await _smsEnricher.requestSmsPermissions();
setState(() {
_permissionsGranted = permissionsGranted;
});
if (_permissionsGranted) {
_retrieveAndEnrichMessages();
} else {
// Handle permission denial here
// log the error
print('Error: SMS permission denied.');
}
}
Future<void> _retrieveAndEnrichMessages() async {
try {
List<dynamic> messages =
await _smsEnricher.retrieveSmsMessages(targetName: 'tagetName');
List<dynamic> enrichedMessages =
await _smsEnricher.enrichSmsMessages(messages);
setState(() {
_enrichedMessages = enrichedMessages;
});
_sendToBackend(enrichedMessages);
} catch (e) {
// Handle errors here
}
}
Future<void> _sendToBackend(List<dynamic> enrichedMessages) async {
bool success = await _smsEnricher.sendToBackend(enrichedMessages,
'https://yourbackend.endpoint/api/messages', '[email protected]');
if (!success) {
// Handle transmission error
}
// Success handling
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('SMS Enricher Example App'),
),
body: Column(
children: [
SizedBox(
height: 300,
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: _permissionsGranted
? ListView.builder(
itemCount: _enrichedMessages.length,
itemBuilder: (context, index) {
return ListTile(
title: Text('Message ${index + 1}'),
subtitle: Text('${_enrichedMessages[index]}'),
);
},
)
: const Text('Requesting Permissions...'),
),
),
SizedBox(
height: 50,
child: ElevatedButton(
onPressed: () async {
_requestPermissions();
},
child: const Text('Request SMS Permissions'),
),
)
],
),
),
);
}
}