【转载】Android基础——实现安卓蓝牙2.0模块的通信功能

实现安卓蓝牙2.0模块的通信功能

事先说明:

安卓蓝牙2.0的开发和BLE4.0的开发完全是不一样的,不过很多设备都采用双模蓝牙,所以掌握2.0也是很有必要的

安卓蓝牙需要手动申请定位权限,可参考我的博客点击打开链接

蓝牙连接过程:

1、查询用户是否开启蓝牙。

2、搜索附近的可用的蓝牙。

3、进行蓝牙配对。

4、进行蓝牙连接。

5、获取输入流和输出流。

6、发送消息。

蓝牙开发思路:

蓝牙从连接到通信整个过程都是通过接收和发送广播进行的,下面是蓝牙进行特定操作时发出来的广播图,晒上我自己画的美图

蓝牙广播内容:

ACTION_STATE_CHANGED   当你蓝牙开启或者关闭的时候发送

ACTION_FOUND  当你匹配到附近蓝牙设备时发送

ACTION_DISCOVERY_STARTED  当你开始搜索附近蓝牙设备时发送
ACTION_DISCOVERY_FINISHED  当你结束搜索附近蓝牙设备时发送
ACTION_BOND_STATE_CHANGED  当你蓝牙设备匹配状态发生变化时发送


 

实现需要的权限:

由于安卓4.x以上的版本使用蓝牙,需要开启定位权限才能搜索到附近的蓝牙设备



这里使用俩手机,实现蓝牙之间的通信,下面是Demo的效果图

 

(一)服务端

 

实现思路:

1、拿到本地蓝牙设备。

2、蓝牙之间的通讯需要一个唯一识别UUID来匹配正确的设备,使用UUID获取蓝牙的通讯Socket。

3、开启获取数据的线程




(二)客户端

实现思路:

1、检查是否开启蓝牙。

2、注册一系列蓝牙的广播。

3、由于蓝牙每经过一个阶段都会发送一个广播,根据广播来实现对应的方法。

4、蓝牙配对->蓝牙连接->发送消息(UUID必须相同)奥斯卡

其实客户端的操作就是上面那张思路图,根据里面的步骤进行就可以完成

① 检查蓝牙




② 注册广播




③ 搜索附近设备




④ 获取搜索到设备的通知




⑤ 进行连接




⑥ 读取数据




⑦ 发送数据




蓝牙2.0比较简单,大家可以通过源码进行理解
源码下载:工具是Android Studio2.1 (建议使用Import Project导入)
原文地址:https://www.cnblogs.com/zhanglixina/p/9597633.html