蓝牙 UUID 解释

 

一,什么是 UUID


UUID 可以简单理解为编号,唯一的编号,用于区分不同的个体。服务和特性都有各自的UUID。比如经典的9527。UUID 就跟身份证一样,不管是你是局长还是科长,人人都有身份证。

 

 

这里的 Read, Notify,Write_Without_Response为该Characteristic
UUID所具有的属性

 

 

二、 服务(Service) UUID

        服务(Service)可以理解为组长,一个组里面至少有一个或多个特性(Characteristic),特性(Characteristic)可以理解为组员。不同的服务(Service)应该有不同的编号(UUID),用以区分不同的服务(Service)。
       我是重案组总督察黄启发, 这里已经被包围了, 限你三分钟之内投降,这里的黄Sir就是组长,组长一般是不干活的,真正干活的是组员(特性),比如谈判专家、拆弹专家和飞虎队。

 

三,特性(Characteristic)UUID

 

特性(Characteristic)是依附于某个服务(Service)的,可以理解为组员,每个组员至少要有一个编号(UUID)以及一个或多个属性(Property)每个特性(Characteristic)可以同时有一个或多个属性。
就比如 119 不光可以救火,像忘带钥匙打不开门,工头不发工资站到楼顶上想不开等等119都可以帮忙,这就是混合属性, 当然了,“Fire inthe hole”人家119 不管。

 

 

四,属性(Property)

   属性的概念非常好理解,在此不多阐述,只是简单描述一下,借用古诗一首:文能提笔安天下,武能上马定乾坤,上炕认识媳妇,下炕认识鞋。

常用的属性有如下几个,我们以手机和蓝牙模块进行通讯来举栗说明:

Read: 读属性,具有该属性的UUID 是可读的,也就是说这个属性允许手机来读取一些信息。手机可以发送这个指令来读取某个具有读属性UUID的信息,华茂的模块在读取的时候,会返回模块的蓝牙地址。

Notify: 通知属性, 具有该属性的 UUID是可以发送通知的,也就是说具有这个属性的特性(Characteristic)可以主动发送信息给手机。举个栗子,华茂蓝牙模块发送数据给手机,就是通过这个属性。

Write: 写属性, 具体该属性的 UUID 是可以接收写入数据的。通常手机发送数据给蓝模块就是通过这个属性完成的。这个属性在Write 完成后,会发送写入完成结果给手机,然后手机再可以写入下一包,这个属性在写入一包数据后,需要等待应用层返回写入结果,速度比较慢。

WriteWithout Response:写属性,从字面意思上看,只是写,不需要返回写的结果,这个属性的特点是不需要应用层返回,完全依靠协议层完成,速度快,但是写入速度超过协议处理速度的时候,会丢包。华茂的蓝牙模块,Read(读)和Notify(通知)是固定的属性,不能移除和修改,您可以根据需要配置Write(写)的属性。

 

 

看到这里,相信在这篇文章开始处列出的华茂模块的UUID 信息就一目了然了,扛把子(服务)是0xFFE0, 小弟只有一个(特性)是0xFFE1,小弟(特性)0xFFE1同时具有读、通知、不需要返回结果的写属性。顺道辟个谣,有些人认为用一个UUID 来读写会造成冲突,其实并不是这样,多个属性集合到一体是可以的,蓝牙协议是允许这么做的。

 

 

 

蓝牙广播中对服务 UUID 格式定义都有三种 16 bit UUID、32 bit UUID、128 bit UUID。

但是熟悉安卓开发的小伙伴都知道接口都 UUID 格式,fromString 时候 16bit 的 UUID 该咋办呢?

16bit 和 32bit 的 UUID 与 128bit 的值之间转换关系:

128_bit_UUID = 16_bit_UUID * 2^96 + Bluetooth_Base_UUID

128_bit_UUID = 32_bit_UUID * 2^96 + Bluetooth_Base_UUID

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

如果你想说这是啥呀,那我这样说你应该可以明白点:

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

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




参考:https://www.jianshu.com/p/027904a8025b

