Я разрабатываю устройство 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,