【android 蓝牙开发——传统蓝牙】
2017-03-11 22:21
239 查看
最近,项目用到蓝牙通讯的技术。经过一番查阅资料和学习。在此做一下记录并分享一下,也方便以后查看!其实网上的资料都比较全面了,也有不少的博客写的也很好。我也不在这里,多啰嗦了。只把一些容易犯错的地方,说一下。
简述一下蓝牙的发展史: 蓝牙发展至今经历了8个版本的更新。1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2。那么在1.x~3.0之间的我们称之为传统蓝牙,4.x开始的蓝牙我们称之为低功耗蓝牙也就是蓝牙ble,当然4.x版本的蓝牙也是向下兼容的。android手机必须系统版本4.3及以上才支持BLE API。不过在大于等于4.3 和 小于5.0 之间的android手机系统版本,只支持作为中心设备角色。在 5.0 以及 5.0 之后的,是既可以作为中心设备,也可以作为外围设备啦!
传统蓝牙 就是手机上用的那种,它有两个角色一个是客户端一个是服务器(前提是android手机系统版本小于4.3之前的),那有人说,手机到底是客户端,还是服务器端呢?答案就是,它既可以做客户端也可以做服务器端。所以手机既可以作为客户端去搜索服务器端(其他手机),也可以作为服务器端被其他其他客户端(手机端)搜索到。
当客户端搜索到蓝牙服务器后并与之配对后,才能通过UUID(这个是唯一的,服务器端必须与客户端一致)建立socket,然后使用流像文件读写和网络通信那样传输数据就行了。
低功能耗蓝牙也就是BLE, 它的角色变成了一个是中心设备(central)一个是外围设备(peripheral),中心设备就是你的手机,外围设备就是智能手环一类的东西。大于等于4.3 和 小于5.0 之间的android手机系统版本,只能作为中心设备去搜索一些其他外围设备,不能做为外围设备被其他中心设备搜索到;在 5.0以及5.0 之后,既可以作为中心设备,也可以作为外围设备。
由于其具有最大化的待机时间、快速连接和低峰值的发送和接收特性,被广泛用于智能手表、智能手环等可穿戴设备上。在安卓4.3之前,安卓平台上的BLE开发相当难搞,好在谷歌在4.3之后发布了官方的API。在安卓5.0之后又引入了新的API,而新的api没有向下兼容,所以采用5.0新API开发的APP只能在LOLLIPOP即安卓5.0及其以后的版本使用。不过,在新的系统里采用旧API开发的APP仍可使用。
本篇博客就先讲传统蓝牙,也就是 4.0 之前的版本。 BLE 版本,将在下一篇博客中讲解。
先看一下效果图:
总结:具体用法,和方法说明,都在源码的做了注释。感兴趣的话,下载一下源码看一看。
关于自动配对的知识:
以后做补充。
相关博客:
google官网文档,比较具有参考价值
google 蓝牙聊天Daemon android-BluetoothChat
Android 蓝牙开发之搜索、配对、连接、通信大全
鸿洋微信推荐地址(Android蓝牙自动配对攻略)
Android 蓝牙技术 带你实现终端间数据传输
简述一下蓝牙的发展史: 蓝牙发展至今经历了8个版本的更新。1.1、1.2、2.0、2.1、3.0、4.0、4.1、4.2。那么在1.x~3.0之间的我们称之为传统蓝牙,4.x开始的蓝牙我们称之为低功耗蓝牙也就是蓝牙ble,当然4.x版本的蓝牙也是向下兼容的。android手机必须系统版本4.3及以上才支持BLE API。不过在大于等于4.3 和 小于5.0 之间的android手机系统版本,只支持作为中心设备角色。在 5.0 以及 5.0 之后的,是既可以作为中心设备,也可以作为外围设备啦!
传统蓝牙 就是手机上用的那种,它有两个角色一个是客户端一个是服务器(前提是android手机系统版本小于4.3之前的),那有人说,手机到底是客户端,还是服务器端呢?答案就是,它既可以做客户端也可以做服务器端。所以手机既可以作为客户端去搜索服务器端(其他手机),也可以作为服务器端被其他其他客户端(手机端)搜索到。
当客户端搜索到蓝牙服务器后并与之配对后,才能通过UUID(这个是唯一的,服务器端必须与客户端一致)建立socket,然后使用流像文件读写和网络通信那样传输数据就行了。
低功能耗蓝牙也就是BLE, 它的角色变成了一个是中心设备(central)一个是外围设备(peripheral),中心设备就是你的手机,外围设备就是智能手环一类的东西。大于等于4.3 和 小于5.0 之间的android手机系统版本,只能作为中心设备去搜索一些其他外围设备,不能做为外围设备被其他中心设备搜索到;在 5.0以及5.0 之后,既可以作为中心设备,也可以作为外围设备。
由于其具有最大化的待机时间、快速连接和低峰值的发送和接收特性,被广泛用于智能手表、智能手环等可穿戴设备上。在安卓4.3之前,安卓平台上的BLE开发相当难搞,好在谷歌在4.3之后发布了官方的API。在安卓5.0之后又引入了新的API,而新的api没有向下兼容,所以采用5.0新API开发的APP只能在LOLLIPOP即安卓5.0及其以后的版本使用。不过,在新的系统里采用旧API开发的APP仍可使用。
本篇博客就先讲传统蓝牙,也就是 4.0 之前的版本。 BLE 版本,将在下一篇博客中讲解。
先看一下效果图:
总结:具体用法,和方法说明,都在源码的做了注释。感兴趣的话,下载一下源码看一看。
关于自动配对的知识:
以后做补充。
源码地址
说明:效果图为源码中的app工程。app2工程,相比于app工程比较好理解一些。选择设备时,我这里是以小米手机的为例的。要根据具体情况修改一下代码。相关博客:
google官网文档,比较具有参考价值
google 蓝牙聊天Daemon android-BluetoothChat
Android 蓝牙开发之搜索、配对、连接、通信大全
鸿洋微信推荐地址(Android蓝牙自动配对攻略)
Android 蓝牙技术 带你实现终端间数据传输
相关文章推荐
- Android中传统蓝牙模块开发小结
- android 传统蓝牙开发
- android 传统蓝牙开发 (附示例源码)
- Android开发之BlueTooth--最简单的Andorid传统蓝牙通讯Demo
- android 蓝牙开发常见问题总结
- android 蓝牙开发常见问题总结
- Android蓝牙应用开发
- Android中的蓝牙Bluetooth应用开发基础
- Android开发之--WIFI,蓝牙,电池,背光,SD卡,摄像头,按键,MIC,重力感应等各种操作
- 初涉Android蓝牙开发
- android 蓝牙开发 蓝牙 bluetoothsocket connect 经常出错 解决方法
- 初涉Android蓝牙开发(转) 收藏以备后用
- 初涉Android蓝牙开发
- 初涉Android蓝牙开发
- [转]Android蓝牙开发浅谈
- Android 蓝牙开发详述
- Android平台开发-Bluez function porting-蓝牙功能移植
- android开发之蓝牙初步 扫描已配对蓝牙、更改蓝牙可见性、搜索外部蓝牙设备
- Android蓝牙通信功能开发
- 初涉Android蓝牙开发