QA@IT

【Android】ソフトキーボードの状態(表示・非表示)の取得方法

4739 PV

いつもお世話になっております。
Androidでソフトキーボードの状態(表示・非表示)を取得する方法を
御教授頂きたく書き込みさせていただきます。

皆様はどのように実装されますでしょうか?
あらゆるケース、そのメリット・デメリットなどお聞かせ願えれば幸いです。

.
.
.
ちなみに、現在実装してみて直面している問題を以下に記載させて頂きます。

【現状】
こちらのサイト様を参考に実装をしました
enter link description here
ほぼ問題が無かったのですが、上手く動作しないケースが発生しました。

使用端末:XperiaZ5c(Android_5.1.1)

①ナビゲーションバーにあるキーボード変更ボタン?(画像参照)を押下
keyboard.png

②表示されるダイアログで「ドコモ文字編集」を押下
keyboard2.png

③その後、アプリを再起動しても
 キーボードを非表示にしているにも関わらず「com.sonymobile.pobox」サービスが走り続け
 「キーボードが表示されている」扱いになる
※端末の再起動、あるいは「POBox」のデータを削除すると再び表示・非表示を正常に検知できるようになる

これはPOBox特有の現象と見るべきなのでしょうか…
こちらについてもアドバイスございましたらよろしくお願いいたします。

  • 【現状】に関しての報告です。どうやら手順②をやった段階で
    「com.sonymobile.pobox」サービスが複数走っているようです。
    気になるのが、一方のサービスではclientCount=2ですが、clientLabel=0になります。
    これは誰にもバインドされていない≒やりとりをしていないサービス、
    と解釈してよいのでしょうか…
    -
  • もしも上記コメントの解釈が正しいのであれば、
    自アプリとしては「バインドされていない=キーボード表示・非表示に無関係」と
    解釈してclientLabel=0なサービスを無視してしまおうと思っています。
    -
  • 全く同じ問題に直面し、とりあえずclientLabel != 0 を判定に加えることでやりたいことはできるようになっています。解釈が正しいかどうかは不明ですが。 -
  • > furusawa326様
    コメントに気付かず申し訳ありません。その後、他の解消方法が見つからなかった為「clientLabel != 0 判定」で実装となりました。現状問題なく動作は出来ている様です。
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。