4

説明:

「ユーザーがインストール可能なキーマップ」は、Android4.1用にhttp://developer.android.com/about/versions/jelly-bean.htmlにリストされている機能です。

そこにそれは言う:

プラットフォームは、追加の国際キーボードや特別なレイアウトタイプなど、ユーザーがインストール可能なキーボードマップをサポートするようになりました。デフォルトでは、Android 4.1には、Dvorakを含むキーボード用の27の国際キーマップが含まれています。ユーザーがキーボードを接続すると、設定アプリに移動して、そのキーボードに使用する1つ以上のキーマップを選択できます。入力時に、ユーザーはショートカット(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

1 つ以上の適切なキー キャラクター マップ ファイルを作成する必要があります。たとえば、プロジェクトで mykeyboard.kcm という名前の生のリソース ファイルとして作成します。

各 .kcm ファイルをキーボード レイアウトとしてリストする XML リソースを指す KEYBOARD_LAYOUTS を使用して、関連するレシーバーをマニフェスト (AndroidManifest.xml) に追加します。マニフェスト ファイルとリソース ファイルだけを記述し、実際の Java コードやネイティブ コードを記述することはありません。

https://github.com/tialaramex/BritishKeyboard

上記のリンクは、今日たまたま作成した例です。これにより、デフォルトの US キーボードの代わりに英語 (UK) のキーボード レイアウトが使用可能になります。たとえば、Shift キーを押しながら 2 を押すと、@ 記号の代わりに二重引用符が表示されます。Android プロジェクトについて少し知っていれば、これは簡単に理解できると思います。

最終的な結果として、USB または Bluetooth キーボードを接続すると、キーボード レイアウトを設定するためのプロンプトに、アプリケーションによってインストールされた追加のキーボード レイアウトが一覧表示されます。この場合は、英語 (UK) というラベルが付いています。

于 2012-12-23T23:53:14.903 に答える