如何让我的应用自动填写短信验证码? 您所在的位置:网站首页 华为手机怎么设置自动填验证码 如何让我的应用自动填写短信验证码?

如何让我的应用自动填写短信验证码?

2024-07-04 19:23| 来源: 网络整理| 查看: 265

问题分享

华为开发者论坛上有开发者向我们咨询:想要实现应用自动填写短信验证码,但如果将手机短信"验证码保护"功能打开,app就不能自动填写验证码,有没有什么方法能获取到短信验证码?问题链接:

https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202342491084740374&fid=18?ha_source=hms1

1

 

我们知道,华为对隐私保护高度重视,用户的隐私安全一直是华为的首要关注。为了保护用户的支付安全和帐号安全,华为EMUI系统提供了验证码短信的保护功能,该功能可以阻止第三方应用获取用户收到的验证码短信。那么正如开发者提问的那样,开启短信验证码保护后app不能自动填写验证码,华为有没有提供什么方法在开启短信验证码保护的状态下,仍然可以自动获取到验证码并自动填写的呢?

解决方案

华为帐号服务(HUAWEI Account Kit)为开发者提供了一项短信自动读取能力,可以帮助应用自动读取验证码,实现应用自动或者被授权读取短信验证码,提高验证效率,优化用户体验。

1

以下是短信自动读取能力的一种场景:

如果应用需要用户输入手机号并通过短信验证码核实用户身份,可以通过集成ReadSmsManager服务,使应用在无需申请短信读取权限的前提下,具备自动读取针对该应用的短信验证码的能力。用户在验证过程中可以省去手动输入短信验证码的操作,整个获取短信验证码的流程可简化成:用户点击获取验证码→收到短信→自动填充→用户点击,将会更加优化用户体验。

自动读取短信验证码功能关键开发操作指导

1.应用调用ReadSmsManager.start(Activity activity)方法请求开启短信读取服务。

Task task = ReadSmsManager.start(MainActivity.this); task.addOnCompleteListener(new OnCompleteListener() { @Override public void onComplete(Task task) { if (task.isSuccessful()) { // 开启服务成功,可以继续后续流程 doSomethingWhenTaskSuccess(); } } });

2. 应用客户端将手机号发送给应用服务器,应用服务器生成一条验证消息,并通过SMS将其发送到用户的手机号。此部分由开发者自行完成。

3. 当用户的设备接收到验证消息时,HMS Core(APK)会显式地向应用客户端发送广播,intent里面包含消息的文本。应用客户端可以使用广播接收此验证消息。应用客户端读取到验证消息的文本后,可以使用正则表达式或其他逻辑从消息中获得验证码,验证码的格式由应用客户端和服务器自行定义。

public class MySMSBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Bundle bundle = intent.getExtras(); if (bundle != null && ReadSmsConstant.READ_SMS_BROADCAST_ACTION.equals(intent.getAction())) { Status status = bundle.getParcelable(ReadSmsConstant.EXTRA_STATUS); if (status.getStatusCode() == CommonStatusCodes.TIMEOUT) { // 服务已经超时,未读取到符合要求的短信,服务关闭 doSomethingWhenTimeOut(); } else if (status.getStatusCode() == CommonStatusCodes.SUCCESS) { if (bundle.containsKey(ReadSmsConstant.EXTRA_SMS_MESSAGE)) { // 服务读取到了符合要求的短信,服务关闭 doSomethingWhenGetMessage(bundle.getString(ReadSmsConstant.EXTRA_SMS_MESSAGE)); } } } } }

除了以上自动读取短信验证码能力以外,华为帐号服务还提供了授权读取短信验证码的能力,使应用在无需申请短信读取权限的前提下,可以通过用户授权方式来自动获取针对应用的短信验证码。用户在验证过程中可以省去手动输入短信验证码的操作,优化用户体验。

3

欲了解更多详情,请参阅:

>>华为账号服务官网

>>自动读取短信验证码开发指导文档

>>授权读取短信验证码开发指导文档

华为账号服务开源仓库地址:GitHub、Gitee

>>访问华为开发者联盟官网,了解更多相关内容

>>获取开发指导文档

>>华为移动服务开源仓库地址:GitHub、Gitee

关注我们,第一时间了解华为移动服务最新技术资讯~

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有