UUID:全球唯一标识符

在蓝牙中,每个Service和Characteristic都唯一地由"全球唯一标识符" (UUID)来校验,主要是保证他们的唯一性。

UUID可分为:16位、32位、128 位UUID

Bluetooth_Base_UUID:蓝牙UUID基数

UUID值被固定分配在某个范围,该范围的第一个数值称为蓝牙UUID基数(Bluetooth_Base_UUID),其值为00000000—0000—1000—8000—00805F9B34FB。 在此范围中,UUID一般用一个16位或32位的二进制数表示,经常被称作16位或32位UUID,它的实际长度其实都是128位。

Android开发中,是用UUID.fromString("UUID")的格式来获取UUID的,那通常所说的16、32和128位的UUID,如何都通过fromString来生成呢,这就要用到下面的转换了,也就是说要统一把16位、32位的UUID转换成128位的UUID。

128位的UUID值与16位或32位的UUID值之间的换算关系如下:

128_bit_value=16_bit_value*2^96+Bluetooth_Base_UUID

128_bit_value=32_bit_value*2^96+BIuetooth_Base_UUID

举个例子:

### 若 16 bit UUID为xxxx, 那么 128 bit UUID 为 0000xxxx-0000-1000-8000-00805F9B34FB

### 若 32 bit UUID为xxxxxxxx, 那么 128 bit UUID 为 xxxxxxxx-0000-1000-8000-00805F9B34FB

注:其中 Bluetooth_Base_UUID 定义为 00000000-0000-1000-8000-00805F9B34FB

如下图中UUID:

image.png

用fromString来获取的代码如下:

public static final UUID serviceUUID = UUID.fromString("0000ffe0-0000-1000-8000-00805f9b34fb");

public static final UUID charactUUID = UUID.fromString("0000ffe1-0000-1000-8000-00805f9b34fb");

Android 蓝牙开发 uuid,Android蓝牙开发之 UUID相关推荐

  1. Android 蓝牙开发(一) -- 传统蓝牙聊天室

    Android 蓝牙开发(一) – 传统蓝牙聊天室 Android 蓝牙开发(三) – 低功耗蓝牙开发 项目工程BluetoothDemo 一.蓝牙概览 以下是蓝牙的介绍,来自维基百科: 蓝牙(英语: ...

  2. android蓝牙开发代码,Android蓝牙开发(示例代码)

    Android蓝牙开发 近期做蓝牙小车,须要Android端来控制小车的运动.以此文记录开发过程. 使用HC-06无线蓝牙串口透传模块.对于其它的蓝牙设备本文相同适用. 蓝牙开发的流程: 获取本地蓝牙 ...

  3. Android 蓝牙开发(三) -- 低功耗蓝牙开发

    Android 蓝牙开发(一) – 传统蓝牙聊天室 Android 蓝牙开发(三) – 低功耗蓝牙开发 项目工程BluetoothDemo 前面已经学习了经典蓝牙开发,学习了蓝牙的配对连接和通信,又通 ...

  4. Android蓝牙开发系列文章-蓝牙设备类型知多少?

    在写<Android蓝牙开发系列文章-蓝牙音箱连接>时,计划细化出一篇讲解蓝牙设备类型的文章,现在它来了~ 阅读其他内容,可以点击<Android蓝牙开发系列文章-策划篇>,或 ...

  5. Android蓝牙开发系列文章-蓝牙mesh(一)

    在<Android蓝牙开发系列文章-策划篇>中我们对蓝牙专题的内容进行整体规划,现在让我们一点点揭开他的面纱~ 本文是关于蓝牙mesh的首篇文章,由好友CSDN博主yk150915提供,在 ...

  6. 【Android FFMPEG 开发】Android 中使用 FFMPEG 对 MP3 文件进行混音操作

    文章目录 一.前置操作 ( 移植 FFMPEG ) 二.FFMPEG 混音命令 三.Android FFMPEG 混音源代码完整示例 四.博客源码 一.前置操作 ( 移植 FFMPEG ) 参考 [A ...

  7. 【Android FFMPEG 开发】Android Studio 工程配置 FFMPEG ( 动态库打包 | 头文件与函数库拷贝 | CMake 脚本配置 )

    文章目录 I . FFMPEG 交叉编译后的函数库及头文件 II . FFMPEG 静态库打包动态库 ( 仅做参考 ) III . 创建 Android Studio 工程 IV . FFMPEG 头 ...

  8. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  9. 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )

    文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...

  10. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

最新文章

  1. Swift中@IBDesignable/@IBInspectable的使用
  2. 没有CLOB类型却报ORA-00932: 数据类型不一致: 应为 -, 但却获得 CLOB
  3. 面向对象开发的五大基本原则
  4. 商品WEB开发的商品定单与存储过程的应用
  5. 硬件基础知识--(10)三极管的工作原理
  6. Android开发系列(十七):读取assets文件夹下的数据库文件
  7. python2与python3区别底层的区别_Python2 与 Python3 的区别(二)?
  8. 框架Thinkphp5 简单的实现行为 钩子 Hook
  9. angular解决跨域问题
  10. oracle 弱口令扫描器,批量扫描弱口令检查工具
  11. emoji android to iphone,Emoji Android to iphone
  12. linux(ubantu)系统如何安装vim编辑器以及如何使用vim
  13. 域名备案、公安网备案
  14. pe服务器注册表,在 win pe 下修改本机系统注册表
  15. vue制作导航栏html,Vue实现导航栏菜单
  16. Python计算机视觉(中英文版本)pdf+源代码
  17. 大数据时代的网络舆情(0710)
  18. Windows 下 Quartus 检测不到 USB-Blaster 终极解决办法
  19. 博实乐公布季度业绩,前三季度收入增长46.6%
  20. chrome所有页面崩溃【转载】

热门文章

  1. Html+Css+Js表单验证(正则表达式)
  2. Ubantu 18.04 安装 TensorFlow 详细教程
  3. class字节码反编译操作过程
  4. [BZOJ4566][HAOI2016]找相同字符 后缀自动机
  5. 国家开放大学2023春《马克思主义基本原理概论-试卷A》大作业终考任务参考答案范文合集
  6. 西部广播电视杂志西部广播电视杂志社西部广播电视编辑部2022年第4期目录
  7. 关于FPR和FNR (I类错误和II类错误)
  8. iOS组件化开发从开始到完整总结
  9. 对接支付宝接口流程(沙箱环境)
  10. CPU指令集是什么东西,以及指令集的架构有哪些(有哪些大类),以及具体的指令集都有哪些