Переключить виртуальную клавиатуру с Bluetooth HID - PullRequest
1 голос
/ 13 апреля 2020

Я разрабатываю устройство HID на NRF52810. После тестирования работы HID на IOS я обнаружил, что виртуальная клавиатура исчезает при подключении устройства HID, и ее невозможно вернуть на iphone.

После прочтения документации для HID, я не нашел правильную команду.

Я нашел клавиатуру BLE с этой клавишей для включения виртуальной клавиатуры. После тестирования клавиатуры я обнаружил следующие вещи: 1) На windows эта кнопка запускает контекстное меню, код клавиши 0x65 2) На android эта кнопка запускает контекстное меню 3) На ios, скрывает и открывает виртуальную клавиатуру

Я попытался отправить этот код (0x65) через мое устройство. И, как ожидается, на windows и android открывается контекстное меню. Однако ios не распознается. Клавиатура не появляется, программы видят клавишу как неопределенную.

Кто-нибудь знает в чем проблема? Какой код нужно отправить на IOS, чтобы открыть виртуальную клавиатуру? Может ли быть проблема в дескрипторе HID?

    0x05, 0x01,       // Usage Page (Generic Desktop)
    0x09, 0x06,       // Usage (Keyboard)
    0xA1, 0x01,       // Collection (Application)
        0x85, 0x01,       // Report id(1)
        0x15, 0x00,       // Logical Minimum (0)
        0x25, 0x01,       // Logical Maximum (1)
        0x95, 0x05,       // Report Count (5)
        0x75, 0x01,       // Report Size (1)
        0x05, 0x08,       // Usage Page (Page# for LEDs)
        0x19, 0x01,       // Usage Minimum (1)
        0x29, 0x05,       // Usage Maximum (5)
        0x91, 0x02,       // Output (Data, Variable, Absolute), Led report
        0x95, 0x01,       // Report Count (1)
        0x75, 0x03,       // Report Size (3)
        0x91, 0x01,       // Output (Data, Variable, Absolute), Led report padding

        0x95, 0x04,       // Report Count (5)
        0x75, 0x08,       // Report Size (8)
        0x15, 0x00,       // Logical Minimum (0)
        0x25, 0xFF,       // Logical Maximum (255)
        0x05, 0x07,       // Usage Page (Key codes)
        0x19, 0x00,       // Usage Minimum (0)
        0x29, 0xFF,       // Usage Maximum (255)
        0x81, 0x00,       // Input (Data, Array) Key array(6 bytes)
    0xC0,              // End Collection (Application)

    0x05, 0x01,         // Usage Page (Desktop),
    0x09, 0x80,         // Usage (Generic Desktop),
    0xA1, 0x01,         // Collection (Application),
        0x85, 0x02,         // Report id(2)
        0x75, 0x01,         // Report Size (1)
        0x95, 0x08,         // Report Count (8)
        0x15, 0x00,         // Logical Minimum (0)
        0x25, 0x01,         // Logical Maximum (1)
        0x09, 0x81,         // Usage (System Power Down)
        0x09, 0x82,         // Usage (System Sleep)
        0x09, 0x83,         // Usage (System Wake Up)
        0x09, 0x84,         // Usage (System Context Menu)
        0x09, 0x85,         // Usage (System Main Menu)
        0x09, 0x86,         // Usage (System App Menu)
        0x09, 0x87,         // Usage (System Menu Help)
        0x09, 0x88,         // Usage (System Menu Exit)
        0x81, 0x02,         // Input (Data,Var,Abs,NWrp,Lin,Pref,NNul,Bit)
    0xC0,               // End Collection,
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...