我試圖通過藍牙從Sony PS4控制器捕獲HID描述符。我已經設法使用下面的代碼建立連接。從遊戲控制器捕獲HID描述符流通過藍牙
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);
}
}
}
我然後使用偵聽尋找一個按鍵或運動事件,但現在我已經被告知,我需要尋找從含有不同的描述控制器的數據流。數據以二進制數據包發送,需要轉換爲字符串數據。我今天大部分時間都在谷歌,雖然有大量有關HID描述符的信息,但我仍不清楚如何收集數據。 如果有人已經做了一些這方面的工作,並可以幫助指向正確的方向或提供任何有用的鏈接,以幫助我解決這個問題,將不勝感激。
謝謝郭,這聽起來像一個解決方案。你有沒有任何示例代碼。由於Stackoverflow提供了一個賞金選項,這很重要,我很樂意爲您付出時間,請告訴我。 – user616076
非常感謝你的慷慨:-)你想要什麼樣的「示例代碼」?所以你只是想要描述符是正確的? –
是的,涵蓋您列出的三點的任何代碼。我已經設法使用藍牙類來識別設備,但之後我使用的是聽者,這是錯誤的。如果您可以提供代碼來檢測描述符和註冊設備,然後解析數據,這將有極大的幫助。由於我們有預算,報價是真實的,所以如果任何時候需要您,我會很樂意爲您付款。如果你可以加載代碼作爲你最好的答案的補充。 – user616076