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

问题描述 投票:8回答:1

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

我有以下情况。

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

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

是否有办法获取发件人号码?

android sms smsmanager android-sms smsretriverapi
1个回答
1
投票

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

有一种解决方法,可以在SMSC端解决此问题。那就是与SMSC伙计们共享您的验证SMS的哈希码,而不转发或限制SMS正文中包含该特定哈希码的SMS。这不是一个好方法,但这是SMS Retriever API的唯一选项

尽管我会推荐另一种方法

Google发布了另一个用于处理发件人验证的API,但与SMS Retriever API相比,它具有不同的流程,并且其名称为SMS User Consent API。此API具有以下条件,可以按设备传递和自动提取消息

只有满足以下条件的消息才会触发广播:

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

希望这对您有帮助!

© www.soinside.com 2019 - 2024. All rights reserved.