Android中需要知道的蓝牙相关常识
2017-09-06 16:02
453 查看
首先蓝牙设备有很多种,需要区分蓝牙设备的类型,市面上主要的蓝牙设置有
蓝牙鼠标,键盘,游戏手柄等
蓝牙耳机 蓝牙音箱
可穿戴的蓝牙手环手表
蓝牙健康设备,电子秤等
因此技术上大体分为经典蓝牙和低功耗(Bluetooth Low Energy)蓝牙,低功耗蓝牙是在Android4.0以后才支持的,所以使用低功耗蓝牙时还得注意判断SDK的版本,另外现在市面上有的蓝牙设备是比较先进的(例如荣耀V8的手机)可以支持经典蓝牙和低功耗蓝牙(网上说之为单模模式和双模模式);
低功耗的蓝牙设备的相关开发完全和传统蓝牙不一样,内部都是通过一系列的回调进行操作,而公司要求适配的蓝牙游戏手柄应该属于传统蓝牙设备,准确来说是可输入设备(HID),毕竟传统的蓝牙也还可以继续再细分,综上,这里主要是谈谈适配蓝牙游戏手柄中用到的一些基本知识!
接口BluetoothProfile,蓝牙设备的配置文件
Profile的详细介绍可参考:http://blog.csdn.net/daydayupfromnowon/article/details/6041988
HidProfile 可输入设备的配置文件,实现了接口BluetoothProfile
HID设备(Hunman Interface Device Profile),即人机交互设备,常见的有鼠标,键盘,游戏手柄,蓝牙hid应该从android4.2开始支持的
OppProfile可传输文件蓝牙设备的配置文件,实现了接口BluetoothProfile
A2dpProfile第二代高质量音频设备的配置文件,实现了接口BluetoothProfile
HeadsetProfile蓝牙耳机类设备的配置文件,实现了接口BluetoothProfile
============用户操作蓝牙设备可能会遇到的问题===============================
扫描不到设备的可能原因有:
未将蓝牙设备设置为可见
与蓝牙设备的距离大于10米
蓝牙设备是否已经充满电
蓝牙设备的配套设备是否已经准备就绪
选择扫描设备的API不对
连接不到设备的可能原因有:
蓝牙设备已经配对了,未将设备取消配对
选择连接蓝牙设备的API不对
=============Android系统源码里蓝牙相关的模块代码(以公司的版本为例)=====================
一、版本里的蓝牙模块
路径:HiSTBAndroidV600R002C00SPC031\frameworks\base\core\java\android\bluetooth
类:BluetoothAdapter
访问蓝牙模块的入口,可开启和关闭蓝牙模块
类:BluetoothDevice
蓝牙设备的基本信息,包括设备名称,Mac地址等
类:BluetoothClass
蓝牙设备的详细信息,就是通过该类区分的各种蓝牙设备(手机,音箱可输入设备,健康设备等)
类:BluetoothInputDevice可输入的蓝牙设备
类:BluetoothProfile蓝牙设备的代理类,当然其中细分有多种蓝牙设备,对于不同种类的设备定义有相应的值
二、蓝牙APK
路径:HiSTBAndroidV600R002C00SPC031\packages\apps\Bluetooth
包:com.android.bluetooth
文件夹
a2dp
Map
Opp:下面的文件还比较多,都是蓝牙中文件传输需要用到的
活动:BluetoothOppLauncherActivity在蓝牙的文件传输中需要启动的界面
Pan
Hid
类:HidService
可输入设备的蓝牙代理中连接的就是该服务
三、设置APK
路径:HiSTBAndroidV600R002C00SPC031\packages\apps\Settings
包:com.android.settings.bluetooth设置中和蓝牙相关的都在这个包中
活动:DevicePickerActivity选择设备时需要启动的界面
碎片:DevicePickerFragment包含在上面的活动中
类:HidProfile可输入蓝牙设备的代理类
类:CachedBluetoothDevice
设置中描述蓝牙设备的类,在BluetoothDevice基础上封装的
类:BluetoothDevicePreference
第一个问题的答案就包含在该类的方法中
蓝牙鼠标,键盘,游戏手柄等
蓝牙耳机 蓝牙音箱
可穿戴的蓝牙手环手表
蓝牙健康设备,电子秤等
因此技术上大体分为经典蓝牙和低功耗(Bluetooth Low Energy)蓝牙,低功耗蓝牙是在Android4.0以后才支持的,所以使用低功耗蓝牙时还得注意判断SDK的版本,另外现在市面上有的蓝牙设备是比较先进的(例如荣耀V8的手机)可以支持经典蓝牙和低功耗蓝牙(网上说之为单模模式和双模模式);
低功耗的蓝牙设备的相关开发完全和传统蓝牙不一样,内部都是通过一系列的回调进行操作,而公司要求适配的蓝牙游戏手柄应该属于传统蓝牙设备,准确来说是可输入设备(HID),毕竟传统的蓝牙也还可以继续再细分,综上,这里主要是谈谈适配蓝牙游戏手柄中用到的一些基本知识!
接口BluetoothProfile,蓝牙设备的配置文件
Profile的详细介绍可参考:http://blog.csdn.net/daydayupfromnowon/article/details/6041988
HidProfile 可输入设备的配置文件,实现了接口BluetoothProfile
HID设备(Hunman Interface Device Profile),即人机交互设备,常见的有鼠标,键盘,游戏手柄,蓝牙hid应该从android4.2开始支持的
OppProfile可传输文件蓝牙设备的配置文件,实现了接口BluetoothProfile
A2dpProfile第二代高质量音频设备的配置文件,实现了接口BluetoothProfile
HeadsetProfile蓝牙耳机类设备的配置文件,实现了接口BluetoothProfile
============用户操作蓝牙设备可能会遇到的问题===============================
扫描不到设备的可能原因有:
未将蓝牙设备设置为可见
与蓝牙设备的距离大于10米
蓝牙设备是否已经充满电
蓝牙设备的配套设备是否已经准备就绪
选择扫描设备的API不对
连接不到设备的可能原因有:
蓝牙设备已经配对了,未将设备取消配对
选择连接蓝牙设备的API不对
=============Android系统源码里蓝牙相关的模块代码(以公司的版本为例)=====================
一、版本里的蓝牙模块
路径:HiSTBAndroidV600R002C00SPC031\frameworks\base\core\java\android\bluetooth
类:BluetoothAdapter
访问蓝牙模块的入口,可开启和关闭蓝牙模块
类:BluetoothDevice
蓝牙设备的基本信息,包括设备名称,Mac地址等
类:BluetoothClass
蓝牙设备的详细信息,就是通过该类区分的各种蓝牙设备(手机,音箱可输入设备,健康设备等)
类:BluetoothInputDevice可输入的蓝牙设备
类:BluetoothProfile蓝牙设备的代理类,当然其中细分有多种蓝牙设备,对于不同种类的设备定义有相应的值
二、蓝牙APK
路径:HiSTBAndroidV600R002C00SPC031\packages\apps\Bluetooth
包:com.android.bluetooth
文件夹
a2dp
Map
Opp:下面的文件还比较多,都是蓝牙中文件传输需要用到的
活动:BluetoothOppLauncherActivity在蓝牙的文件传输中需要启动的界面
Pan
Hid
类:HidService
可输入设备的蓝牙代理中连接的就是该服务
三、设置APK
路径:HiSTBAndroidV600R002C00SPC031\packages\apps\Settings
包:com.android.settings.bluetooth设置中和蓝牙相关的都在这个包中
活动:DevicePickerActivity选择设备时需要启动的界面
碎片:DevicePickerFragment包含在上面的活动中
类:HidProfile可输入蓝牙设备的代理类
类:CachedBluetoothDevice
设置中描述蓝牙设备的类,在BluetoothDevice基础上封装的
类:BluetoothDevicePreference
第一个问题的答案就包含在该类的方法中
相关文章推荐
- Android开发中一些你需要知道的图片相关知识和网站推荐分享
- adb shell获取root权限 因为开发需要,我经常会用到adb这个工具(Android Debug Bridge),我们都知道adb shell默认是没有root权限的,修改系统文件就很不方便
- 工作生活中需要知道的常识名词
- Android UI 关于Android计量单位dip dp sp px 你所需要知道的一切
- 程序猿需要知道的相关知识
- 关于Android的.so文件你所需要知道的
- 转载:开发第一个Android应用之前你需要知道的六件事
- Android M新的运行时权限开发者需要知道的一切
- Android一些你需要知道的布局优化技巧
- 关于Android的.so文件你所需要知道的
- 关于 Android 进程保活,你所需要知道的一切
- 程序执行需要读取到安全敏感项必需在androidmanifest.xml中声明相关权限请求, 完整列表如下:
- Android M 新的运行时权限开发者需要知道的一切
- 那些需要你知道的iOS开发相关知识(一)
- Android M新的运行时权限开发者需要知道的一切
- 关于创建Android Library所需要知道的一切
- 关于Android的.so文件你所需要知道的
- Android一些你需要知道的布局优化技巧
- Android targetSdkVersion 从22提到25 你需要知道的一切