トップページ > 記事閲覧
【Android】ファンクションキーなどが入力できない
名前:まるまる 日時: 2019/12/21 12:00

Android版において、USBキーボードをつないだ際にファンクションキー (F1〜F12)やESC・BackSpaceキーの入力が検知できないのですが、 ライブラリの仕様でしょうか? 以下のコードを実行すると、Windows環境では正しく押したキーが赤色に なりますが、 Androidでは、Enterや英数字キーは検出されるものの、ファンクションキー やESC・BackSpaceキーといった一部のキーが検出されないようです。 ----- #include "DxLib.h" int DrawKeyString(int x, int y, char *String, int flag) { int Color; if( flag == 1 ){ Color = GetColor(255, 0, 0); } else{ Color = GetColor(255, 255, 255); } return DrawString(x, y, String, Color); } #ifdef __ANDROID__ // Android版のコンパイルだったら android_main int android_main(void) #else // Windows版のコンパイルだったら WinMain int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) #endif { char KeyBuf[256]; if( DxLib_Init() == -1 ) { return -1; } while( ProcessMessage() == 0 ) { // すべてのキーの状態を得る GetHitKeyStateAll(KeyBuf); ClearDrawScreen(); DrawKeyString(10, 10, "F1", KeyBuf[KEY_INPUT_F1]); DrawKeyString(40, 10, "F2", KeyBuf[KEY_INPUT_F2]); DrawKeyString(70, 10, "F3", KeyBuf[KEY_INPUT_F3]); DrawKeyString(100, 10, "F4", KeyBuf[KEY_INPUT_F4]); DrawKeyString(130, 10, "F5", KeyBuf[KEY_INPUT_F5]); DrawKeyString(160, 10, "F6", KeyBuf[KEY_INPUT_F6]); DrawKeyString(190, 10, "F7", KeyBuf[KEY_INPUT_F7]); DrawKeyString(220, 10, "F8", KeyBuf[KEY_INPUT_F8]); DrawKeyString(250, 10, "F9", KeyBuf[KEY_INPUT_F9]); DrawKeyString(280, 10, "F10", KeyBuf[KEY_INPUT_F10]); DrawKeyString(320, 10, "F11", KeyBuf[KEY_INPUT_F11]); DrawKeyString(360, 10, "F12", KeyBuf[KEY_INPUT_F12]); DrawKeyString(10, 30, "LEFT", KeyBuf[KEY_INPUT_LEFT]); DrawKeyString(60, 30, "UP", KeyBuf[KEY_INPUT_UP]); DrawKeyString(90, 30, "RIGHT", KeyBuf[KEY_INPUT_RIGHT]); DrawKeyString(160, 30, "DOWN", KeyBuf[KEY_INPUT_DOWN]); DrawKeyString(10, 50, "BACK", KeyBuf[KEY_INPUT_BACK]); DrawKeyString(80, 50, "TAB", KeyBuf[KEY_INPUT_TAB]); DrawKeyString(150, 50, "RETURN", KeyBuf[KEY_INPUT_RETURN]); DrawKeyString(230, 50, "ESCAPE", KeyBuf[KEY_INPUT_ESCAPE]); DrawKeyString(310, 50, "SPACE", KeyBuf[KEY_INPUT_SPACE]); DrawKeyString(10, 70, "A", KeyBuf[KEY_INPUT_A]); DrawKeyString(30, 70, "B", KeyBuf[KEY_INPUT_B]); DrawKeyString(50, 70, "C", KeyBuf[KEY_INPUT_C]); DrawKeyString(70, 70, "D", KeyBuf[KEY_INPUT_D]); DrawKeyString(90, 70, "E", KeyBuf[KEY_INPUT_E]); DrawKeyString(110, 70, "F", KeyBuf[KEY_INPUT_F]); DrawKeyString(130, 70, "G", KeyBuf[KEY_INPUT_G]); DrawKeyString(10, 90, "0", KeyBuf[KEY_INPUT_0]); DrawKeyString(30, 90, "1", KeyBuf[KEY_INPUT_1]); DrawKeyString(50, 90, "2", KeyBuf[KEY_INPUT_2]); DrawKeyString(70, 90, "3", KeyBuf[KEY_INPUT_3]); DrawKeyString(90, 90, "4", KeyBuf[KEY_INPUT_4]); DrawKeyString(110, 90, "5", KeyBuf[KEY_INPUT_5]); DrawKeyString(130, 90, "6", KeyBuf[KEY_INPUT_6]); } DxLib_End(); return 0; } ----- キーボードは、(Fnキーの同時押しが必要な)コンパクトキーボードではなく、 ファンクションキーなどが完全に独立したフルサイズキーボードです。 Android端末とはUSB変換ケーブルを用いて、直接有線接続しています。 Androidにて、他のアプリでは正しくファンクションキーが使える(ブラウザ でF5を押すと更新される)ようです。 DXライブラリは他のスレッドで頂いた3.21c、端末はAndroid 10です。 よろしくお願いします。
メンテ

