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相关推荐
- android 蓝牙电话号码,Android拨打电话和蓝牙状态监听
一.拨打电话 权限管理 思路 通过Intent设置Action为ACTION_DIAL或者 ACTION_CALL,通过intent启动直接拨打电话或者打开拨打电话界面. 示例代码 直接拨打电话 /* ...
- android 通过GPS获取用户地理位置并监听位置变化
1 Location Manager 管理服务 2 Location Provider 提供数据的content provider 方式一:GPS 特点:精度高,耗电量大,不耗费流量 权限<us ...
- android自定义adapter(实现对按钮的监听)
我们一般需要自定义adapter 这里就需要继承BaseAdapter adapter在MVC开发模式中,是控制层 baseAdapter 继承这个方法必须重写 四个方法 1. getcont ...
- Android Activity 生命周期详解及监听
前言 系列文章: Android Activity 与View 的互动思考 Android Activity 生命周期详解及监听 Android onSaveInstanceState/onResto ...
- wireshark提取流量包中的文件_从Wireshark监听的数据中提取需要的数据
最近,需要将wireshark监听的数据进行提取,分两步:首先,应该得出wireshark的数据包吧,在图形化界面中可以非常直观的将监听数据进行存储,但是这样需要手动操作非常麻烦,而且容易出错(随着处 ...
- Unity中使用暴风魔镜蓝牙手柄
鉴于某些手机在使用大朋SDK以及谷歌SDK时会出现神器的小屏现象(比如某想的)故为了能够最大程度的兼容更多的手机,决定使用暴风魔镜的SDK.废话不多说~直接将使用暴风魔镜SDK时遇到的问题以及解决方案 ...
- Android中需要知道的蓝牙相关常识
首先蓝牙设备有很多种,需要区分蓝牙设备的类型,市面上主要的蓝牙设置有 蓝牙鼠标,键盘,游戏手柄等 蓝牙耳机 蓝牙音箱 可穿戴的蓝牙手环手表 蓝牙健康设备,电子秤等 因此技术上大体分为经典蓝牙和低功耗( ...
- 基于BluetoothKit-蓝牙设备不可见,蓝牙方法不可调,蓝牙修改本机名字,蓝牙连接监听的问题
这两天又在搞蓝牙,蓝牙伤我千百遍,我待蓝牙如初恋. 有位朋友说,做个appdemo,来和他的蓝牙模块进行交互.我发现我对蓝牙真的是连冰山一角都还没了解完.说说我都遇到了什么问题吧. 1.两个手机都打开 ...
- android 回退函数,详解React Native监听Android回退按键与程序化退出应用
详解React Native监听Android回退按键与程序化退出应用 发布时间:2020-09-29 09:25:52 来源:脚本之家 阅读:137 作者:lqh 详解React Native监听A ...
最新文章
- 第八周项目二-用对象数组操作长方柱类
- java 怎么把list流化_Java 中的数据流和函数式编程
- python程序设计试卷_2013Python程序设计期末试卷A
- 1、django安装,问题,创建项目,编写第一个demo
- WPF实现环(圆)形进度条
- Javaweb---监听器
- json tostringfiy_JS学习笔记 : 类型转换之「抽象值操作」
- 如何使用搜索技巧来成为一名高效的程序员
- 华为机试——字符串分隔
- js 能实现监听F5页面刷新子iframe 而父页面不刷新
- python3.6安装pandas_python3.6更新pandas和numpy包
- stm32气压传感器 带探头的_几种常用传感器
- VB代码VB小程序:实现USB摄像头视频图像的监控、截图、录像
- Introduction to Linear Optimization 2.1 多面体和凸集
- 在linux上运行python脚本(安装pytorch踩坑记录,pyinstaller使用方式,构建docker镜像)
- Autoware:ndt_mapping节点
- 2019.6.14 巴塞尔问题
- 中华象思维的算法特征与逻辑基础
- P5238 整数校验器 (3月份洛谷月赛2019)
- 映射网络驱动器命令(转载)