所以我有一个来自短信的验证码,用户有退出应用程序将其复制到EditText
。
我发现Android Pay有一种扫描来自您银行的传入验证文字的方法,并使用验证码自动填充文本。
我想为我自己的应用程序复制这个但是我不能100%确定我是如何做到的,因为我正在努力寻找我需要的东西。到目前为止我发现它可以通过ContentResolver完成,但这可能不是最好的解决方案,因为它可能在不同的Android风格上有所不同。
答案 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。
请注意,如果您无法访问发送短信的系统,这将无法正常工作,这意味着您无法在邮件中添加哈希值。