使用SMS Retriever API Android的OTP / SMS自动获取问题

Ati*_*Asi 8 sms android smsmanager android-sms sms-retriever-api

我正在尝试使用Google的SMS检索器API进行自动SMS验证,但是其中存在问题。以前,我使用读取发件人编号getOriginatingAddress(),如果它是有效的发件人编号,则读取OTP,否则不读取消息。作为,转发的OTP会干扰用户的隐私。

我有以下情况。

我的应用程序正在自动获取转发的OTP消息。

  •  用户A在其手机上安装了应用,然后输入用户B的手机号码。
  •  用户B收到OTP并将其转发给用户A。
  • 应用程序在用户A手机上读取OTP并进入主屏幕。

有什么办法可以获取发件人号码?

Zee*_*bir 1

您无法使用 SMS Retriever API 来实现发件人验证。

有一个解决方法可以在 SMSC 端处理这种情况。也就是说,与 SMSC 人员共享验证短信的哈希码,以免转发或限制短信正文中包含特定哈希码的短信。这不是一个好方法,但这是 SMS Retriever API 的唯一选择

虽然我会推荐另一种方法

Google 发布了另一个处理发件人验证的 API,但它的流程与 SMS Retriever API 及其称为SMS User Consent API 的流程不同。此 API 对于要传递的消息和设备自动获取的消息具有以下标准

仅当消息满足以下条件时才会触发广播:

  1. 该消息包含一个 4-10 个字符的字母数字字符串,其中至少有一个数字。
  2. 该消息是通过不在用户联系人中的电话号码发送的。
  3. 如果您指定了发件人的电话号码,则消息将通过该号码发送。

希望对你有帮助!