Android中识别手柄JAVA_android蓝牙手柄监听 BluetoothGamepad
最近工作中遇到藍牙手柄開發的項目,自己走了一些彎路,查閱了一些資料,分享出來
1 藍牙連接
系統手動連接和代碼連接( scan 得到回調,連接對應的Service uuid,再去對應的特征值uuid,分別write,read,or notify,來和藍牙設備通訊,這里不再贅述,不是本文重點)
系統手動連接有一個 已配對和已連接的概念,如下圖
注: 已配對的設備,不一定已連接,
我沒有找到 如何判斷一個設備是否已連接的API,如果大家知道請告訴我.已配對的設備列表可以用代碼獲得 Setdevices = bluetoothAdapter.getBondedDevices();
2 手柄相應的按鍵 搖桿監聽(已連接狀態)
對于Activity和View系統提供了不同的監聽按鍵方法
2.1 KeyEvent事件
對應的onKeyDown和onKeyUp事件,得到相應的 keyCode,便可以監聽
圖 1 手柄按鍵示例
圖 2 鍵位對應
2.2 MotionEvent事件(手柄中 Joystick R2 L2)
如上圖1和圖2中對應關系
左搖桿和右搖桿可以得到x和y方向的-1.0到1.0的范圍比例.左搖桿:
event.getAxisValue(MotionEvent.AXIS_X)? ? event.getAxisValue(MotionEvent.AXIS_Y)
右搖桿: event.getAxisValue(MotionEvent.AXIS_Z)? ? event.getAxisValue(MotionEvent.AXIS_RZ)
R2和L2可以得到0.0到1.0的范圍比例(MotionEvent的值可能和官方圖中不一樣)R2: event.getAxisValue(MotionEvent.AXIS_GAS)?? //這個可能與官方圖中不一樣,我也是試出來的
L2:event.getAxisValue(MotionEvent.AXIS_BRAKE)
注: MotionEvent的值很多,還可以監聽 鼠標的滾輪,等等,官方文檔都有介紹
也可以參考,亞馬遜一篇文章 Amazon InputDevice Developer? , 得到這些監聽事件后,大家就可以根據自己的需求做相應的動作了.
總結
以上是生活随笔為你收集整理的Android中识别手柄JAVA_android蓝牙手柄监听 BluetoothGamepad的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Tableau数据合并
- 下一篇: python计算存款复利计算器_分享下自