我知道用于阅读,编写和发送SMS的软件包flutter_sms。
但是,正如我所见,它还会向用户请求SEND_SMS权限,这是不需要的,而且如果您的应用程序不仅仅依赖于此功能,则google不允许要求此权限。
有人能帮我动摇地从SMS读取OTP吗?
或者可以帮助为iOS和Android原生编写功能并将其与flutter集成。
答案 0 :(得分:1)
查看此插件。 https://pub.dev/packages/sms_autofill#-readme-tab-
对于iOS,不需要此程序包,因为默认情况下会提供SMS自动填充功能,但对于Android则不需要此程序包。
由于没有使用SMSRetriever API的需要,因此没有询问用户读取SMS消息的权限。
您有两个可自动填充SMS代码的窗口小部件PinFieldAutoFill和TextFieldPinAutoFill。
在将电话号码发送到后端之前,您需要告知插件它需要侦听带有代码的SMS。
要做到这一点,您需要做的:
await SmsAutoFill().listenForCode;
这将在5分钟内监听带有代码的SMS,并在收到消息后自动填充以下小部件。
答案 1 :(得分:0)
通过查看您指出的程序包,有2件事来自存储库
可能的解决方案
总的来说,我认为您可以与sms_receiver一起收听特定的消息,但是似乎您必须在收到每条消息之后再次收听,这很奇怪,但是我想出于身份验证的目的还可以,因为您需要sms在用户单击某些登录按钮之后。
答案 2 :(得分:0)
我已使用此插件自动从SMS读取OTP
查看此插件。 https://pub.dev/packages/sms_otp_auto_verify
首先,您在pubspec.yaml中添加了sms_otp_auto_verify:^ 1.2.2
无需在清单文件中添加任何权限
首先获取签名代码(通过调用_getAppSignature),该签名代码是服务器包含SMS格式(传入SMS)的代码所必需的,例如:
<#> 12345是您登录到您的应用程序名称的OTP。有效期为30分钟。不要与任何人分享。 xyZaBcD2EFg
IndustrialContainer