【问题标题】:Flutter based call recording app with native UI integration基于 Flutter 的通话录音应用与原生 UI 集成
【发布时间】:2019-11-23 10:22:36
【问题描述】:

我正在尝试使用 Flutter、CallKit (iOS) 和 ConnectionService (Android) 让通话记录与本机 UI 集成一起使用。

由于没有指南将 Flutter 与 CallKit 和 ConnectionService 或任何其他服务集成以启用无需 root 访问或越狱的类似系统的通话录音,因此这个问题已经存在。 有很多可用于越狱设备的应用程序,Android 本身确实支持通话录音,但没有具体的指南来使用 Flutter 实现相同的功能。

使用带有 AndroidX 支持的 Flutter 1.7 来实现 marshmallow+ ConnectionService 的向后兼容。

预期的结果是在有来电时自动记录通话或提示用户这样做。

目前根本无法做到这一点,也许我在文档中遗漏了一些重要的东西,或者我没有足够的专业知识来成功执行使用颤振创建系统支持的通话记录应用程序。

【问题讨论】:

  • 很难在 Flutter 上复制具有本机通话录音功能的应用程序。在原生 Android 上启用通话录音功能的应用程序是经过大量开发后完成的。您实际上将在已经难以实现的功能上编写平台集成代码。作为起点,我建议首先尝试原生版本,然后考虑在 Flutter 上复制它。无论如何,不​​要把这当成一种气馁,但首先了解你在本地参与的内容会对你有所帮助。
  • 我理解这个过程所涉及的困难,因此希望一些最聪明和更有经验的人帮助我实现尚未记录的内容。

标签: android ios flutter callkit call-recording


【解决方案1】:

由于没有将 Flutter 与 CallKit 和 ConnectionService 集成的指南...

简而言之,通过 cmets 提到,您必须参考 https://flutter.dev/docs/development/platform-integration/platform-channels 通过实现特定于平台的代码(例如 CallKit/ConnectionService)自行完成。

首先,因为目前可能没有 Flutter 库可以方便地为您打包,至少在 https://pub.dev/flutter 没有,所以这就是您需要自己做的原因。

现在,假设所有限制、权限、root、越狱等对您来说都没有问题,那么您需要先在 iOS/Android 中本地实现这些 API,example, Android

@Override
public void onMethodCall(MethodCall call, Result result) {
    if (call.method.equals("recordCall")) {
        result.success(recordCall());
    }
}

这将允许您call them from Flutter:

_recordCall() {
  var recording = await platform.invokeMethod('recordCall');
}

所以不要想在 Flutter 中怎么做,上面是简单的部分。

你的观点应该是:如何在 iOS/Android 上做到这一点,因为魔法就在 recordCall()

【讨论】:

  • 更像是在上面创建一个库
猜你喜欢
  • 2019-03-19
  • 2015-12-11
  • 2020-05-10
  • 2012-08-03
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多