SmsRetrieverClient.startSmsUserConsent(senderPhoneNumber/* 或 null */)
此 senderPhoneNumber 是我知道将从中接收 OTP 的号码。我的问题是,如果我传递 null,它可以按照文档所述从任何数字中提取 OTP(传递 null,以便它认为允许任何数字。)。我如何知道我的发件人是否正确?如果我收到两个 OTP 会怎样?
如果这是不可能的,我能否以某种方式传递两个我确信其中一个会发送我的 OTP 的发件人号码?
任何人对此有任何了解,请告知。
最佳答案
我做了我的研究并尽我最大的努力写下了我的答案。回答您的问题
- What happens if I receive two OTPs?
这个问题的答案是,在大多数情况下,您不会在 5 分钟内收到两条包含 OTP 的消息。
尽管让我们考虑更糟糕的情况。假设您连续收到 2 条包含 OTP 的短信,那么短信用户同意 API 将仅显示对第一条收到的短信的同意(假设您提到 null
作为发件人电话号码)。
所以基本上发生的情况是,一旦用户同意 API 检测到并显示同意,它就会停止监听短信。
- If this is not possible can I somehow pass two sender numbers that I am sure that either would be sending my OTP?
答案:是的,可以。如果您知道发件人可能的名称,即 AD-Something、BC-Something、CC-Something
那么您可以像这样一一注册所有 3 个的监听器
val task1 = SmsRetriever.getClient(applicationContext).startSmsUserConsent("AD-Something")
val task2 = SmsRetriever.getClient(applicationContext).startSmsUserConsent("CC-Something")
val task3 = SmsRetriever.getClient(applicationContext).startSmsUserConsent("BC-Something")
一旦您这样声明,您的设备就会监听所有这些。确保您还检查这些回调以了解它们是否成功
How do I know these?
没有这方面的官方来源/文档。 (我查找了文档,但没有找到任何关于此的提及)然后我自己尝试并找到了它。
老实说,我感觉这个问题只是此时不成熟优化的另一个版本
谢谢。
关于java - SmsRetrieverClient.startSmsUserConsent () 如何传递不同的发件人号码作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64974549/