質問

私が現在実行しているデバイスは、ハードウェアキーボードがインストールされているかどうかを検出する方法はありますか?

どのように私はとにかく、デバイス機能を照会しますか。

役に立ちましたか?

解決

"getResources()によって提供されるフラグ。getConfiguration()キーボードであります 利用可能であるキーボード(もしあれば)チェックの良い方法。」 [1]

http://d.android.com/reference/

のアンドロイド/コンテンツ/ 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;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top