问题标签 [sms-retriever-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
270 浏览

android - SmsRetrieverClient 崩溃上次更新

谷歌文档说:

开始侦听传入消息 接下来,调用 SMS 用户同意 API 的 startSmsUserConsent() 方法开始侦听传入消息。如果您知道发送 SMS 消息的电话号码,请指定它(否则,传递 null)。这样,SMS 用户同意 API 将仅触发来自该号码的消息。

但最后一次更新包括更改: 在以前使用 @RecentlyNonNull 和 @RecentlyNullable 的地方使用了严格的可空性注释(@NonNull 和 @Nullable)。通过此更改,曾经导致空值警告的问题现在在构建 Kotlin 代码或使用 Java 空值检查框架时会导致错误。类似的注释更改将在其他 com.google.android.gms 工件的未来版本中逐步推出。

现在我在使用 SmsRetriever 时崩溃了。因为我在startSmsUserConsent()

更新: 我使用:

我的代码:

如果我们进入 startSmsUserConsent 我们可以看到:

当我将库更新到版本时:

现在,如果我们进入 startSmsUserConsent,我们将看到:

现在当 startSmsUserConsent 触发时,我会崩溃

我的构建:

更新: 另外,如果我更新

最高版本:

我遇到了同样的崩溃。可能问题出在“com.google.android.gms”中

0 投票
0 回答
13 浏览

android - 在 Play 商店发布后未调用 onVerificationCompleted

我不知道这个问题是否重复,但这两天我尝试了一些解决方案,但没有白费。

我的问题是关于通过用户的电话号码登录。

这是过程

像任何应用程序一样,我有一个用户界面,用户可以在按下登录按钮后输入他的有效电话号码,SMS OTP 代码将被接收。

一旦用户收到 OTP 代码(从 SmsrReceiver.java 读取代码),其他意图就会自动打开以验证该代码(自动填充)。

所有这些步骤都运行良好,但在 Play 商店发布后,此过程无法按预期工作。

问题是;在收到 SMS OTP 代码后,验证代码的第二个意图没有打开,我检查了我的源代码,我发现 onVerificationCompleted 没有被触发来执行 SmsReceiver 类。

这是 create 方法的回调:

输出:

onCodeSent 调用。

onReceive 调用 getStatusCode() = 15 <--- 在进入开关之前在 SmsrReceiver.java 中打印

onReceive TIMEOUT <--- 在 SmsrReceiver.java 中打印并进入切换到 CommonStatusCodes.TIMEOUT 的情况。

笔记

在我将它发布到游戏商店之前,发送的短信是这样的:284017 是您的验证码。BGkoAnpR3Rs

现在发送的短信是这样的: 601358 是您对 myAppName 的验证码

我不知道这 11 个哈希码是否会导致这个问题。

如果您有任何误解,请告诉我