android嵌入式键盘,将自动填充功能与键盘集成

从 Android 11 开始,键盘及其他输入法 (IME) 可以在建议栏或类似的容器中以内嵌方式显示自动填充建议,而不是系统在下拉菜单中显示这些建议。由于这些自动填充建议可能包含隐私数据(如密码或信用卡信息),因此在用户选择某条建议之前,这些建议对 IME 隐藏。IME 和密码管理器都需要更新,才能使用此功能。如果 IME 或密码管理器不支持内嵌自动填充功能,建议会显示在下拉菜单中,就像在 Android 11 之前一样。

工作流程

为了理解内嵌自动填充功能的工作原理,将整个过程过一遍会很有帮助。在此流程中,IME 表示当前的键盘或其他输入法,建议提供程序表示该自动填充建议的相应提供程序。根据输入字段和用户的设置,建议提供程序可能是平台或自动填充服务。

用户将焦点置于一个会触发自动填充功能的输入字段上,如密码或信用卡输入字段。

平台查询当前的 IME 和相应的建议提供程序,查看它们是否支持内嵌自动填充功能。如果 IME 或建议提供程序不支持内嵌自动填充功能,建议会显示在下拉菜单中,就像在 Android 10 及更低版本中一样。

平台要求 IME 提供建议请求。此建议请求指定了 IME 需要的最大建议数量,还提供了每条建议的呈现规范。呈现规范指定了最大大小、文字大小、颜色和字体数据等等,从而让建议提供程序能够匹配 IME 的外观和风格。

平台要求建议提供程序提供建议,不超过请求的数量。每条建议都包含一个回调,以扩充包含建议界面的 View。

平台通知 IME 建议已准备就绪。IME 调用回调方法以扩充每条建议的 View,从而显示建议。为了保护用户的隐私信息,IME 在这一阶段看不到建议是什么。

如果用户选择了其中一条建议,系统会通知 IME,通知方法与用户从下拉列表中选择建议时一样。

下面几部分介绍了如何配置 IME 或密码管理器以支持内嵌自动填充功能。

配置 IME 以支持内嵌自动填充功能

本部分介绍了如何配置 IME 以支持内嵌自动填充功能。如果 IME 不支持内嵌自动填充功能,平台会默认在下拉菜单中显示自动填充建议。

xmlns:android="http://schemas.android.com/apk/res/android"

android:supportsInlineSuggestions="true"/>

IME 需要多少条建议

注意:如果您提供的呈现规范少于请求的建议数量,会将最后一条规范用于所有多余的建议。这意味着,例如,如果您只提供一条呈现规范,建议提供程序会将该规范用于所有建议。

配置自动填充服务以支持内嵌自动填充功能

本部分介绍了如何配置密码管理器以支持内嵌自动填充功能。如果您的应用不支持内嵌自动填充功能,平台会默认在下拉菜单中显示自动填充建议。

xmlns:android="http://schemas.android.com/apk/res/android"

android:supportsInlineSuggestions="true"/>

当 IME 需要自动填充建议时,平台会调用您的自动填充服务的 onFillRequest() 方法,就像在 Android 11 之前一样。不过,您的服务必须调用传递的 FillRequest 对象的 getInlineSuggestionsRequest() 方法,以获取 IME 创建的 InlineSuggestionsRequest。InlineSuggestionsRequest 指定了需要多少条内嵌建议,以及应如何呈现每条建议。如果 IME 不支持内嵌建议,该方法会返回 null。

您的自动填充服务会创建 InlinePresentation 对象,不超过 InlineSuggestionsRequest 中请求的最大数量。呈现方式必须遵循由 InlineSuggestionsRequest 指定的大小约束条件。为了将建议返回给 IME,请针对每条建议调用一次 Dataset.Builder.setValue()。Android 11 提供了新版本的 Dataset.Builder.setValue() 来支持内嵌建议。

注意:虽然 IME 应采用您的服务提供的建议,但不能保证它一定会这样做。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值