我想知道调用是断开连接还是继续,并在此基础上在应用程序中执行操作。
有人能告诉我如何检查电话是否断开吗?除此之外,我还想知道最终用户是否收到了
任何形式的帮助都将不胜感激。
谢谢
除了上面的答案,他使用了一个不推荐使用的包,你还可以使用这个包,它可以很好地工作phone_state
我认为你应该采取我下面列出的步骤:
- 一行代码可以打电话
- 等待任何机上电话
- 通话在一次通话或全部通话中查看手机上发生的一切电话
- 跟踪呼叫、错误和电话掉线
现在让我们启动
安装插件
Flutter_phone_state:^0.5.8
发起呼叫
最好尽可能随时从您的应用程序拨打电话。这是找到电话来源的最佳方法。
final phoneCall=FlutterPhoneState.makePhoneCall("480-555-1234"(;
关于呼叫的真相来自PhoneCall对象。
showCallInfo(PhoneCall phoneCall) {
print(phoneCall.status);
print(phoneCall.isComplete);
print(phoneCall.events);
}
PhoneCall.events可以作为流读取,当调用结束时,插件会优雅地关闭流。该插件会监视所有正在进行的调用,并最终强制任何调用超时。
watchEvents(PhoneCall phoneCall) {
phoneCall.eventStream.forEach((PhoneCallEvent event) {
print("Event $event");
});
print("Call is complete");
}
你也可以等到通话结束。
waitForCompletion(PhoneCall phoneCall) async {
await phoneCall.done;
print("Call is completed");
}
访问机上通话
飞行中的呼叫可以这样访问:
final `activeCalls = FutterPhoneState.activeCalls;`
请注意,activeCalls是您调用它时调用的副本。此副本无法更改。它不会自行更新。观看所有事件
你可以观看所有的活动,而不是只关注一个电话。我们建议使用"FlutterPhoneState.phoneCallEventStream",因为它包括我们自己的跟踪逻辑、呼叫超时、故障等。
watchAllPhoneCallEvents() {
FlutterPhoneState.phoneCallEvents.forEach((PhoneCallEvent event) {
final phoneCall = event.call;
print("Got an event $event");
});
print("That loop ^^ won't end");
}
如果你愿意,你可以注册获取原始活动。请记住,这些活动只有这么多。
watchAllRawEvents() {
FlutterPhoneState.rawPhoneEvent.forEach((RawPhoneEvent event) {
final phoneCall = event.call;
print("Got an event $event");
});
print("That loop ^^ won't end");
使用phone_state_background。is在后台提供电话呼叫状态回调,所以您必须为该部分编写自己的代码。