smsretrieverclient.startsmsuserconsent()如何将不同的发送者号码作为参数传递?

dw1jzc5e  于 2021-07-08  发布在  Java
关注(0)|答案(1)|浏览(213)

smsretrieverclient.startsmsuserapprovement(senderphoneumber/或null/)
这个senderphoneumber是我知道我将收到来自的otp的号码。我的问题是,如果我传递null,它可以从任何数字中提取otp,正如文档所说(传递null,这样它就可以考虑允许任何数字)。我如何知道我的发件人是正确的?如果我收到两个OTP怎么办?
如果这是不可能的,我可以通过某种方式传递两个发送者号码,我确信这两个号码都将发送我的otp?
任何人对此有任何了解,请告知。

cotxawn7

cotxawn71#

我尽我最大的努力做了研究,写了我的答案。来回答你的问题
如果我收到两个OTP怎么办?
这个问题的答案是,在大多数包含otp的情况下,您不会在5分钟内收到两条消息。
尽管让我们考虑一个更糟糕的情况。假设你收到2条短信包含otp背靠背在这种情况下,短信用户同意api将只显示第一次收到短信的同意(假设你已经提到) null 作为发件人电话号码)。
所以基本上,一旦用户同意api检测到并显示同意,它就会停止sms的列表。
如果这是不可能的,我可以通过某种方式传递两个发送者号码,我确信这两个号码都将发送我的otp?
回答:可以。如果你知道寄件人可能的名字,比如说 AD-Something, BC-Something, CC-Something 然后你可以像这样一个接一个地注册所有3个Listner

val task1 = SmsRetriever.getClient(applicationContext).startSmsUserConsent("AD-Something")
 val task2 = SmsRetriever.getClient(applicationContext).startSmsUserConsent("CC-Something")
 val task3 = SmsRetriever.getClient(applicationContext).startSmsUserConsent("BC-Something")

一旦你像这样声明,你的设备将监听所有这些。请确保您也检查了对这些的回调,以知道它们是否成功
我怎么知道这些?
这方面没有官方来源/文件(我找了文件,但我没有发现任何关于这个)然后我自己尝试了一下,找到了它。
老实说,我有一种感觉,这个问题只是另一个版本的预成熟优化在这个时候
谢谢您。

相关问题