最近工作中遇到蓝牙手柄开发的项目,自己走了一些弯路,查阅了一些资料,分享出来

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相关推荐

  1. android 蓝牙电话号码,Android拨打电话和蓝牙状态监听

    一.拨打电话 权限管理 思路 通过Intent设置Action为ACTION_DIAL或者 ACTION_CALL,通过intent启动直接拨打电话或者打开拨打电话界面. 示例代码 直接拨打电话 /* ...

  2. android 通过GPS获取用户地理位置并监听位置变化

    1 Location Manager 管理服务 2 Location Provider 提供数据的content provider 方式一:GPS 特点:精度高,耗电量大,不耗费流量 权限<us ...

  3. android自定义adapter(实现对按钮的监听)

    我们一般需要自定义adapter   这里就需要继承BaseAdapter adapter在MVC开发模式中,是控制层 baseAdapter  继承这个方法必须重写 四个方法 1.  getcont ...

  4. Android Activity 生命周期详解及监听

    前言 系列文章: Android Activity 与View 的互动思考 Android Activity 生命周期详解及监听 Android onSaveInstanceState/onResto ...

  5. wireshark提取流量包中的文件_从Wireshark监听的数据中提取需要的数据

    最近,需要将wireshark监听的数据进行提取,分两步:首先,应该得出wireshark的数据包吧,在图形化界面中可以非常直观的将监听数据进行存储,但是这样需要手动操作非常麻烦,而且容易出错(随着处 ...

  6. Unity中使用暴风魔镜蓝牙手柄

    鉴于某些手机在使用大朋SDK以及谷歌SDK时会出现神器的小屏现象(比如某想的)故为了能够最大程度的兼容更多的手机,决定使用暴风魔镜的SDK.废话不多说~直接将使用暴风魔镜SDK时遇到的问题以及解决方案 ...

  7. Android中需要知道的蓝牙相关常识

    首先蓝牙设备有很多种,需要区分蓝牙设备的类型,市面上主要的蓝牙设置有 蓝牙鼠标,键盘,游戏手柄等 蓝牙耳机 蓝牙音箱 可穿戴的蓝牙手环手表 蓝牙健康设备,电子秤等 因此技术上大体分为经典蓝牙和低功耗( ...

  8. 基于BluetoothKit-蓝牙设备不可见,蓝牙方法不可调,蓝牙修改本机名字,蓝牙连接监听的问题

    这两天又在搞蓝牙,蓝牙伤我千百遍,我待蓝牙如初恋. 有位朋友说,做个appdemo,来和他的蓝牙模块进行交互.我发现我对蓝牙真的是连冰山一角都还没了解完.说说我都遇到了什么问题吧. 1.两个手机都打开 ...

  9. android 回退函数,详解React Native监听Android回退按键与程序化退出应用

    详解React Native监听Android回退按键与程序化退出应用 发布时间:2020-09-29 09:25:52 来源:脚本之家 阅读:137 作者:lqh 详解React Native监听A ...

最新文章

  1. 第八周项目二-用对象数组操作长方柱类
  2. java 怎么把list流化_Java 中的数据流和函数式编程
  3. python程序设计试卷_2013Python程序设计期末试卷A
  4. 1、django安装,问题,创建项目,编写第一个demo
  5. WPF实现环(圆)形进度条
  6. Javaweb---监听器
  7. json tostringfiy_JS学习笔记 : 类型转换之「抽象值操作」
  8. 如何使用搜索技巧来成为一名高效的程序员
  9. 华为机试——字符串分隔
  10. js 能实现监听F5页面刷新子iframe 而父页面不刷新
  11. python3.6安装pandas_python3.6更新pandas和numpy包
  12. stm32气压传感器 带探头的_几种常用传感器
  13. VB代码VB小程序:实现USB摄像头视频图像的监控、截图、录像
  14. Introduction to Linear Optimization 2.1 多面体和凸集
  15. 在linux上运行python脚本(安装pytorch踩坑记录,pyinstaller使用方式,构建docker镜像)
  16. Autoware:ndt_mapping节点
  17. 2019.6.14 巴塞尔问题
  18. 中华象思维的算法特征与逻辑基础
  19. P5238 整数校验器 (3月份洛谷月赛2019)
  20. 映射网络驱动器命令(转载)

热门文章

  1. ca32a_demo_c++创建动态数组
  2. 嵌入式IDE-MRS入手使用分享
  3. 艺赛旗(RPA) Pandas 类库基础知识
  4. 14 Babylonjs基础入门 环境搭建
  5. ListBox优化初步(二)
  6. 忘记svn密码怎么办
  7. elasticsearch 官方文档一个小错误
  8. Office2016无法启动安装,正在进行另一个安装操作
  9. C++ 使窗口最大化最小化
  10. ASP+Access的安全隐患及对策(转)