バックグラウンド:
最近、Motorola XOOM タブレットをデスクトップ ドックと Bluetooth キーボード アクセサリと共に購入しました。
ドックとキーボードはうまく機能しますが、デスクから離れるためにタブレットをドックから外しても、キーボードはデバイスとペアリングされたままであり、ソフト キーボードを使用するには手動で設定を変更する必要があります。ドックに戻すときも同じで、手動で元に戻す必要があります。それは大きな問題ではありませんが、それについて考える必要がないのはいいことです.
そこで、電源に接続または切断されたときに Bluetooth のオンとオフを切り替えるだけのアプリを市場からダウンロードしてみましたが、しばらくはうまくいきましたが、バックグラウンド サービスは一定期間後に停止し、手動で再起動するまで役に立たなくなりました。
ポイント: タブレットがドッキング/ドッキング解除されたことを認識し、それに応じて「物理キーボードを使用する」設定を切り替える小さなアプリ/サービスを作成しようとしています。
ドックの状態を認識するために、BroadcastReciever から始めました。
public class DockBroadcastReciever extends BroadcastReceiver { private final String DOCK_STATE_LABEL = "android.intent.extra.DOCK_STATE"; @オーバーライド public void onReceive(コンテキスト コンテキスト、インテント インテント) { バンドル エクストラ = インテント.getExtras(); 文字列メッセージ = (extras.getInt(DOCK_STATE_LABEL) == Intent.EXTRA_DOCK_STATE_UNDOCKED) ? "ドッキング解除" : "ドッキング"; トースト toast = Toast.makeText(context, message, Toast.LENGTH_LONG); toast.show(); } }
しかし、イベントが発生した後に設定を更新する最善の方法を見つけるのに苦労しています。InputMethodManagerを使用していくつかの例を調べましたが、すべてのメソッドには、バインドする特定のEditTextまたはその他の入力が必要なようです。
さらに、ドキュメントのどこにもその設定を表す対応する定数が見つからないようですが、グラフィカルに、ここにあります: http://i.stack.imgur.com/esFaw.png
誰でもこれで私を助けることができますか?
設定を変更するための解決策があればいいのですが、他のアイデアも受け入れます。