20

Android4.0以降を実行しているすべてのデバイスで動作するカスタムキーボードを作成したいと思います。それで、最初にネットを検索しましたが、それについては何も見つかりませんでした。では、Androidのストックキーボードに代わるアプリを作成するにはどうすればよいですか?

私が知りたいこと:

  1. そこに良いチュートリアルはありますか?サンプルコードはありますか?
  2. これを行うにはrootが必要ですか?
  3. その背後にある構造は何ですか?(それはサービスを伴う単なる通常の活動ですか??)
  4. キーボード内の入力ボックスを読み取ることは可能ですか?
4

3 に答える 3

20

それで、私がSwypeに取り組んだとき、私はこれを約2年間行いました。rootは必要ありません。必要なのは、InputMethodServiceを実装することだけです。ほとんどのテキストボックスからテキストを取得できますが、すべてではありません(すべての編集フィールドがAPIの半分を正しく実装しているわけではありません。特に入力タイプがINPUT_TYPE_NULLの場合はうまく機能しません)。テキストを取得するには、inputConnection.getExtractedTextを呼び出します

警告-APIは不良であり、アプリはそれを操作するのに失敗します。基本的なキーボードは簡単ですが、複雑なことを試してみると、多くの時間を費やすことになります。大きなキーボードには多くの工数が費やされました

于 2013-01-11T19:06:40.400 に答える
9

最初にネットで検索しましたが、それについては何も見つかりませんでした

インプット メソッドの作成については、インターネット上の Android デベロッパー ドキュメントで説明されています。

サンプルコードはありますか?

samples/SDK Manager からサンプル コードをダウンロードした場合は、SDK インストール ディレクトリにサンプルがあります。を探しSoftKeyboardます。

これを行うには root が必要ですか?

いいえ。

その背後にある構造は何ですか?(サービスを伴う通常のアクティビティですか??)

です。_InputMethodService

于 2013-01-11T18:48:26.673 に答える
2
  1. そこに良いチュートリアルはありますか?サンプルコードはありますか?

これにより、優れたチュートリアル:
http://code.tutsplus.com/tutorials/create-a-custom-keyboard-on-android--cms-22615

  1. これを行うには root が必要ですか?

いいえ、ルートはこれを行う必要はありません。

  1. その背後にある構造は何ですか?(サービスを伴う通常のアクティビティですか??)

を使用する必要があります。ドキュメントinputMethodServiceを参照してください。

  1. キーボード内の入力ボックスを読み取ることはできますか?

ルート: いいえ

キーボード内の入力ボックスを読み取ることはできますか?

はい、可能です。

InputConnection ic = getCurrentInputConnection();
String currentText = ic.getExtractedText(new ExtractedTextRequest(), 0).text;
于 2015-05-15T06:26:09.787 に答える