日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中识别手柄JAVA_android蓝牙手柄监听 BluetoothGamepad

發布時間:2023/12/14 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。