Android 4.1:如何“实现用户可安装的键盘映射”?

4

描述:

“用户可安装键盘映射”是列在Android 4.1上的一个功能,可在http://developer.android.com/about/versions/jelly-bean.html上找到相关信息。

网页上写道:

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

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

那么,我的问题是:当接收到ACTION_QUERY_KEYBOARD_LAYOUTS意图时,BroadcastReceiver需要做什么?

我已经做了相当多的搜索-然而,我能找到的唯一包含ACTION_QUERY_KEYBOARD_LAYOUTS的网站是从developer.android.com复制上面的描述。

非常感谢任何帮助,

问候,
兰德尔

1个回答

4
你需要创建一个或多个适合的键位映射文件,作为原始资源文件命名为例如mykeyboard.kcm在你的项目中。
在清单文件(AndroidManifest.xml)中添加相关的接收器,其中KEYBOARD_LAYOUTS指向一个XML资源,该资源将每个.kcm文件列为键盘布局。你不需要编写任何实际的Java或本地代码,只需编写清单和资源文件。

https://github.com/tialaramex/BritishKeyboard

上面的链接是我今天早些时候偶然构建的一个示例,它(大多数情况下)提供了英国英语键盘布局,而不仅仅是默认的美国键盘,例如按SHIFT和2键可以得到双引号而不是@符号。如果您了解一些Android项目,希望这个示例足够简单易懂。
最终结果是当您连接USB或蓝牙键盘时,设置键盘布局的提示会列出由应用程序安装的任何其他键盘布局,此示例中标记为“英语(英国)”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接