当前位置: 首页 > 知识库问答 >
问题:

前端 - 安卓应用的短信验证码自动提示功能如何实现的?

谷梁迪
2023-09-15

image.png
想问下各位大佬,这种验证码自动提示功能是如何实现的,目前我看了夸克和哔哩哔哩都有类似的实现。反编译看了他们的代码,对应的这块EditText并没有什么特殊之处。
在无短信读取权限的情况下,我看到有个“自动填充服务”支持类似的功能,参考文档:https://developer.android.com/guide/topics/text/autofill-opti...。但是自己写了demo设置了setImportantForAutofill和setAutofillHints并没有卵用。尝试用了bilibili的包名和应用名也不行。(签名不好模拟!)
具体代码是:

 editText = findViewById(R.id.et_autofill);        editText.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_AUTO);        editText.setAutofillHints("smsOTPCode");

另外还有个文档是:https://developers.google.com/identity/sms-retriever/request?... 看着也不太像是这种实现。

ps:用的小米手机抓取了一下验证码提示框的控件是:image.png
目前测试 小米、一加都可以有自动提示
期待大佬们的回复。。。

共有1个答案

高慈
2023-09-15

验证码自动提示功能是通过Android的自动填充服务实现的。该服务可以识别用户在应用程序中输入的文本,并根据用户的偏好和设置,自动填充相应的数据。

在您的情况下,您需要让验证码提示框的文本被自动填充。为了实现这个目标,您需要在应用程序中设置自动填充服务,并将验证码提示框的文本设置为自动填充的提示信息。

下面是一个示例代码片段,演示如何设置自动填充服务:

editText = findViewById(R.id.et_autofill);editText.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_AUTO);editText.setAutofillHints("smsOTPCode");

请注意,您需要在应用程序的AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.READ_PHONE_STATE" />

此外,您需要确保您的应用程序已经添加了自动填充服务的依赖项。在您的build.gradle文件中,添加以下依赖项:

dependencies {    implementation 'com.google.android.material:material:1.4.0' // Material Design库    implementation 'com.android.support:appcompat-v7:28.0.0' // 兼容版本库    implementation 'com.android.support:design:28.0.0' // 兼容版本库    implementation 'com.android.support:support-core-utils:28.0.0' // 兼容版本库}

请注意,这些代码片段和依赖项适用于Android 11及更高版本的设备。如果您正在使用较旧的版本,您可能需要调整代码和依赖项。

 类似资料:
  • 本文向大家介绍Vue.js实现移动端短信验证码功能,包括了Vue.js实现移动端短信验证码功能的使用技巧和注意事项,需要的朋友参考一下 现在的短信验证码一般为4位或6位,则页面中会相应的显示4个或6个文本框,如图所示 当点击注册进入到输入验证码页面的时候,第一个框自动获取光标,依次输入,不可直接输入第三个或第四个框的值, input输入框是循环出来的,代码如下: 第一第三行不解释,相信聪明的你可以

  • 本文向大家介绍Android实现自动填充短信验证码功能,包括了Android实现自动填充短信验证码功能的使用技巧和注意事项,需要的朋友参考一下 前言 短信验证码获取并自动填写现在已经成为一个人性化App的标配了,这篇文章将实现一个短信验证码获取并自动填写的demo。其实就是读取指定号码的短信并提取出验证码,然后赋值给EditText显示。 demo效果图: 读取短信 Android系统在接受到一条

  • 本文向大家介绍Android实现短信验证功能的代码,包括了Android实现短信验证功能的代码的使用技巧和注意事项,需要的朋友参考一下 在我们现在开发APP过程中,当用户注册时,短信验证是必不可少的操作,这里我们就是用一个免费的第三方短信验证SDK-MOP 首先看下效果图 获取AppKey和AppSecret 首先进入官网,登录(没有帐号的自己去注册一个)。鼠标移动到右侧头像处,点击进入后台。 官

  • 本文向大家介绍Android实现短信验证码自动拦截读取功能,包括了Android实现短信验证码自动拦截读取功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android短信验证码自动拦截读取 的具体代码,供大家参考,具体内容如下 知识准备:  1.观察者模式的理解【文章稍后来到~~】  2.Android的Cursor使用【Android基础】  3.正则表达式使用【Java基础

  • 本文向大家介绍Android自动获取短信验证码功能,包括了Android自动获取短信验证码功能的使用技巧和注意事项,需要的朋友参考一下 先给大家展示下效果图,如果大家感觉不错,请参考实现代码。 1.自定义监听类 2.在登录页面事件化监听类 3.声明读取短信权限 4.为了防止内存泄漏,记得注销监听 小结: 去短信库获取短信比较不容易被拦截 以上所述是小编给大家介绍的Android自动获取短信验证码功

  • 本文向大家介绍Android自动填充短信验证码功能(demo),包括了Android自动填充短信验证码功能(demo)的使用技巧和注意事项,需要的朋友参考一下 项目需求: Android开发中用户登录往会用到短信验证的功能,如果让用户先查看短信,然后再回到界面填写验证码,用户体验不是很好,有时就需要实现验证码的自动填写功能。 做法: 我以前的做法是先创建一个广播接收器,接受短信变化的广播,收到广播