CN115226086A - 确定服务端提供服务的方法、装置、蓝牙设备及存储介质 - Google Patents
确定服务端提供服务的方法、装置、蓝牙设备及存储介质 Download PDFInfo
- Publication number
- CN115226086A CN115226086A CN202210674724.9A CN202210674724A CN115226086A CN 115226086 A CN115226086 A CN 115226086A CN 202210674724 A CN202210674724 A CN 202210674724A CN 115226086 A CN115226086 A CN 115226086A
- Authority
- CN
- China
- Prior art keywords
- server
- hash value
- unique identifier
- address
- service provided
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/14—Direct-mode setup
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Software Systems (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种确定服务端提供服务的方法、装置、蓝牙设备及存储介质,用于在低功耗蓝牙设备服务端广播地址是随机地址的情况下,也可以实现通用属性协议服务的数据库哈希特征值功能,从而减少冗余的数据交互,优化设备的连接速度。本申请实施例方法包括:在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
Description
技术领域
本申请涉及蓝牙技术领域,尤其涉及一种确定服务端提供服务的方法、装置、蓝牙设备及存储介质。
背景技术
在现有的蓝牙核心协议中,数据库哈希(Database Hash)功能只能用在服务端广播地址是公共(Public)地址的情况下,如果广播端使用的是随机(Random)地址,由于广播地址每次重新发起广播都会改变,所以无法使用此功能。
发明内容
本申请实施例提供了一种确定服务端提供服务的方法、装置、蓝牙设备及存储介质,用于在低功耗蓝牙设备服务端广播地址是随机地址的情况下,也可以实现通用属性协议服务的数据库哈希特征值功能,从而减少冗余的数据交互,优化设备的连接速度。
本申请第一方面提供一种确定服务端提供服务的方法,可以包括:
在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;
根据所述唯一标识,查找本地保存的历史哈希值;
若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
本申请第二方面提供一种确定服务端提供服务的装置,可以包括:
获取模块,用于在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;
处理模块,用于根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
本申请第三方面提供一种蓝牙设备,可以包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器用于对应执行本申请第一方面所述的方法。
本申请实施例又一方面提供一种计算机可读存储介质,包括指令,当其在处理器上运行时,使得处理器执行本申请第一方面所述的方法。
本申请实施例又一方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本申请第一方面所述的方法。
本申请实施例又一方面公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本申请第一方面所述的方法。
从以上技术方案可以看出,本申请实施例具有以下优点:
在本申请实施例中,在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。用于在蓝牙设备连接服务端时,如果服务端的广播地址是随机地址,可以获取服务端的唯一标识和当前哈希值,并通过唯一标识可以找到蓝牙设备本地存储的历史哈希值,如果当前哈希值和历史哈希值一致,则认为服务端提供的服务未发生变化,不需要查找服务端提供的服务,可以直接使用服务端所提供的服务。即在低功耗蓝牙BLE设备服务端广播地址是随机地址的情况下,也可以实现通用属性协议服务GATT service的数据库哈希特征值Database Hash characteristic功能,从而减少冗余的数据交互,优化设备的连接速度。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,还可以根据这些附图获得其它的附图。
图1为本申请实施例中确定服务端提供服务的方法的一个实施例示意图;
图2为本申请实施例中确定服务端提供服务的方法的另一个实施例示意图;
图3为本申请实施例中确定服务端提供服务的方法的流程示意图;
图4为本申请实施例中确定服务端提供服务的装置的一个示意图;
图5为本申请实施例中蓝牙设备的一个实施例示意图;
图6为本申请实施例中蓝牙设备的另一个实施例示意图。
具体实施方式
本申请实施例提供了一种确定服务端提供服务的方法、装置、蓝牙设备及存储介质,用于在低功耗蓝牙设备服务端广播地址是随机地址的情况下,也可以实现通用属性协议服务的数据库哈希特征值功能,从而减少冗余的数据交互,优化设备的连接速度。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,都应当属于本申请保护的范围。
下面先对本申请所涉及的几个专业术语做一个简要的说明,如下所示:
1、profile
profile可以理解为一种规范,一个标准的通信协议,它存在于主机和从机中。蓝牙组织规定了一些标准的profile,例如:HID OVER GATT,防丢器,心率计等。每个profile中会包含多个服务(service),每个service代表从机(服务端)的一种能力。
2、service
service可以理解为一个服务,在低能耗蓝牙(Bluetooth Low Energy,BLE)从机中,通过有多个服务,例如电量信息服务、***信息服务等,每个service中又包含多个特征值(characteristic)。每个具体的characteristic特征值才是BLE通信的主题。比如当前的电量是80%,所以会通过电量的characteristic特征值存在从机的profile里,这样主机就可以通过这个characteristic来读取80%这个数据。
3、characteristic
characteristic特征值,BLE主从机的通信均是通过characteristic来实现,可以理解为一个标签,通过这个标签可以获取或者写入想要的内容。
4、UUID
UUID,通用唯一识别码(Universally Unique Identifier),也称为统一识别码,上面提到的service和characteristic,都需要一个唯一的UUID来标识整理一下。每个从机都会有一个叫做profile的东西存在,不管是上面的自定义的simpleprofile,还是标准的防丢器profile,都是由一系列service组成,然后每个service又包含了多个characteristic,主机和从机之间的通信,均是通过characteristic来实现。
现在低功耗蓝牙(BLE)连接都是建立在通用属性协议(Generic AttributeProfile,GATT)之上。GATT是一个在蓝牙连接之上的发送和接收很短的数据段的通用规范,这些很短的数据段被称为属性(Attribute)。它定义两个BLE设备通过叫做Service和Characteristic的东西进行通信。GATT就是使用了属性协议(Attribute Protocol,ATT)协议,ATT协议把Service,Characteristic对应的数据保存在一个查找表中,次查找表使用16bit ID(比特标识)作为每一项的索引。
一旦两个设备建立起了连接,GATT就开始起作用了,这也意味着必需完成前面的通用接入协议(Generic Access Profile,GAP)。这里需要说明的是,GATT连接,必需先经过GAP协议。实际上,在安卓(Android)开发中,可以直接使用设备的媒体接入控制(MediaAccess Control,MAC)地址,发起连接,可以不经过扫描的步骤。这并不意味不需要经过GAP,实际上在芯片级别已经给你做好了,蓝牙芯片发起连接,总是先扫描设备,扫描到了才会发起连接。
GATT连接需要特别注意的是:GATT连接是独占的。也就是一个BLE外设同时只能被一个中心设备连接。一旦外设被连接,它就会马上停止广播,这样它就对其他设备不可见了。当设备断开,它又开始广播。
中心设备和外设需要双向通信的话,唯一的方式就是建立GATT连接。
GATT通信的双方是C/S关系。外设作为GATT服务端(Server),它维持了ATT的查找表以及service和characteristic的定义。中心设备是GATT客户端(Client),它向Server发起请求。需要注意的是,所有的通信事件,都是由客户端(也叫主设备,Master)发起,并且接收服务端(也叫从设备,Slave)的响应。
一旦连接建立,外设将会给中心设备建议一个连接间隔(Connection Interval),这样,中心设备就会在每个连接间隔尝试去重新连接,检查是否有新的数据。但是,这个连接间隔只是一个建议,中心设备可能并不会严格按照这个间隔来执行,例如中心设备正在忙于连接其他的外设,或者中心设备资源太忙。
在现有的蓝牙核心协议中,数据库哈希(Database Hash)功能只能用在服务端广播地址是公共(Public)地址的情况下,如果广播端使用的是随机(Random)地址,由于广播地址每次重新发起广播都会改变,所以无法使用此功能。
在本申请实施例中,具有蓝牙功能的电子设备都可以称之为蓝牙设备。例如,具有蓝牙功能的终端设备。其中,终端设备可称之为用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal)、智能终端等,所述终端设备可以经无线接入网(radio access network,RAN)与一个或多个核心网进行通信。例如,终端设备可以是移动电话(或称为“蜂窝”电话)、具有移动终端的计算机等,终端设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置以及未来新无线(New Radio,NR)网络中的终端设备,它们与无线接入网交换语音或数据。对终端设备的说明:本申请中,终端设备还可以包括中继Relay,和基站可以进行数据通信的都可以看为终端设备,本申请中将以一般意义上的UE来介绍。
在本申请实施例中,终端设备可以是手机(Mobile Phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(Virtual Reality,VR)终端设备、增强现实(AugmentedReality,AR)终端设备、工业控制(industrial control)中的无线终端设备、无人驾驶(self driving)中的无线终端设备、远程医疗(remote medical)中的无线终端设备、智能电网(smart grid)中的无线终端设备、运输安全(transportation safety)中的无线终端设备、智慧城市(smart city)中的无线终端设备或智慧家庭(smart home)中的无线终端设备等。
作为示例而非限定,在本申请实施例中,该终端设备还可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
现有的实现方案中,因为客户端,即蓝牙设备是通过服务端的地址去存储服务端的GATT services和Database Hash characteristic的值。所以如果服务端是随机地址的情况下,因为每次广播服务端的地址都是变化的,客户端每次连接都认为是一个新设备,此功能将没有意义,也会造成客户端存储过多服务数据等问题。
针对以上描述问题,本发明实现一种在BLE设备广播使用随机地址的情况下,也能实现GATT service的Database Hash characteristic功能。当服务端地址变化,使蓝牙设备重连服务端时,能识别服务端的GATT services是否有修改,从而优化连接速度。
可以理解的是,低功耗蓝牙BLE GATT service的Database Hash characteristic是用来标识服务端的GATT services是否有增加、删除或者修改。在本申请实施例中,Database Hash characteristic的值是根据GATT database中定义的服务通过RFC-4493协议的AES-CMAC算法、计算出的一个当前哈希值(Hash)。客户端通过读取并判断此当前哈希值是否和本地保存的相同服务端的历史哈希值是否相同,从而判断服务端的services是否有修改,从而决定是否去重新执行服务发现过程。
本申请提供一种在BLE设备广播使用随机地址的情况下,也能实现通用属性配置文件(Generic Attribute profile,GATT)服务(service)的数据库哈希特征值(DatabaseHash characteristic)功能。当服务端地址发生变化,使客户端重连服务端时,能识别服务端的GATT services是否有修改,从而优化连接速度,降低设备功耗。
下面以实施例的方式,对本申请技术方案做进一步的说明,如图1所示,为本申请实施例中确定服务端提供服务的方法的一个实施例示意图,可以包括:
101、在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值。
可选的,所述在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识,可以包括但不限于以下几种实现方式:
实现方式1、在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则根据AES-CMAC(Advanced Encryption Standard-Cipher based Message AuthenticationCode,标准密码的高级加密信息识别码)算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识。
可选的,所述根据AES-CMAC算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识,可以包括:
根据第一公式,获取所述服务端的唯一标识;
所述第一公式为Uid=AES-CMACK(PAddr)/mod236;
其中,Uid为所述服务端的唯一标识,AES-CMAC为计算哈希HASH的算法,K为预设公开密钥,PAddr为所述服务端的公共地址,mod236表示取结果的低36比特。
实现方式2、在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则根据MD5信息摘要(MD5 Message-Digest Algorithm)算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识。
可选的,所述根据MD5信息摘要算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识,可以包括:
根据第二公式,获取所述服务端的唯一标识;
所述第二公式为Uid=MD5K(PAddr)/mod236;
其中,Uid为所述服务端的唯一标识,MD5为计算哈希HASH的算法,K为预设公开密钥,PAddr为所述服务端的公共地址,mod236表示取结果的低36比特。
可以理解的是,MD5信息摘要算法,是将对输入的任意长度的信息进行计算,产生一个128位长度的“指纹”或“报文摘要”,假定两个不同的文件产生相同的报文摘要或由给定的报文摘要产生原始信息在计算上是行不通的。
MD5的全称是Message-Digest algorithm 5(信息摘要算法5),MD5是一种不可逆的算法,即对生成的密文求逆,对应着无穷个逆。在90年代初开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。
实现方式3、在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则根据安全散列(Secure Hash Algorithm,SHA)算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识。
可选的,所述根据安全散列SHA算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识,可以包括:
所述第三公式为Uid=SHAK(PAddr)/mod236;
其中,Uid为所述服务端的唯一标识,SHA为计算哈希HASH的算法,K为预设公开密钥,PAddr为所述服务端的公共地址,mod236表示取结果的低36比特。
可以理解的是,安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。且若输入的消息不同,它们对应到不同字符串的几率很高。
可选的,在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值,可以包括:在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则读取所述服务端的数据库哈希特征值的属性值;根据所述服务端的数据库哈希特征值的属性值,获取所述服务端的唯一标识和当前哈希值。
102、根据所述唯一标识,查找本地保存的历史哈希值。
可选的,所述唯一标识添加在所述服务端的数据库哈希特征值的属性值中。
可选的,所述唯一标识的大小为36比特。
示例性的,在Database Hash characteristic value声明格式中,属性值(Attribute Value)字段在蓝牙技术联盟(Bluetooth Special Interest Group,SIG)协议基础上添加一个36bit唯一标识(Unique identification)字段,此字段可以通过公式(1)所示的HASH运算得到,并可以唯一标识某一设备,且在设备生命周期中是不变的。
Database Hash characteristic声明格式如表1所示:
表1
在现有技术中,属性值(Attribute Value)的存储空间为128比特,这些存储空间都用来存储数据库哈希值(Database Hash)。在本申请实施例中,将数据库哈希值(Database Hash)的存储空间压缩为92bit,属性值(Attribute Value)中剩下的36比特存储空间,用来存储唯一标识(Unique identification)。所以,也能兼容现有技术中的协议。
Uid=AES-CMACK(PAddr)/mod236公式(1)
其中,Uid:标识36bit唯一标识(Unique identification);
AES-CMAC:RFC-4493指定的计算HASH算法;
K:128-bit公开密钥,可以全零(0x00000000_00000000_00000000_00000000);
PAddr:设备的公共(Public)地址;
mod236表示取结果的低36比特(bit)。
103、若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
示例性的,蓝牙设备在连接服务端的时候,通过读取服务端的Database Hashcharacteristic的Attribute Value,获取到服务端的Uid字段和当前HASH值,通过Uid标识服务端,然后判断服务端提供的服务(Services)是否有发生变化。具体通过Uid查找本地对应保存的历史HASH值,如果当前HASH值和历史HASH值相同的话,说明服务端提供的服务(Services)未发生变化,不用继续执行查找服务端提供的服务的流程,可以直接使用服务端所提供的服务,从而节省了查找服务端提供的服务的流程,减少冗余数据的交互。
在本申请实施例中,在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。用于在蓝牙设备连接服务端时,如果服务端的广播地址是随机地址,可以获取服务端的唯一标识和当前哈希值,并通过唯一标识可以找到蓝牙设备本地存储的历史哈希值,如果当前哈希值和历史哈希值一致,则认为服务端提供的服务未发生变化,不需要查找服务端提供的服务,可以直接使用服务端所提供的服务。即在低功耗蓝牙BLE设备服务端广播地址是随机地址的情况下,也可以实现通用属性协议服务GATT service的数据库哈希特征值Database Hash characteristic功能,从而减少冗余的数据交互,优化设备的连接速度。
如图2所示,为本申请实施例中确定服务端提供服务的方法的另一个实施例示意图,可以包括:
201、在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值。
202、根据所述唯一标识,查找本地保存的历史哈希值。
203、若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
需要说明的是,本申请实施例中的步骤201-203与图1所示实施例中的步骤101-103类似,此处不再赘述。
可选的,所述方法还可以包括:在蓝牙设备停止查找该服务端提供的服务之后,蓝牙设备可以直接使用该服务端提供的服务。
204、若所述当前哈希值和所述历史哈希值不一致,则确定所述服务端提供的服务发生变化,继续查找所述服务端提供的服务。
示例性的,如果当前HASH值和历史HASH值不同的话,说明服务端提供的服务(Services)有发生变化,继续执行查找服务端提供的服务的流程。
205、将所述当前哈希值添加在所述历史哈希值中,将添加后的历史哈希值保存在缓存中。
示例性的,将当前哈希值添加在该历史哈希值中,并将添加后的历史哈希值保存在缓存(cache)中。其中,添加后的历史哈希值作为该服务端所提供更新后的服务对应的哈希值,用于下次蓝牙设备与服务端连接时使用。
如图3所示,为本申请实施例中确定服务端提供服务的方法的流程示意图。本申请解决的问题是在BLE设备服务端广播地址是随机地址的情况下,实现GATT service的Database Hash characteristic功能,从而优化连接速度。
在本申请实施例中,在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务;若所述当前哈希值和所述历史哈希值不一致,则确定所述服务端提供的服务发生变化,继续查找所述服务端提供的服务。用于在蓝牙设备连接服务端时,如果服务端的广播地址是随机地址,可以获取服务端的唯一标识和当前哈希值,并通过唯一标识可以找到蓝牙设备本地存储的历史哈希值,如果当前哈希值和历史哈希值一致,则认为服务端提供的服务未发生变化,不需要查找服务端提供的服务,可以直接使用服务端所提供的服务;如果当前哈希值和历史哈希值不一致,则认为服务端提供的服务发生变化,需要查找服务端提供的服务。即在低功耗蓝牙BLE设备服务端广播地址是随机地址的情况下,也可以实现通用属性协议服务GATT service的数据库哈希特征值Database Hash characteristic功能,从而减少冗余的数据交互,优化设备的连接速度。
如图4所示,为本申请实施例中确定服务端提供服务的装置的一个示意图,可以包括:
获取模块401,用于在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;
处理模块402,用于根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
可选的,获取模块401,具体用于根据AES-CMAC算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识;或,
获取模块401,具体用于根据MD5信息摘要算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识;或,
获取模块401,具体用于根据安全散列SHA算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识。
可选的,获取模块401,具体用于根据第一公式,获取所述服务端的唯一标识;
所述第一公式为Uid=AES-CMACK(PAddr)/mod236;
获取模块401,具体用于根据第二公式,获取所述服务端的唯一标识;
所述第二公式为Uid=MD5K(PAddr)/mod236;
获取模块401,具体用于所述第三公式为Uid=SHAK(PAddr)/mod236;
其中,Uid为所述服务端的唯一标识,AES-CMAC、MD5、SHA为计算哈希HASH的算法,K为预设公开密钥,PAddr为所述服务端的公共地址,mod236表示取结果的低36比特。
可选的,所述唯一标识添加在所述服务端的数据库哈希特征值的属性值中。
可选的,获取模块401,具体用于在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则读取所述服务端的数据库哈希特征值的属性值;根据所述服务端的数据库哈希特征值的属性值,获取所述服务端的唯一标识和当前哈希值。
可选的,处理模块402,还用于若所述当前哈希值和所述历史哈希值不一致,则确定所述服务端提供的服务发生变化,继续查找所述服务端提供的服务。
可选的,处理模块402,还用于将所述当前哈希值添加在所述历史哈希值中,将添加后的历史哈希值保存在缓存中。
如图5所示,为本申请实施例中蓝牙设备的一个实施例示意图,可以包括:如图4所示的确定服务端提供服务的装置。
如图6所示,为本申请实施例中蓝牙设备的另一个实施例示意图,可以包括:
图6示出的是与本申请实施例提供的蓝牙设备相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(wireless fidelity,Wi-Fi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路610包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了Wi-Fi模块670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变申请的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理***与处理器680逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,处理器680,用于在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;
处理器680,用于根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
可选的,处理器680,具体用于根据AES-CMAC算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识;或,
处理器680,具体用于根据MD5信息摘要算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识;或,
处理器680,具体用于根据安全散列SHA算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识。
可选的,处理器680,具体用于根据第一公式,获取所述服务端的唯一标识;
所述第一公式为Uid=AES-CMACK(PAddr)/mod236;
处理器680,具体用于根据第二公式,获取所述服务端的唯一标识;
所述第二公式为Uid=MD5K(PAddr)/mod236;
处理器680,具体用于所述第三公式为Uid=SHAK(PAddr)/mod236;
其中,Uid为所述服务端的唯一标识,AES-CMAC、MD5、SHA为计算哈希HASH的算法,K为预设公开密钥,PAddr为所述服务端的公共地址,mod236表示取结果的低36比特。
可选的,所述唯一标识添加在所述服务端的数据库哈希特征值的属性值中。
可选的,处理器680,具体用于在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则读取所述服务端的数据库哈希特征值的属性值;根据所述服务端的数据库哈希特征值的属性值,获取所述服务端的唯一标识和当前哈希值。
可选的,处理器680,还用于若所述当前哈希值和所述历史哈希值不一致,则确定所述服务端提供的服务发生变化,继续查找所述服务端提供的服务。
可选的,处理器680,还用于将所述当前哈希值添加在所述历史哈希值中,将添加后的历史哈希值保存在缓存中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种确定服务端提供服务的方法,其特征在于,包括:
在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;
根据所述唯一标识,查找本地保存的历史哈希值;
若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
2.根据权利要求1所述的方法,其特征在于,所述获取所述服务端的唯一标识,包括:
根据AES-CMAC算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识;或,
根据MD5信息摘要算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识;或,
根据安全散列SHA算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识。
3.根据权利要求2所述的方法,其特征在于,所述根据AES-CMAC算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识,包括:
根据第一公式,获取所述服务端的唯一标识;
所述第一公式为Uid=AES-CMACK(PAddr)/mod236;
所述根据MD5信息摘要算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识,包括:
根据第二公式,获取所述服务端的唯一标识;
所述第二公式为Uid=MD5K(PAddr)/mod236;
所述根据安全散列SHA算法、预设公开密钥和所述服务端的广播地址,获取所述服务端的唯一标识,包括:
所述第三公式为Uid=SHAK(PAddr)/mod236;
其中,Uid为所述服务端的唯一标识,AES-CMAC、MD5、SHA为计算哈希HASH的算法,K为预设公开密钥,PAddr为所述服务端的公共地址,mod236表示取结果的低36比特。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述唯一标识添加在所述服务端的数据库哈希特征值的属性值中。
5.根据权利要求1-3中任一项所述的方法,其特征在于,所述在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值,包括:
在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则读取所述服务端的数据库哈希特征值的属性值;
根据所述服务端的数据库哈希特征值的属性值,获取所述服务端的唯一标识和当前哈希值。
6.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:
若所述当前哈希值和所述历史哈希值不一致,则确定所述服务端提供的服务发生变化,继续查找所述服务端提供的服务。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
将所述当前哈希值添加在所述历史哈希值中,将添加后的历史哈希值保存在缓存中。
8.一种确定服务端提供服务的装置,其特征在于,包括:
获取模块,用于在蓝牙设备连接服务端时,若所述服务端的广播地址是随机地址,则获取所述服务端的唯一标识和当前哈希值;
处理模块,用于根据所述唯一标识,查找本地保存的历史哈希值;若所述当前哈希值和所述历史哈希值一致,则确定所述服务端提供的服务未发生变化,停止查找所述服务端提供的服务。
9.一种蓝牙设备,其特征在于,包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器和显示器;
所述处理器和所述显示器分别用于对应执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,包括指令,当其在处理器上运行时,使得处理器执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210674724.9A CN115226086A (zh) | 2022-06-14 | 2022-06-14 | 确定服务端提供服务的方法、装置、蓝牙设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210674724.9A CN115226086A (zh) | 2022-06-14 | 2022-06-14 | 确定服务端提供服务的方法、装置、蓝牙设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115226086A true CN115226086A (zh) | 2022-10-21 |
Family
ID=83608269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210674724.9A Pending CN115226086A (zh) | 2022-06-14 | 2022-06-14 | 确定服务端提供服务的方法、装置、蓝牙设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115226086A (zh) |
-
2022
- 2022-06-14 CN CN202210674724.9A patent/CN115226086A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10959124B2 (en) | Uplink data transmission method, terminal, network side device and system | |
CN106101979B (zh) | 用于短距离无线通信的方法和使用该方法的电子设备 | |
WO2017185711A1 (zh) | 控制智能设备的方法、装置、***和存储介质 | |
KR102107132B1 (ko) | 전자 장치의 억세스 포인트 접속 방법 및 그 전자 장치 | |
WO2018120905A1 (zh) | 终端中消息提示的方法和终端 | |
CN104683301B (zh) | 一种密码保存的方法及装置 | |
CN106446111B (zh) | 一种数据迁移的方法及终端 | |
CN108733337B (zh) | 屏幕显示方法和装置、电子设备、计算机可读存储介质 | |
CN106550361B (zh) | 一种数据传输方法,设备及计算机可读存储介质 | |
CN108834132B (zh) | 一种数据传输方法及设备和相关介质产品 | |
US20210014716A1 (en) | Method for processing communication range information and terminal | |
WO2019052291A1 (en) | UNLOCKING METHODS AND RELATED PRODUCTS | |
WO2018049935A1 (zh) | 一种数据迁移的方法及终端 | |
CN106569910B (zh) | 数据备份及传输方法及移动终端 | |
CN106484326B (zh) | 一种数据传输处理方法及移动终端 | |
US20220022148A1 (en) | Ssb transmission indication method and apparatus, terminal, device, and medium | |
WO2018049885A1 (zh) | 一种数据迁移方法及装置 | |
CN116541865A (zh) | 基于数据安全的密码输入方法、装置、设备及存储介质 | |
CN106484563B (zh) | 一种数据迁移方法及终端设备 | |
CN108256466B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111314900B (zh) | 无线连接方法、无线连接装置及移动终端 | |
WO2017000495A1 (zh) | 一种添加联系人的方法及设备 | |
CN108804434B (zh) | 一种消息查询方法、服务器及终端设备 | |
CN112888024B (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN110602766A (zh) | 一种个人热点识别方法和终端之间关联关系的确定方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |