从短信颤振中读取 OTP

Cod*_*eek 9 flutter flutter-dependencies

我知道用于读取、写入和发送 SMS的包flutter_sms

但正如我所看到的,它也会向用户 SEND_SMS 请求权限,这也是不需要的,如果您的应用不仅仅依赖于此功能,谷歌也不允许请求此权限。

任何人都可以帮助我通过颤振从短信中读取 OTP 吗?

或者可以帮助为 IOS 和 Android 编写本机功能并将其与 flutter 集成。

Rud*_*wal 5

看看这个插件。 https://pub.dev/packages/sms_autofill#-readme-tab-

对于 iOS,不需要此包,因为默认提供短信自动填充,但对于 Android 则不需要,这就是此包有用的地方。

由于 SMSRetriever API 的存在,无需向用户请求读取 SMS 消息的权限。

您可以使用两个小部件来自动填充 SMS 代码:PinFieldAutoFill 和 TextFieldPinAutoFill。

在将电话号码发送到后端之前,您需要让插件知道它需要监听带有代码的短信。

为此,您需要执行以下操作:

await SmsAutoFill().listenForCode;
Run Code Online (Sandbox Code Playgroud)

这将在 5 分钟内监听带有代码的短信,收到后自动填充以下小部件。


Zla*_*tiP 1

通过查看您指出的软件包,有两件事来自存储库

  1. 它不再维护了
  2. 它仅适用于安卓。

可能的解决方案

  1. 看看这个叉子 - https://pub.dartlang.org/packages/sms_maintained
  2. 假设你不需要ios
  3. 您说过您不想要求发送许可。 https://pub.dartlang.org/packages/sms_receiver
  4. 您想要实现哪种 OTP,如果是 firebase,有几个用于电话身份验证的软件包:

总的来说,我认为你可以使用 sms_receiver 并收听特定的消息,但似乎你必须在收到每条消息后再次收听,这很奇怪,但我想出于身份验证的目的是可以的,因为你需要用户之后的短信可能点击了一些登录按钮。