0
0

More than 3 years have passed since last update.

Android Studio でカスタムキーボードが有効になっているかの判定について(Java)

Last updated at Posted at 2020-08-27

カスタムキーボードは作った、が有効判定ができない!

いろいろ合ってカスタムキーボードをAndroid Studioで開発していて、キーボード自体は作ったはいいものの、IMEの有効判定の方法がなかなか見つかりませんでした。

何がしたくてこんなことしようとしていたかというと、某キーボードアプリでは、アプリ内でキーボードが有効になっていないときにアラートを表示して、設定まで飛んで、IMEを有効にさせようとしますよね。

わからない?

...まあ、それなら仕方ない。

とりあえずそういったことがしたかったわけですよ。

その備忘録としてコードを残しておきます。
ちなみに、今さらkotlinじゃなく、javaで開発してしまったのはご愛敬。

実はそれほど難しくなかった

早速コードを見ていただきましょう。

hoge.java
//インストールされているIMEアプリケーション一覧取得
InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
List<InputMethodInfo> inputMethodInfoList = imm.getEnabledInputMethodList();

for (int i = 0; i < inputMethodInfoList.size(); ++i) {

     InputMethodInfo inputMethodInfo = inputMethodInfoList.get(i);
     CharSequence label = inputMethodInfo.loadLabel(getPackageManager());

    if(String.valueOf(label).equals("hoge_keyboard")) {

         Log.v("label", String.valueOf(label) + " is active!");

    }
}

まあ、こんな感じですね。自分もandroid開発始めたばっかりの初心者なので、もっといい方法があるかもしれません。

if文はキーボード名がhoge_keyboardとマッチするときにログで表示するようにしています。マッチしたい名称と、if文の中身を皆さんのコードに合わせて変えていただければ、大丈夫です。

同じような問題にぶち当たっている人のお役に立てれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0