【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仍可使用。

蓝牙串口 SPP 蓝牙SPP(Serial Port Profile)是蓝技术中的一种协议,用于在蓝牙设备之间建立口通信。SPP协议实现了虚拟的串连接,使得两个蓝牙设备可以像通过物理串口一样进行数据交换。SPP默认的UUID为:

public static final UUID SPP_UUID = UUID.fromString("00001101-0000-1000-8000-00805f9b34fb");

有时候我们在连接蓝牙设备的时候需要知道蓝牙类型,可以通过如下方法判断:

 int type = mBluetoothDevice.getType();
                    switch (type) {
                        case BluetoothDevice.DEVICE_TYPE_CLASSIC://传统蓝牙
                            System.out.println("ClientActivity.run 传统蓝牙");
                            break;
                        case BluetoothDevice.DEVICE_TYPE_DUAL://双模蓝牙
                            System.out.println("ClientActivity.run 双模蓝牙");
                            break;
                        case BluetoothDevice.DEVICE_TYPE_LE://低功耗蓝牙
                            System.out.println("ClientActivity.run 低功耗蓝牙");
                            break;
                        default:
                            System.out.println("ClientActivity.run 未知蓝牙类型");
                            break;
                    }

本篇博客就先讲传统蓝牙,也就是 4.0 之前的版本。 BLE 版本,将在下一篇博客中讲解。

先看一下效果图:
这里写图片描述

总结:具体用法,和方法说明,都在源码的做了注释。感兴趣的话,下载一下源码看一看。

【android 蓝牙开发——BLE(低功耗)蓝牙 2021-10-09更新】


关于自动配对的知识:

以后做补充。

源码地址

说明:效果图为源码中的app工程。app2工程,相比于app工程比较好理解一些。选择设备时,我这里是以小米手机的为例的。要根据具体情况修改一下代码。

BLEDemo


相关博客:

google官网文档,比较具有参考价值

google 蓝牙聊天Daemon android-BluetoothChat

Android 蓝牙开发之搜索、配对、连接、通信大全

鸿洋微信推荐地址(Android蓝牙自动配对攻略)

快速上手 Android 蓝牙串口 SPP 开发

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值