Android 蓝牙开发 uuid,Android蓝牙开发之 UUID

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:

d0a3e068c611

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");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值