ハードウェアキーボードの存在を検出する方法は?
質問
私が現在実行しているデバイスは、ハードウェアキーボードがインストールされているかどうかを検出する方法はありますか?
どのように私はとにかく、デバイス機能を照会しますか。
解決
"getResources()によって提供されるフラグ。getConfiguration()キーボードであります 利用可能であるキーボード(もしあれば)チェックの良い方法。」 [1]
のアンドロイド/コンテンツ/ RES / Configuration.htmlの#キーボード他のヒント
いつでも、ハードキーボードの有無を確認するために、次のメソッドを使用します。
(私の知る限りでは、ソフトキーボードのすべてがの不足の下のテスト機能)
public static boolean isHardKB(Context ctx) {
Configuration cf = ctx.getResources().getConfiguration();
return cf.navigation==Configuration.NAVIGATION_DPAD
|| cf.navigation==Configuration.NAVIGATION_TRACKBALL
|| cf.navigation==Configuration.NAVIGATION_WHEEL;
}
必要に応じてトラップの各ビア影響を受けた活動のためにすべてのの実行時のキーボードの変更のAndroidManifest の
android:configChanges="keyboard|keyboardHidden|navigation"
しかし、(少なくとも)ダミーの onConfigurationChanged()の
と上記のマニフェストの変更をサポートするようにしてください@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
// Optionally employ 'isHardKB()'
}
一般的なQWERTYキーボード接続の使用を検出するために、この:
private boolean isKeyboardConnected() {
return getResources().getConfiguration().keyboard == KEYBOARD_QWERTY;
}
所属していません StackOverflow