5

キーボードがデバイスに接続されているかどうかをテストするために、KeyboardCapabilities.KeyboardPresent を使用しています。

bool hasKeyboard = new KeyboardCapabilities().KeyboardPresent == 1;

残念ながら、Bluetooth キーボードが接続されているかどうかに関係なく、常に TRUE です。次のハードウェアで試しました。

Dell Vostro 470 は、電源のオン/オフ オプションを備えたワイヤレス Bluetooth キーボードを備えたデスクトップ PC です。 http://www.dell.com/in/business/p/vostro-470/pd

Samsung 700T ノートブック (スレート) http://www.samsung.com/uk/consumer/pc-peripherals/slate-pc/slate-pc/XE700T1A-A01UK

キーボードや Bluetooth をオフにしたり、デバイス リストからキーボードを削除したりしても解決しませんでした。KeyboardCapabilities.KeyboardPresent は常に 1 を返します。

ここに何かが欠けているのでしょうか、それともそのような変更を検出するために代わりに使用すべき API がありますか?

4

2 に答える 2

2

また、この問題は、私の Microsoft Surface (取り外し可能なキーボードを備えている) では、KeyboardPresentキーボード (タッチ/タイプ カバー) が取り付けられておらず、ソフトウェア キーボードが開いている場合でも、常に「1」を返します。

于 2012-12-27T06:41:22.800 に答える
1

タブレットでも同じ動作をしています。バグかも…

より複雑なソリューションは、デバイス コンテナーを列挙することです。キーボードが接続されているかどうかがわかります。詳細については、デバイス列挙のサンプルを参照してください。

于 2012-10-11T22:53:55.923 に答える