• 【转载】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导入)
  • 相关阅读:
    数组 例题解析
    第六章 数组
    循环控制 例题解析
    第五章 循环控制
    第四章 选择结构程序设计
    第三章 数据的输入与输出
    第一章 程序设计及C语言概述
    C 字符串类型例题讲解与实现字符串库函数
    0XX_javascript核心
    012品优购03
  • 原文地址:https://www.cnblogs.com/zhanglixina/p/9597633.html
Copyright © 2020-2023  润新知