2016-08-22 5 views
0

Я пытаюсь захватить дескрипторы HID с контроллера Sony PS4 через Bluetooth. Мне удалось установить соединение, используя приведенный ниже код.Захват потока дескриптора HID с Game Controller.via Bluetooth

void findController() { 
    int[] deviceIds = mInputManager.getInputDeviceIds(); 
    for (int deviceId : deviceIds) { 
     InputDevice dev = mInputManager.getInputDevice(deviceId); 
     int sources = dev.getSources(); 
     if (((sources & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD) || 
       ((sources & InputDevice.SOURCE_JOYSTICK) == InputDevice.SOURCE_JOYSTICK)) { 
      // Device is a gamepad or joystick 
      listStr = "Controller Found: \r\n"; 
      listTxt.setText(listStr); 
     } 
    } 
} 

Я затем с помощью слушателя искать нажатие клавиши движения или события, но я теперь о том, что мне нужно искать для потока данных от контроллера, который содержит различные дескрипторы. Данные отправляются в двоичных пакетах данных и должны быть преобразованы в строковые данные. Я был в Google больше всего сегодня, и, хотя есть много информации о дескрипторах HID, я все еще не понимаю, как я собираю данные. Если кто-то сделал что-то в этом направлении и может помочь указать мне в правильном направлении или предоставить какие-либо полезные ссылки, чтобы помочь мне разрешить это, будет оценено.

ответ

0

Я пытаюсь захватить HID дескрипторы ...

Убедитесь, что вы хотите, чтобы собрать HID Descriptors или HID data event. HID over Bluetooth (BR/EDR или HOGP) работает, как показано ниже: 1) HID-хост использует SDP для обнаружения дескрипторов HID-устройства, то есть для выяснения того, что такое HID-устройство (например, мышь, клавиатура) и разбора дескрипторов чтобы узнать, какой ключ представляет какое событие. Эта процедура происходит главным образом при первом соединении хоста и устройства. 2) Хост HID зарегистрирует это устройство в локальной системе. 3) После подключения HID-хоста и HID-устройства хост HID будет анализировать поток данных HID или сказать событие, отправленное с устройства HID, затем отображать событие в системное событие, например. клик выталкивает их в систему.

Итак, если вы хотите узнать дескрипторы, вы можете также отключить устройство, затем сниффер журнала (для Android btsnoop.log должно быть работать), чтобы узнать дескриптор в начале двух подключение устройства.

+0

Спасибо, Го, это звучит как решение. У вас есть образец кода. Поскольку Stackoverflow предлагает опцию «щедрость», и это важно, я был бы счастлив заплатить вам за ваше время, сообщите мне. – user616076

+0

хорошо спасибо вам за щедрость в любом случае :-) какой «пример кода» вы хотите? так что вы просто хотите, чтобы дескрипторы правильно? –

+0

Да, любой код, который охватывает три очка, которые вы указали. Мне удалось использовать классы Bluetooth для идентификации устройств, но после этого я использовал прослушиватели, что было неправильно. Если вы можете предоставить код для обнаружения дескрипторов и регистрировать устройство, то проанализируйте данные, которые очень помогли бы. Предложение было подлинным, поскольку у нас есть бюджет, поэтому, если вам понадобится время, я был бы рад заплатить вам за это. если бы вы могли загрузить код в качестве дополнения к вашему ответу, что было бы лучше. – user616076

 Смежные вопросы

  • Нет связанных вопросов^_^