《如何配置HM-10、HM-11、HM-16、HM-17 UUID说明--济南华茂科技有限公司》

  • 67
    点赞
  • 225
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: Android中的蓝牙UUID是用来唯一标识蓝牙设备或服务的一种标识符。UUID通常是一个128位的数字,可以用来识别蓝牙设备上的服务或特征,并实现设备之间的通信。 在Android中,蓝牙设备的UUID通常是由16进制表示的,可以分成两种类型:标准UUID和自定义UUID。标准UUID是由蓝牙SIG(蓝牙特别兴趣小组)定义的,用于识别通用的蓝牙服务。自定义UUID是由开发者自己定义的,用于识别自定义的蓝牙服务或特征。 在Android中,蓝牙UUID的作用非常重要。当使用蓝牙进行设备之间的通信时,首先需要确保两个设备使用相同的UUID来识别服务或特征。只有相同的UUID,设备才能正确地识别和连接到对方,并进行数据的传输和交互。 在开发Android应用程序时,开发者可以使用UUID类来生成蓝牙UUIDUUID类提供了几种静态方法,可以生成不同类型的蓝牙UUID,如随机UUID、基于名称的UUID等。开发者可以根据自己的需求选择合适的方法来生成蓝牙UUID,并将其用于设备之间的通信。 总之,Android中的蓝牙UUID是用来唯一标识蓝牙设备或服务的一种标识符。它在设备之间的蓝牙通信中起着至关重要的作用,确保设备能够正确识别和连接到对方,并进行数据的传输和交互。 ### 回答2: Android蓝牙UUID(Universally Unique Identifier)是一个用于唯一标识蓝牙设备或服务的字符串。它的作用是确保在蓝牙通信中不会发生冲突,并且能够准确地识别和连接到目标设备或服务。 在Android中,UUID由128位的16进制数字组成。它可以被分为两种类型:标准UUID和自定义UUID。 标准UUID是由蓝牙SIG(Bluetooth Special Interest Group)预定义的一些常见服务或特性所使用的。例如,0x1101是蓝牙串口通信(SPP)的标准UUID。使用标准UUID的好处是可以确保设备之间的互操作性,并且可以在不同的Android设备上进行广泛的使用。 除了标准UUID外,开发者还可以在应用程序中定义自己的UUID。这些自定义UUID在应用程序中独一无二,并且可以被用于特定的蓝牙服务或特性。例如,如果开发者创建了一个用于传输文件的蓝牙服务,他可以定义一个唯一的UUID来标识该服务。 在Android中,获取设备或服务的UUID是非常重要的。它可以用于设备之间的配对和连接,并且可以确保数据的安全性和准确性。开发者可以使用Android的蓝牙API来获取蓝牙设备的UUID,并将其用于蓝牙通信的不同阶段,例如发现设备、连接设备和交换数据。 总之,Android蓝牙UUID是一个用于标识蓝牙设备或服务的唯一字符串。它可以是标准UUID或自定义UUID,它们在蓝牙通信过程中起着关键的作用。开发者可以使用Android的蓝牙API来获取和使用UUID,以实现设备之间的蓝牙通信。 ### 回答3: 在Android中,蓝牙UUID(Universally Unique Identifier)是用来唯一标识蓝牙服务或特征的。UUID是一个128位长的数字,用十六进制表示。Android的蓝牙UUID由两部分组成:基本UUID和16位的UUID。 基本UUID蓝牙特殊产生的32位数,用于生成蓝牙列表上的唯一标识符。每个蓝牙服务或特征都有一个基本UUID。 16位UUID是在基本UUID的基础上进行自定义的,用于标识特定的蓝牙服务或特征。16位UUID是由用户自定义的UUID与基本UUID结合而成,确保每个蓝牙服务或特征都有唯一的标识符。 通过使用UUID,Android的蓝牙设备可以在发现和连接蓝牙设备时进行标识。例如,当一个设备作为服务器提供蓝牙服务时,它会公开一个UUID。其他设备可以搜索附近的蓝牙设备并通过UUID连接到该设备。 在开发Android应用程序时,开发人员可以使用UUID来建立蓝牙连接、发送和接收数据等。在创建蓝牙连接时,设备之间必须使用相同的UUID才能成功连接,这样确保了设备之间的通信准确性。 总之,Android的蓝牙UUID是用于唯一标识蓝牙服务和特征的标识符,通过UUID可以实现设备之间的连接和通信。通过合理地使用蓝牙UUID,可以更好地管理蓝牙设备的连接和数据传输。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值