BLE中,设备分为中心设备(central)和外围设备(peripheral)

中心设备就是你的手机,外围设备就是智能手环一类的东西。开发BLE的应用都得遵守Generic Attribute Profile (GATT),一个BLE蓝牙设备包含多个service,每个service 又包含多个characteristic。每个characteristic有一个value和多个descriptor,通过characteristic中心设备与外围设备进行通信,charateristic起着载体的作用,通过writeCharacteristic()和readCharacteristic(),可以写入和读出信息。

不同service、characteristic和descriptor都有各自己唯一的UUID。

当连接上BLE设备后,调用discoveryServices()发现服务,通过SERVICE_UUID获取目标service,如果service不为空,* 再通过CHARACTERISTIC_UUID获取characteristic,借助characteristic写入指定值与BLE设备进行通信。

一个GATT服务表现为一个BluetoothGattService 对象,我们需要通过适当的UUID从 BluetoothGatt 实例中获得;
一个GATT特征表示为一个 BluetoothGattCharacteristic 对象,我们可以通过适当的UUID从BluetoothGattService 中得到;
一个GATT描述符表现为一个 BluetoothGattDescriptor 对象,我们可以通过适当的UUID从BluetoothGattCharacteristic对象中获得

蓝牙低功耗开发步骤:
1、使用BluetoothAdapter.getBluetoothLeScanner().startScan()来扫描低功耗蓝牙设备
2、在扫描到设备的回调函数中会得到BluetoothDevice对象,并使用BluetoothAdapter.getBluetoothLeScanner().stopScan();
3、使用BluetoothDevice.connectGatt来获取到BluetoothGatt对象;
4、执行BluetoothGatt.discoverServices,这个方法是异步操作,在回调函数onServicesDiscovered中得到status, 通过判断status是否等于BluetoothGatt.GATT_SUCCESS来判断查找Service是否成功
5、如果成功了,则通过BluetoothGatt.getService来获取BluetoothGattService
6、接着通过BluetoothGattService.getCharacteristic获取BluetoothGattCharacteristic
7、然后通过BluetoothGattCharacteristic.getDescriptor获取BluetoothGattDescriptor

Android低功耗蓝牙开发相关推荐

  1. Android 低功耗蓝牙开发(数据交互)

    Android 低功耗蓝牙开发(数据交互) 前言 正文 一.BluetoothGattCallback 1. onPhyUpdate 2. onPhyRead 3. onServicesDiscove ...

  2. Android 低功耗蓝牙开发

    初识低功耗蓝牙 Android 4.3(API Level 18)开始引入Bluetooth Low Energy(BLE,低功耗蓝牙)的核心功能并提供了相应的 API, 应用程序通过这些 API 扫 ...

  3. Android 低功耗蓝牙开发简述

    低功耗蓝牙简述 一.什么是低功耗蓝牙? 二.怎么做低功耗蓝牙应用? ① 之前有没有接触Android蓝牙开发? ② 蓝牙设备固件是公司自己的吗? ③ 有没有蓝牙固件和蓝牙应用的文档和Demo? ④ 具 ...

  4. 【Android】蓝牙开发——BLE(低功耗蓝牙)(附完整Demo)

    目录 目录 前言 一.相关概念介绍 二.实战开发 三.项目演示 四.Demo案例源码地址 五.更新记录 1.2020/12/29 :修改 setupService()中错误 2.2021/05/14 ...

  5. android 连接蓝牙电子秤_电子秤蓝牙双模通讯Android低功耗蓝牙(蓝牙4.0)BLE开发(上)...

    电子秤蓝牙双模通讯Android低功耗蓝牙(蓝牙4.0)BLE开发(上) 前段时间,公司项目用到了手机APP和蓝牙设备的通讯开发,这里也正好对低功耗蓝牙(蓝牙4.0及以后标准)的开发,做一个总结. 蓝 ...

  6. Android BLE低功耗蓝牙开发

    啦啦啦在上一个项目中有用到BLE低功耗蓝牙开发,当时baidu google了很多资料,但大多数都是千篇一律,英文文档我这种渣渣又看不懂...总之刚开始查的很痛苦.所以要把自己的踩坑之路写下来记录下, ...

  7. Android低功耗蓝牙(BLE)开发(二)

    在上一篇文章Android低功耗蓝牙(BLE)开发(一)中我们了解了BLE的相关概念,这里我们来实际用代码演示安卓进行BLE连接和通讯的功能.本文代码基于Android5.0以上(API 21) 1. ...

  8. Android 8.0 BLE 低功耗蓝牙开发记录

    Android 8.0 BLE 低功耗蓝牙开发记录(1-3)--------------(权限申请篇未完待续) 目的:开源博客,希望大家一起修改博客错误地方,共同完善并会鸣谢提供意见的朋友.为大家提供 ...

  9. 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解

    转载请注明来源: http://blog.csdn.net/kjunchen/article/details/50909410 使用BleLib的轻松搞定Android低功耗蓝牙Ble 4.0开发详解 ...

最新文章

  1. 配置ISA Server 2006 ×××使用户轻松连接内网
  2. PHPStudy下Apache SSL证书安装教程
  3. PowerDesigner 表名、字段大小写转换
  4. 音乐后台管理 歌手查询功能 ktv 1216
  5. rdbms mysql_不同RDBMS下Join 用法 - MySQL
  6. 解决升级到Android Studio 3 Beta版本编译异常
  7. FileUpload文件上传控件
  8. 远程服务器网刻系统,网刻-wu123119-ChinaUnix博客
  9. 电脑怎么录制玩王者荣耀的过程
  10. 【小程序开发】开发一个短信登录验证(后端采用springboot)
  11. 柳传志退休:激荡三十五年
  12. Pubg九月十六日服务器维护,绝地求生9月16日停机更新公告:绝地求生几点开始停机维护...
  13. java word 添加图片_java如何在word中添加图形?图文详解
  14. cocos creator实现读取白鹭movieClip组件(尝试)
  15. 数学中常见的maxmin,min max
  16. cocos creator2.2.2休闲游戏(单机捕鱼)源码H5+安卓+IOS三端源码
  17. 通过正则表达式来替换字符串内容
  18. 手把手教你用c语言编写网络病毒
  19. PHP中的面向对象思想
  20. 新年寄语 —— 奋斗2022

热门文章

  1. Linux开机自启动程序死循环,无法进入系统
  2. window7安装Docker方法
  3. jsp内置对象及其方法
  4. 2012年十大消费趋势预测 移动互联网占七项
  5. FSMC驱动TFTLCD原理详解
  6. 李开复:未来10年出现独角兽最多领域将是人工智能
  7. 2021年未上市的行业独角兽
  8. 你尝过被人误会的委屈吗?看完本篇…
  9. 悲剧,稀里糊涂的玩了COD7这么久
  10. centos7 svn集成ldap用户认证