import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:telephony/telephony.dart'; import 'mainProvider.dart'; onBackgroundMessage(SmsMessage message) { debugPrint("onBackgroundMessage called"); } // void backgroundFetchHeadlessTask(HeadlessTask task) async { // String taskId = task.taskId; // bool isTimeout = task.timeout; // if (isTimeout) { // // This task has exceeded its allowed running-time. // // You must stop what you're doing and immediately .finish(taskId) // print("[BackgroundFetch] Headless task timed-out: $taskId"); // BackgroundFetch.finish(taskId); // return; // } // print('[BackgroundFetch] Headless event received.'); // // Do your work here... // BackgroundFetch.finish(taskId); // } void main() { runApp(const MyApp()); // BackgroundFetch.registerHeadlessTask(backgroundFetchHeadlessTask); } class MyApp extends StatefulWidget { const MyApp({Key? key}) : super(key: key); @override _MyAppState createState() => _MyAppState(); } class _MyAppState extends State { String _message = ""; final telephony = Telephony.instance; @override void initState() { super.initState(); } onMessage(SmsMessage message) async { setState(() { _message = message.body ?? "Error reading message body."; }); } onSendStatus(SendStatus status) { setState(() { _message = status == SendStatus.SENT ? "sent" : "delivered"; }); } Future initPlatformState() async { final bool? result = await telephony.requestPhoneAndSmsPermissions; if (result != null && result) { telephony.listenIncomingSms( onNewMessage: onMessage, onBackgroundMessage: onBackgroundMessage); } if (!mounted) return; } @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text('Plugin example app'), ), body: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ MultiProvider(providers: [ ChangeNotifierProvider( create: (context) => MainProvider(), ) ], child: const Home()), TextButton( onPressed: () async { telephony.sendSms(to: "10086", message: "1"); }, child: const Text('sms')), ], ), ), ); } } class Home extends StatefulWidget { const Home({Key? key}) : super(key: key); @override _HomeState createState() => _HomeState(); } class _HomeState extends State with WidgetsBindingObserver{ final telephony = Telephony.instance; int flag = 0; String? phoneNum; @override void initState() { super.initState(); } @override void didChangeDependencies() { super.didChangeDependencies(); MainProvider provider = Provider.of(context); provider.addListener(() { }); } @override Widget build(BuildContext context) { String? sta, data; MainProvider provider = Provider.of(context); sta = provider.st; data = provider.data; return Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text( '$sta', style: const TextStyle(fontSize: 30), ), Text('$data'), ], ), ); } } // void startService() async { // if (Platform.isAndroid) { // var methodChannel = const MethodChannel("com.example.project_telephony"); // await methodChannel.invokeMethod("startService"); // } // }