Page: 1 |

Re: 【Android】ファンクションキーなどが入力できない ( No.1 )
名前:管理人 日時:2019/12/22 03:24

すみません、確認したところ結構な数のキーの押下状態が取得できない状態になっていました 修正版をアップしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) ただ、手元で試した限りでは F1〜F12キーは押下状態が取得できませんでした ( 一部のキーがOS動作的な反応をしましたが、殆どは 不明なキー( コード0 )と判定されてしまいました ) ESCキー・BackSpaceキーは問題なく取得できるようになっています
メンテ
Re: 【Android】ファンクションキーなどが入力できな ( No.2 )
名前:まるまる 日時:2019/12/22 11:45

ご対応ありがとうございます。 頂いた修正版では、少なくとも私の環境であればF1〜F12キーが使用できました。 ただ、Android上に標準で備わっていた"戻る"ボタン(修正前はEsc相当)が 使えなくなってしまいました。 以下の点、確認させてください。 1、 >手元で試した限りでは F1〜F12キーは押下状態が取得できませんでした 差し支えなければ、確認された端末を教えて頂けないでしょうか? どの端末でファンクションキーが使えない恐れがあるのか、念のため把握しておきたい です。 なお、私が手元で確認した端末は、Google Pixel3a(OSバージョンは10)です。 2、 端末の"戻る"ボタンもあわせて判定・認識する方法はないのでしょうか? 一個人の用途としては、端末の戻るボタンと、キーボードに物理的にあるEscキーを 区別する必要はなく、いずれかが押されたことが判定できる手段があれば十分です。 よろしくお願いします。
メンテ
Re: 【Android】ファンクションキーなどが入力できない ( No.3 )
名前:管理人 日時:2019/12/23 03:58

> 1、 > >手元で試した限りでは F1〜F12キーは押下状態が取得できませんでした > 差し支えなければ、確認された端末を教えて頂けないでしょうか? 確認に使用した端末は arrows F-02H で OSバージョンは 7.1.1 です、少し古いですね… OSバージョン 9 の XPERIA SO-04J もあるのですが、キーボードの USB TYPE-A を TYPE-C に変換するアダプタが無かったため F-02H で確認しました ( TYPE-A を micro USB に変換するアダプタはあったので ) > 2、 > 端末の"戻る"ボタンもあわせて判定・認識する方法はないのでしょうか? >  > 一個人の用途としては、端末の戻るボタンと、キーボードに物理的にあるEscキーを > 区別する必要はなく、いずれかが押されたことが判定できる手段があれば十分です。 分かりました 以前のように戻るボタンでも ESCキーを押したことになるようにしてみましたので、よろしければお試しください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM.zip // Android版 ARM用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_ARM64.zip // Android版 ARM64用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x86.zip // Android版 x86用 https://dxlib.xsrv.jp/temp/DxLibAndroidTest_x64.zip // Android版 x64用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: 【Android】ファンクションキーなどが入力できな ( No.4 )
名前:まるまる(解決) 日時:2019/12/23 23:28

ファンクションキーが使えないと思われる端末、承知しました。 また、修正版頂きました。 こちらの手元の端末では、期待通り動作することは確認しました。 ご対応ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存