You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.0 KiB
45 lines
1.0 KiB
import 'dart:io';
|
|
|
|
import 'package:call_log/call_log.dart';
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:telephony/telephony.dart';
|
|
|
|
class MainProvider extends ChangeNotifier {
|
|
final telephony = Telephony.instance;
|
|
String? st, data, num;
|
|
int flag = 0;
|
|
String? phoneNum;
|
|
|
|
callState() async {
|
|
CallState state = await telephony.callState;
|
|
transState(state.name);
|
|
notifyListeners();
|
|
}
|
|
|
|
@override
|
|
void addListener(VoidCallback listener) {
|
|
super.addListener(listener);
|
|
callState();
|
|
}
|
|
|
|
transState(String? callState) async {
|
|
if (callState == "IDLE") {
|
|
if (flag != 0) {
|
|
await getNum();
|
|
telephony.sendSms(to: phoneNum!, message: "发送短信内容",isMultipart:true,);
|
|
flag = 0;
|
|
}
|
|
} else if (callState == "RINGING") {
|
|
flag++;
|
|
} else if (callState == "OFFHOOK") {
|
|
flag++;
|
|
}
|
|
}
|
|
|
|
getNum() async {
|
|
final Iterable<CallLogEntry> result = await CallLog.query();
|
|
phoneNum = result.first.number;
|
|
}
|
|
}
|