如何实现AndroidPay自动OTP填充?

时间:2018-03-02 16:26:18

标签: android android-pay

所以我有一个来自短信的验证码,用户有退出应用程序将其复制到EditText

我发现Android Pay有一种扫描来自您银行的传入验证文字的方法,并使用验证码自动填充文本。

我想为我自己的应用程序复制这个但是我不能100%确定我是如何做到的,因为我正在努力寻找我需要的东西。到目前为止我发现它可以通过ContentResolver完成,但这可能不是最好的解决方案,因为它可能在不同的Android风格上有所不同。

2 个答案:

答案 0 :(得分:1)

你想要一个短信的广播接收器,它读取传入的短信,检查号码是否正确以及短信的格式是否正确,并从中解析号码。

实际上,如果您可以这样做,则无需自动填充 - 只需将请求发送到正确的API进行验证即可,因此他们甚至不必按发送。

答案 1 :(得分:1)

自从播放服务10.2.x以来,Android已内置此功能。

仅当您在SMS消息正文中包含特定于应用程序的哈希时,它才有效,Android会使用该哈希来确定哪个应用程序会提醒您刚刚收到新消息。

当接收到具有该确切散列的SMS消息时,android将启动一个广播接收器,您在清单中使用特殊意图过滤器注册:

<receiver android:name=".MySMSBroadcastReceiver" android:exported="true">
    <intent-filter>
        <action android:name="com.google.android.gms.auth.api.phone.SMS_RETRIEVED"/>
    </intent-filter>
</receiver>

如何更详细地工作以及需要哪些代码等,您可以在开发者博客上查看here或在官方指南中查看here

请注意,如果您无法访问发送短信的系统,这将无法正常工作,这意味着您无法在邮件中添加哈希值。