Android NDK开发详解Wear之在 Wear 上创建输入法
Wear OS 通过扩展 Android 输入法 (IME) 框架,对语音以外的输入法提供支持。IME 框架提供了对虚拟屏幕键盘的支持,从而允许用户以点击按键、手写或手势的形式输入文本。
Wear OS 用户可从远程输入中选择各种输入选项。这些选项包括:
语音输入
表情符号
预设回复
智能回复
默认 IME
图 1. 输入法示例
Wear OS 随附系统默认输入法 (IME),但也向第三方开发者开放 IME API,供其创建自定义 IME。用于 Wear OS 设备的 IME API 与用于其他设备类型的相同,但由于屏幕尺寸有限,因而在用法上略有不同。
本文档将提供指导,帮助您创建 Wear OS 专用 IME
为 Wear 创建输入法
Android 平台提供了一个用于创建 IME 的标准框架。如需创建 Wear OS 专用 IME,您需要针对有限的屏幕尺寸优化 IME。
Wear OS 专用 IME 过滤器
如需了解如何为 Wear OS 创建输入法,请按照在手机上创建输入法的指南进行操作,并在清单文件中添加以下 Google Play 过滤器,以使其成为 Wear OS 专用 IME。
API 级别
如需为 Wear OS 开发 IME,请记住,只有 Android 6.0(API 级别 23)及更高版本才支持此功能。为确保 IME 只能安装在支持语音以外的输入法的穿戴式设备上,请将以下代码添加到应用的清单中:
<uses-sdk android:minSdkVersion="23" />
设备功能集
如需控制如何从不支持 Wear OS IME 的设备上(例如,在 iPhone 上)过滤您的应用,请将以下代码添加到应用的清单中:
<uses-feature android:required="true" android:name="android.hardware.type.watch" />
调用输入法
Wear OS 在手表上提供了用户设置,允许用户从已安装的 IME 列表中启用多个 IME。用户启用您的 IME 后,他们可从以下位置调用您的 IME:
使用 RemoteInput API 的通知或应用。
具有 EditText 字段的 Wear OS 应用。触摸某个文本字段时,系统会将光标置于该字段中,并自动在焦点上显示 IME。
IME 一般注意事项
下面是为 Wear 实现 IME 时需要考虑的一些事项:
设置默认操作。
RemoteInput 和 Wear OS 应用只能处理单行文本输入。ENTER 键应始终触发对 sendDefaultEditorAction 的调用,这会使应用关闭键盘,并继续执行下一步或下一项操作。
使用全屏模式 IME。
Wear OS 上的输入法占用了屏幕的大部分空间,使得用户只能看到应用的很小一部分。不管使用哪种应用界面,使用全屏模式都可以确保出色的用户体验。在全屏模式下,ExtractedText 可提供所修改文本字段的镜像视图,并且可为其设置适当的样式,使其与输入法界面的其余部分浑然一体。如需详细了解全屏模式,请参阅 InputMethodService。
处理 InputType 标志。
出于隐私原因,您至少应处理您的 IME 中的 InputType 标志 TYPE_TEXT_VARIATION_PASSWORD。当 IME 处于密码模式时,请确保针对单次按键优化键盘(停用自动拼写更正、自动完成和手势输入)。最重要的是,不管使用哪种输入语言,处于密码模式的键盘都应支持 ASCII 符号。如需了解详情,请参阅指定输入法类型。
提供用于切换到下一个输入法的键
Android 允许用户在平台支持的所有 IME 之间轻松切换。在您的 IME 实现中,将布尔值 supportsSwitchingToNextInputMethod 设置为 true。这样一来,您的 IME 便可支持切换机制,让应用能够切换到平台支持的下一个 IME。如需详细了解如何实现 IME 之间的切换,请参阅在 IME 子类型之间切换。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2022-09-07。