Android出海实战:使用Google SMSRetrieverAPI 实现短信自动回填

写在伊始

众所周知,登录注册界面实现短信自动回填是优化用户体验的重要手段,如果我们有RECEIVE_SMS权限,可以通过自定义BroadcastReceiver监听Action(com.google.android.gms.auth.api.phone.SMS_RETRIEVED)来实现短信自动回填功能。但是,RECEIVE_SMS是敏感权限,在很多国家,尤其你还是金融应用,是禁止获取这个权限的。那么,我们又如何实现这个短信自动回填功能呢?

今天的主角:Google SMSRetrieverAPI 解决了我们在无RECEIVE_SMS权限下实现短信自动回填功能的难题。怎么样,Google大人还是异常贴心的。但此种方式有一个美中不足之处,老铁们先看看是否可以接受!!!

美中不足

为了标识唯一应用。Google SMSRetrieverAPI 要求短信内容格式固定,必须在短信内容后添加用于标识应用的 11 个字符的哈希字符串,示例如下:

短信固定格式(#号可以不要,11位的sha256一定需要)
<#> Your ExampleApp code is: 123456
FA+9qCX9VVd

怎么样,短信尾部带个FA+9qCX9VVd(用户怎么看都不懂的玩意)。你的产品经理同意不哈哈。我成功说服了我们产品经理,此功能已上线。

当然,Google对短信内容和项目本身还有一些其他要求:

* 短信内容不能超过140个字节
* minSdkVersion 为 19 或更高
* compileSdkVersion 28 或更高版本

回归正题,开始实现此功能。

计算应用的哈希字符串

哈希字符串分为两种情况:

  • 如果您在创建应用时选择的使用Google签名应用,那么我们需要使用deployment_cert.der文件来生成哈希字符串
  • 如果您使用自己创建的签名keystore,那么我们直接使用您自己的签名文件来生成哈希字符串即可

我们分别来看一下这两种方式都如何生成哈希字符串

Google签名(deployment_cert.der)

生成步骤较为复杂,官网如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值