Android -BLE蓝牙小DEMO

本文详细介绍了在Android环境下实现BLE蓝牙设备搜索、连接及数据通信的步骤,包括BLE的基础概念、角色定义、Android 4.3以上系统的相关类及方法,以及中央设备如何发起连接、读写特性值和订阅变化。此外,还提到了外围设备的服务创建、广播数据设置及响应中央设备的读写请求。
摘要由CSDN通过智能技术生成

代码地址如下:
http://www.demodashi.com/demo/13890.html

原文地址:

https://blog.csdn.net/vnanyesheshou/article/details/51943870

一 环境

开发环境:
 jdk1.6 Eclipse
 or jdk1.8 AS3.0.1
运行环境:
 华为V10(Android8.0)
实现功能:
 Android 蓝牙BLE (搜索设备、蓝牙连接、通信等)。

二 代码结构

AS

Eclipse

三、程序实现

一、ble简单介绍

BLE: Bluetooth Low Energy,即蓝牙低功耗,它是一种技术,从蓝牙4.0开始支持。蓝牙低功耗芯片有两种模式:单模和双模。

单模:只能执行低功耗协议栈,也就是只支持ble。
双模:支持传统蓝牙以及ble的使用。

较传统蓝牙:传输速度更快,覆盖范围更广,安全性更高,延迟更短,耗电低等优点。

关键术语和概念:
Gatt:(Generic Attribute Profile)—通用属性配置文件,用于在ble链路上发送和接收被称为“属性”的数据块。目前所有的ble应用都是基于GATT的。一个设备可以实现多个配置文件。

ble交互的桥梁是Service、Characteristic、Desciptor。
Characteristic:可以理解为一个数据类型,它包括一个value和0至多个对此characteristic的描述(Descriptor)。

Descriptor:对Characterisctic的描述,如范围、单位等。

Service:Characteristic的集合。它可以包含多个Characteristic。

一个ble终端可以包含多个Service,一个Service可以包含多个Characteristic,一个Characteristic包含一个value和多个Descriptor,一个Descriptor包含一个value。其中Characteristic比较重要,用的比较多。
这三部分都由UUID作为唯一标示符,以此区分。
UUID(Universally Unique Identifier),含义是通用唯一识别码,它是在一定范围内唯一的机器生成的标识符。标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12)。

ble中有四个角色:
广播者(Braodcaster):广播发送者,是不可连接的设备。
观察者(Observer):扫描广播,不能够启动连接。
广播者和观察者不能建立连接。应用:温度传感器和温度显示器。
外围(periphery):广播发送者,可连接的设备,在单一链路层作为从机。
中央(central):扫描广播,启动连接,在单一或多链路层作为主机。

中央和外围可以进行配对、连接、数据通信。应用:手机和手表。
一个中央可以同时连接多个周边,但是一个周边只能连接一个中央(但是我测试,周边可以连接多个中央设备,并且能正常通信)。

二、Android

注意:Android 4.3(API 18)引入ble相关接口。
相关类
目录:frameworks/base/core/java/android/bluetooth/
BluetoothGatt:中央使用和处理数据;
BluetoothGattCallback:中央的回调。

BluetoothGattServer:周边提供数据;

BluetoothGattServerCallback:周边的回调

BluetoothGattService:Gatt服务

BluetoothGattCharacteristic:Gatt特性

BluetoothGattDescriptor:Gatt描述

2.1 中央设备

搜索ble设备

//搜索附近所有的外围设备
mBluetoothAdapter.startLeScan(mLeScanCallback);
//搜索某些uuid的外围设备。
mBluetoothAdapter.startLeScan(uuid[] ,mLeScanCallback);
停止扫描
mBluetoothAdapter.stopLeScan(m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值