问题分享

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

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

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

解决方案

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

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

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

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

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

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

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

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

public class MySMSBroadcastReceiver extends BroadcastReceiver {@Overridepublic 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));}}}}
}

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

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

>>华为账号服务官网

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

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

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

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

>>获取开发指导文档

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

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

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

  1. android短信接收器的实现,可以实现自动填写短信验证码功能

    项目介绍 项目地址: SmsObserverForAndroid 介绍 这是一个用于拦截android实时短信的库,可以进行短信过滤,得到自己想要的内容,可以用于需要自动填写短信验证码的app项目 功 ...

  2. 自动填充短信验证码实现方式

    自动填充短信验证码 短信验证码是大部分软件里面都存在的功能,同时为了避免用户自己输入导致的繁琐操作,有一部分app设计者将其设置成了自动填充的方式,方便用户操作那么这种方式是什么实现的呢. 利用广播接 ...

  3. autojs自动获取短信验证码

    AutoJS 是一种基于 JavaScript 的自动化脚本语言,可以用于在 Android 设备上自动化操作. 如果你想使用 AutoJS 自动获取短信验证码,你可以使用 Android 的短信 A ...

  4. web: 手机键盘自动获取短信验证码,点击自动填充输入框

    一.展示效果: IOS手机: autocomplete="one-time-code" <van-field:class="$style.code"v-m ...

  5. Android自动填充短信验证码

    自动拦截短信实际上就是在系统注册一个BroadcastReceiver,然后通过设置拦截短信的: filter.addAction("android.provider.Telephony.S ...

  6. android 自动获取短信验证码

     很多项目中都会用到,自动获取验证码填到输入框,这样用户体验比较好,废话不多说,现在实现 用的是ContentObserver这个类,帮助我们来监听短信数据库发生的变化 package com.s ...

  7. IOS自动获取短信验证码

    小编这里有个自己的学习交流群681+503+716(验证编号:大鲨) * 1.自定义监听类* /** * 短信**,用于自动填充验证码 */ public class SMSContentObserv ...

  8. Android自动获取短信验证码

    一.工具封装 public class GetCodeUtil extends ContentObserver {public static final String SMS_URI_INBOX = ...

  9. android 短信验证码自动填写的二种方法

    转载自:https://blog.csdn.net/VirusDerekRuler/article/details/78506522 现在开发越来越注重用户体验了,现今Android基本都有短信验证功 ...

最新文章

  1. linux下使用NetBeans调试libevent库
  2. LeetCode实战:最小栈
  3. python字典练习题
  4. 2017qcon大会的一点想法(安全人才如何不被淘汰?)
  5. linux 32库路径,linux – 共享库如何在64位/ 32位混合系统中工作?
  6. 跟着感觉走,不要冲动入手,到真正低点在入手
  7. 数学公式编辑器 linux,linux下的公式编辑器
  8. 剑指offer-数组中的重复的数字-p39
  9. java实现回文验证_LeetCode 精选 TOP 面试题(Java 实现)—— 验证回文串
  10. android压缩图片质量,Android 图片质量压缩有关问题
  11. Metapath2vec:Scalable Representation Learning for Heterogeneous Networks(结构化深度网络特征表示)
  12. access 的几种更新语句:update where 与 update join where
  13. Ray Dalio:经济机器是怎样运行的 (时长30分钟)
  14. openjudge 1.5.21 角谷猜想
  15. 半年经验Java面试准备
  16. java 骑士飞行棋_C#实现骑士飞行棋
  17. NodeJs - for循环的几种遍历方式
  18. macbook pro的漏电
  19. 赋能集团带您了解,广告联盟的发展历程,前世和今生
  20. html段落格式设置

热门文章

  1. iOS后台运行机制1
  2. 深入分析集群安全机制
  3. 搜索引擎排名的因素-1
  4. 【SAP PO】X-DOC:SAP PO 接口配置 REST 服务对接填坑记
  5. 唱好歌首先要掌握上海学唱歌的发音技巧
  6. 区块链投资人李明轩:区块链通过多中心化机制解决传统互联网问题|筱静观察
  7. 【前端面试题】—21道有关移动端的面试题
  8. 2017安徽阜阳、亳州移动计算机类面试+合肥二面
  9. 高级前端:前端程序员应该系统掌握的行业技术栈,10年磨一剑
  10. BoxCutter:吸附