キーボード表示検知2 キャプチャー画像

キーボード表示・非表示検知 その2

キーボード表示・非表示検知 その1から引き続き、キーボード処理の紹介をしたいと思います。

この記事ではキーボードを検知する方法の2つめを紹介します。Android 6.0(Marshmallow)では完全に使えない方法なので、非推奨の処理となります。

対応Androidバージョン

Android 4.0~Android 5.1

処理内容

その1 と違う部分はisKeyboardShow()の黄色のマーク部分です。

こちらではActivityManager.RunningServiceInfoからActivityManager.RunningAppProcessInfoを使用するように変更しています。

注意点

Android 5.1.1ぐらいからRunningAppProcessInfoは自身のアプリのプロセス情報しか取得できなくなったので、最新のAndroidではこの方法は使えなくなりました。

開発にあたって

キーボードの検知処理を作るために試行錯誤していたところ、プロセス一覧にキーボードのプロセス名が表示されていたため、このプロセス情報からキーボードが表示されているかどうかを取得できないかと思いつきました。

キーボードが表示されている時と、表示されていない時の値をデバッグで比較したところ、importanceの値が変化していると分かり、この処理を作ることができました。