4

描述:

“用户可安装的键盘映射”是在http://developer.android.com/about/versions/jelly-bean.html上为 Android 4.1 列出的一项功能。

那里说:

该平台现在支持用户可安装的键盘映射,例如额外的国际键盘和特殊布局类型。默认情况下,Android 4.1 包括 27 个国际键盘映射,包括 Dvorak。当用户连接键盘时,他们可以转到“设置”应用并选择一个或多个要用于该键盘的键盘映射。键入时,用户可以使用快捷键(ctrl-space)在键盘映射之间切换。您可以创建一个应用程序来向系统发布其他键盘映射。APK 将包含基于标准 Android 键盘映射格式的键盘布局资源。应用程序可以通过在其清单中为 ACTION_QUERY_KEYBOARD_LAYOUTS 声明一个合适的广播接收器来为用户提供额外的键盘布局。

所以..我想编写一个应用程序,它添加了一个新的键盘布局。所以,我必须创建一个新的 BroadcastReveiver 并ACTION_QUERY_KEYBOARD_LAYOUTS在应用程序的清单中声明它。该应用程序还提供了键盘映射文件。

所以,我的问题是:当它收到意图BroadcastReceiver时,它必须做什么?ACTION_QUERY_KEYBOARD_LAYOUTS

我已经进行了相当多的搜索 - 但是,唯一包含ACTION_QUERY_KEYBOARD_LAYOUTS我可以找到从 developer.android.com 复制上述描述的网站。

我真的很感激任何帮助,

问候,
兰德尔

4

1 回答 1

4

您需要在项目中创建一个或多个合适的键字符映射文件,例如名为 mykeyboard.kcm 的原始资源文件。

将相关接收器添加到清单 (AndroidManifest.xml) 中,KEYBOARD_LAYOUTS 指向一个 XML 资源,该资源将每个 .kcm 文件列为键盘布局。您最终不会编写任何实际的 Java 或本机代码,只需编写清单和资源文件。

https://github.com/tialaramex/BritishKeyboard

上面的链接是我今天早些时候碰巧构建的一个示例,它(主要)使英语(英国)键盘布局可用,而不仅仅是默认的美国键盘,例如按 SHIFT 和 2 会得到双引号而不是 @ 符号。如果您对 Android 项目有所了解,希望这足够简单。

最终结果是,当您连接 USB 或蓝牙键盘时,设置键盘布局的提示会列出应用程序安装的任何其他键盘布局,在本例中为一个标记为英语(英国)的键盘布局。

于 2012-12-23T23:53:14.903 回答