Android开发蓝牙与ble设备的通讯

本文详细介绍了Android开发中蓝牙与BLE设备通讯的全过程,包括蓝牙的基础知识、搜索设备、连接、获取特征、发送与接收消息以及解决开发中遇到的问题。重点讲述了权限设置、扫描、连接、开启通知、数据传输和资源释放等关键步骤。
摘要由CSDN通过智能技术生成

一、写在前面的话

  • 一直想写一篇关于蓝牙与ble设备通讯的博客,但是一直也不知道从何下手,可能是之前思路不清晰吧,也就一直拖拖拖,拖到现在。最近又做到关于ble设备的项目了,在此总结一下吧。(如有不到位或者不太对的地方,希望各位多多指教)

二、基础

  • 蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的BLE蓝牙称为低功耗蓝牙。

  • 如图:

    这里写图片描述

  • BLE是Bluetooth low energy的意思,属于蓝牙低功耗协议,Android4.3以上及苹果手机等现在都支持蓝牙BLE,主要面向传感器应用市场,进行短时间小数据传输,如健康领域:手机监测血压,体育:手机计步器等。

  • 低功耗蓝牙通讯协议:

这里写图片描述

三、梳理整体逻辑(思路/步骤)

  1. 权限问题:先判断手机是否满足android4.3以上版本,再判断手机是否开启蓝牙。
  2. 搜索蓝牙:搜索蓝牙,回调接口中查看ble设备相关信息,一定时间停止扫描。
  3. 连接蓝牙:首先获取到ble设备的mac地址,然后调用connect()方法进行连接。
  4. 获取特征:蓝牙连接成功后,需要获取蓝牙的服务特征等,然后开启接收设置。
  5. 发送消息:writeCharacteristic()方法,发送数据给ble设备。
  6. 接收消息:通过蓝牙的回调接口中onCharacteristicRead()方法,接收蓝牙收的消息。
  7. 释放资源:断开连接,关闭资源。

四、具体实现

1、权限问题

step1、在AndroidManifest.xml中声明权限

<!-- 蓝牙所需权限 -->
    <uses-permission android:name="android.permission.BLUETOOTH" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
  • 第一个权限是允许程序连接到已配对的蓝牙设备。

  • 第二个权限是允许程序发现和配对蓝牙设备。

  • 因为只有在API18(Android4.3)以上的手机才支持ble开发,所以还要声明一个feature。

 <uses-feature
        android:name="android.hardware.bluetooth_le"
        android:required="true" />
  • required为true时,应用只能在支持BLE的Android设备上安装运行

  • required为false时,Android设备均可正常安装运行,需要在代码运行时判断设备是否支持BLE。

  • **注意:**还得写上定位权限,要不然有的机型扫描不到ble设备。

    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

step2、获取蓝牙适配器

  BluetoothManager  mBluetoothManager =(BluetoothManager
评论 154
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值