现实场景中,经常会碰到“搜索到一个蓝牙地址,但是没有名称,无法确定是不是想连接的设备等问题?”,这个时候就想着,如果可以从地址信息中能解析出某些有用的信息,帮助我们筛选就好了。别急,还真是有可能的,让我们先来重新认识一下蓝牙地址的构成。
当然,这里介绍的是Bluetooth Address,即
public address
。并不针对BLE的random address。为什么呢?我们来慢慢看。
-
什么是Bluetooth Address(BD_ADDR)?
了解过蓝牙基本知识的人,都知道Bluetooth Address是制造商分配给每个蓝牙设备的唯一48位标识符(和电脑的MAC地址一样)。它是用来唯一识别一个物理设备的标识,正常情况下,该地址需要向IEEE申请(其实是购买,呵呵!)。企业交钱,IEEE保证地址的唯一性,皆大欢喜。
蓝牙地址通常显示为6个字节,以十六进制表示,用冒号分隔(示例- 00:11:22:33:FF:EE)。
其中,蓝牙地址的upper part(即most-significant 24 bits)被称为Organizationally Unique Identifier (OUI)。它可以
用来确定设备的制造商
。OUI是由电气和电子工程师协会(IEEE) Assigned。
另外,蓝牙设备地址还被用来在蓝牙设备之间的无线通信中确定跳频模式。
-
Bluetooth Address Structure
Bluetooth Address有三部分组成: NAP, UAP, LAP
举例来说,如下图所示:
从图中可以看到,OUI包含NAP和UAP两部分。其中NAP(Non-significant Address Part)部分2字节,为OUI的前16位;NAP值,用于跳频同步帧。另外,UAP(Upper Address Part)1字节,包含剩余的8位OUI;UAP值,被用作为各种蓝牙规范算法中的种子。
除了OUI之外,剩余的3字节,为LAP(Lower Address Part), 这部分蓝牙地址由设备供应商
自己分配
。LAP值,作为每一个transmitted Frame中
Access Code
的一部分,来唯一地标识蓝牙设备。LAP和UAP构成蓝牙地址的重要地址部分(SAP)。
-
解决的问题
1) 从Bluetooth Address的构成来看,属于设备商自己定义的部分,只有LAP part,即最多只能定义2^24 = 16777216个设备地址?这似乎对于某些大厂,比如Aplle,HUAWEI来讲,不够用?怎么办?
目前看来,最主要的解决方式是,每家公司多申请一些OUI,比如Apple就申请了几十个之多,当然大厂不差钱,哈哈。(因为每申请一个,就要花费一份钱向IEEE购买)。
2) 怎样通过地址,查询到厂商的信息呢?
当然有很多途径,这里分享一个比较好用的网址,如下:
添加链接描述
Click the “Lookup”, 然后就得到结果了:
3) 这一套不适合BLE的Random Address?
是的。因为Random Address的设备地址不是固定分配的,而是在设备启动后随机生成的,而且会根据一定的周期发生变化。它的出现正是为了规避Public address申请/维护成本高、复杂等问题的,当然主要是可以保证地址可变,更安全。所以,它并不遵从OUI这一套。
希望此文对你有帮助,感谢阅读
现实场景中,经常会碰到“搜索到一个蓝牙地址,但是没有名称,无法确定是不是想连接的设备等问题?”,这个时候就想着,如果可以从地址信息中能解析出某些有用的信息,帮助我们筛选就好了。别急,还真是有可能的,让我们先来重新认识一下蓝牙地址的构成。当然,这里介绍的是Bluetooth Address,即public address。并不针对BLE的random address。为什么呢?我们来慢慢看。
对于使用BR/EDR物理通道的经典
蓝牙
来说,其实用的是
蓝牙
public
地址
。
该
地址
应是根据IEEE 802-2014标准第8.2节("通用
地址
")创建的48位扩展唯一标识符(EUI-48)。
标准
地址
:IEEE SA - IEEE 802-2014
里面内容如下:
Universal addresses / 通用
地址
- 概念和概述
通用
地址
的概念是基...
MAC(MediaAccessControl,介质访问控制)
MAC地址
是烧录在NetworkInterfaceCard(网卡,NIC)里的.
MAC地址
,也叫硬件址,是由48比特长(6字节),16进制的数字组成.0-23位是由厂家自己分配.
24-47位,叫做组织唯一标志符(organizationallyunique,是识别LAN(局域网)节点标识。
其中第40位是组播
地址
像LAN连接设备的
MAC地址
一样,
蓝牙
设备也具有与每个设备关联的标识
地址
。对于每个BLE开发人员而言,了解
蓝牙
地址
的工作方式都是至关重要的,尤其是当设备隐私受到关注时。
那么,什么是
蓝牙
地址
?
甲
蓝牙
地址
有时被称为
蓝牙
MAC地址
,是一个48位值,该值唯一地标识一个
蓝牙
设备。在
蓝牙
规范中,它称为BD_ADDR。
根据Bluetooth Core规范文档,Bluetooth
地址
主要有两种类型:公共
地址
和随机
地址
。
蓝牙
设备必须使用这些类型的
地址
之一,并且在某些情况下,它包含两种类型的
地址
。
让我们看一
注意,转帖请写明出处和作者,谢谢。
twrp recovery已经更新了可以备份nvram分区了,有需要的也可以用recovery备份一下。
下面这个教程是教给大家备份手机nvram分区,这个分区每个手机是不一样的,里面包含了出厂的一些设置,包括imei、wifi
mac地址
蓝牙
mac地址
、手机默认工厂配置(工程模式默认值都在这个分区里)等等,建议大家都要备份一下。
好了 下面还是先
程序实现功能:开启、关闭、连接
蓝牙
,SCAN周围
蓝牙
并获得
蓝牙
名字,
地址
,信号强度RSSI,连接状态,因为当时是为了做一个
蓝牙
定位,所以按照需求还添加了一个是否是自己买的
蓝牙
基站的Textview。
当判断SCAN到的
蓝牙
里面有自己的
蓝牙
基站时,就再用一个ListView把它们的名字、
地址
、信号强度、距离和之前设定的坐标单独列出来。
程序实现效果图如下:
蓝牙
设备作为一种短距离无线连接的载体,由于其体积小、操作方便等优点,在耳机、车载和电脑键鼠等应用方面被越来越多的消费者所青睐,渐渐走入大众视野中。
作为
蓝牙
设备的使用者,我们的第一想法往往是这个
蓝牙
设备的名字是什么,这样才知道去连接哪个
蓝牙
设备,而一个
蓝牙
名字又对应着全球唯一的
蓝牙
地址
,这其实才是
蓝牙
设备的关键。本篇文章我们就来聊聊
蓝牙
名字和
地址
的这些事。
蓝牙
名字:
蓝牙
设备的...
[DESCRIPTION]对
蓝牙
地址
的
作用
及使用,我们常会有一些疑惑,下面是对其常见问题的汇总。[Branch & Version]下文涉及的NVRAM LID和
蓝牙
地址
均与具体
蓝牙
芯片有关,请注意区别
[SOLUTION]
蓝牙
地址
长度为6bytes, 每台
蓝牙
设备都应有一个唯一的
蓝牙
地址
。目前,
蓝牙
地址
的使用需要向IEEE申请授权使用。
1.
蓝牙
芯片的
地址
怎样获取?
蓝牙
地址
保...
PHP
解构
是指在PHP代码中释放变量、对象、数组等占用的资源,以便其它部分可以使用这些资源。PHP中的
解构
包括两部分:变量
解构
和对象
解构
。变量
解构
是指从一个数组或对象中提取出所有的元素,并将这些元素赋值给变量;对象
解构
是指从一个对象中提取出指定的属性,并将这些属性赋值给变量。
变量
解构
的语法如下:
list($var1, $var2, ...) = $array;
其中,$array是要
解构
的数组,$var1、$var2等是要赋值的变量名。如果要忽略某些元素,可以使用占位符"_":
list($var1, , $var3) = $array;
对象
解构
的语法如下:
$obj = new stdClass();
$obj->prop1 = 1;
$obj->prop2 = 2;
list($prop1, $prop2) = (array) $obj;
其中,$obj是要
解构
的对象,(array)$obj将对象转换为数组,$prop1、$prop2是要赋值的变量名。需要注意的是,对象
解构
只能用于PHP 7.1及以上版本。