如何访问flutter中的电话呼叫状态



我想知道调用是断开连接还是继续,并在此基础上在应用程序中执行操作。

有人能告诉我如何检查电话是否断开吗?除此之外,我还想知道最终用户是否收到了

任何形式的帮助都将不胜感激。

谢谢

除了上面的答案,他使用了一个不推荐使用的包,你还可以使用这个包,它可以很好地工作phone_state

我认为你应该采取我下面列出的步骤:

  1. 一行代码可以打电话
  2. 等待任何机上电话
  3. 通话在一次通话或全部通话中查看手机上发生的一切电话
  4. 跟踪呼叫、错误和电话掉线

现在让我们启动

安装插件

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在后台提供电话呼叫状态回调,所以您必须为该部分编写自己的代码。

相关内容

  • 没有找到相关文章

最新更新