掌桥专利:专业的专利平台
掌桥专利
首页

蓝牙连接方法、装置、电子设备及计算机可读存储介质

文献发布时间:2024-04-18 20:01:55


蓝牙连接方法、装置、电子设备及计算机可读存储介质

技术领域

本申请涉及通信技术领域,具体涉及一种蓝牙连接方法、装置、电子设备及计算机可读存储介质。

背景技术

蓝牙技术是一种近距离无线技术,能够提供低成本的近距离无线连接,并实现各种类型的数据传输,大部分的电子设备都配置有蓝牙通信功能,以满足各种场景下的数据传输需求。如何提高蓝牙连接速度,一直是蓝牙通信领域中重点研究的问题之一。

发明内容

本申请实施例公开了一种蓝牙连接方法、装置、电子设备及计算机可读存储介质,能够提高蓝牙连接速度。

本申请实施例公开了一种蓝牙连接方法,应用于第一蓝牙设备,所述方法包括:

若检测到第一应用程序发起的目标蓝牙指令,则判断所述第一应用程序是否具备数据加密功能;

若所述第一应用程序具备所述数据加密功能,则不生成临时密钥,并与所述第二蓝牙设备建立蓝牙串口通信连接,所述临时密钥用于对所述蓝牙串口通信连接传输的数据进行加密。

本申请实施例公开了一种蓝牙连接装置,应用于第一蓝牙设备,所述装置包括:

判断模块,用于若检测到第一应用程序发起的目标蓝牙指令,则判断所述第一应用程序是否具备数据加密功能;

连接模块,用于若所述第一应用程序具备所述数据加密功能,则不生成临时密钥,并与所述第二蓝牙设备建立蓝牙串口通信连接,所述临时密钥用于对所述蓝牙串口通信连接传输的数据进行加密。

本申请实施例公开了一种电子设备,包括存储器、处理器及收发单元,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述电子设备实现如上所述的方法。

本申请实施例公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被电子设备中的处理器执行时,使得所述电子设备实现如上所述的方法。

本申请实施例公开的一种蓝牙连接方法、装置、电子设备及计算机可读存储介质,第一蓝牙设备若检测到第一应用程序发起的目标蓝牙指令,则判断第一应用程序是否具备数据加密功能,若第一应用程序具备数据加密功能,则不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。在本申请实施例中,在发起目标蓝牙指令的第一应用程序具备数据加密功能的情况下,由于第一应用程序具备数据加密功能,会对传输的数据进行加密,保证了数据传输安全,因此可以跳过生成临时密钥的流程,第一蓝牙设备可直接与第二蓝牙设备建立蓝牙串口通信连接,节省了生成临时密钥所耗费的时间,既保证了数据传输的安全性,也提高了第一蓝牙设备与第二蓝牙设备建立蓝牙串口通信连接的速度。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为相关技术中的两个蓝牙设备建立蓝牙连接的示意图;

图2为一个实施例中蓝牙连接方法的应用场景图;

图3为一个实施例中蓝牙连接方法的流程图;

图4为另一个实施例中蓝牙连接方法的流程图;

图5为一个实施例中蓝牙连接方法的时序示意图;

图6为另一个实施例中蓝牙连接方法的流程图;

图7为一个实施例中蓝牙连接装置的框图;

图8为一个实施例中电子设备的结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第二蓝牙设备称为第一蓝牙设备,且类似地,可将第一蓝牙设备称为第二蓝牙设备。第二蓝牙设备和第一蓝牙设备两者都是蓝牙设备,但其不是同一蓝牙设备。本申请所使用的术语“多个”指的是两个及两个以上。本申请所使用的术语“和/或”指的是其中的一种方案,或是其中多种方案的任意组合。

在相关技术中,在两个蓝牙设备需要进行数据传输的场景中,其中一个蓝牙设备可利用BLE(Bluetooth Low Energy,蓝牙低功能)广播进行扫描来发现对方,二者可以建立BLE连接,然后再建立经典蓝牙的SPP Socket(Serial Port Profile Socket,串行端口配置协议套接字)连接。

示例性地,可如图1所示,两个蓝牙设备在建立BLE连接之后,进行GATT(GenericAttribute Profile,通用属性配置协议)数据交互,由于GATT数据交互不需要进行加密,因此两个蓝牙设备不会进行密钥配对过程。随后两个蓝牙设备建立经典蓝牙连接,为了保证数据传输安全,经典蓝牙的SPP Socket连接需要进行加密,在Insecure SPP(非安全SPP)的情况下,会生成临时密钥,如临时Link Key(链路密钥)等,然后再建立SPP Socket连接,之后两个蓝牙设备可利用该SPP Socket连接进行数据传输。由于两个蓝牙设备每次建立SPPSocket连接之前都会先生成临时密钥,该过程需要耗费1~2秒不等的时间,影响了蓝牙连接速度。

图2为一个实施例中蓝牙连接方法的应用场景图。如图2所示,第一蓝牙设备210与第二蓝牙设备220之间可建立蓝牙连接,第一蓝牙设备210及第二蓝牙设备220可包括但不限于手机、车载终端、可穿戴设备、平板电脑、PC(personal computer,个人计算机)、智能家居设备等支持蓝牙通信功能的电子设备,第一蓝牙设备210与第二蓝牙设备220可以是相同类型的电子设备,也可以是不同类型的电子设备。

第一蓝牙设备210与第二蓝牙设备220之间建立的蓝牙连接可包括但不限于经典蓝牙连接、BLE连接等。其中,经典蓝牙连接指的是基于经典蓝牙协议建立的蓝牙通信连接,BLE连接指的是基于BLE协议建立的蓝牙通信连接,经典蓝牙协议通常泛指在蓝牙协议4.0版本以下的蓝牙协议,BLE协议通常泛指在蓝牙协议4.0版本以上的蓝牙协议。

进一步地,第一蓝牙设备210与第二蓝牙设备22可以是支持蓝牙双模的电子设备,支持蓝牙双模的电子设备可指的是同时支持经典蓝牙协议及BLE协议的电子设备。第一蓝牙设备210与第二蓝牙设备22之间可同时建立BLE连接及经典蓝牙连接。

在本申请实施例中,若第一蓝牙设备110检测到第一应用程序发起的目标蓝牙指令,可判断该第一应用程序是否具备数据加密功能。若第一应用程序具备数据加密功能,则第一蓝牙设备110与第二蓝牙设备120可不生成临时密钥,第一蓝牙设备110与第二蓝牙设备120可直接建立蓝牙串口通信连接,该临时密钥用于对蓝牙串口通信连接传输的数据进行加密。节省了生成临时密钥所耗费的时间,提高了第一蓝牙设备110与第二蓝牙设备120建立蓝牙串口通信连接的速度。

如图3所示,在一个实施例中,提供一种蓝牙连接方法,可应用于上述的第一蓝牙设备,该方法可包括以下步骤:

步骤310,若检测到第一应用程序发起的目标蓝牙指令,则判断第一应用程序是否具备数据加密功能,若是,则执行步骤320,若否,则执行步骤330。

第一蓝牙设备中可安装有一个或多个应用程序,在第一应用程序运行的过程中,若第一应用程序具备通信需求,则第一应用程序可发起目标蓝牙指令,该目标蓝牙指令可用于指示与第二蓝牙设备建立蓝牙连接,进一步地,该目标蓝牙指令可用于指示与第二蓝牙设备建立蓝牙串口通信连接。该通信需求可包括与第二蓝牙设备建立蓝牙连接,并与第二蓝牙设备进行数据传输的需求,或者与当前建立蓝牙连接的第二蓝牙设备进行数据传输的需求等。进一步地,该通信需求可以是与第二蓝牙设备中的第三应用程序建立蓝牙通信通道,并与第二蓝牙设备中的第三应用程序进行数据传输的需求,可选地,该第三应用程序可以是与第一应用程序相同的应用程序,或者与第一应用程序属于同一个应用系列的应用程序,例如,第一应用程序为手机客户端的A视频应用,第二应用程序为电视客户端的A视频应用。

在一些实施例中,在第一应用程序具备通信需求时,第一应用程序可调用蓝牙连接接口,以生成目标蓝牙指令。可选地,该蓝牙连接接口可包括串口通信连接接口,通过调用串口通信连接接口,可生成用于指示建立蓝牙串口通信连接的目标蓝牙指令。该蓝牙串口通信连接可指的是在两个蓝牙设备之间创建串口通信通道,允许两个蓝牙设备采用串口的方式进行数据流传输。串口通信连接接口可包括SPP套接字连接接口,例如,BluetoothSocket类相关的接口等。

若第一蓝牙设备检测到第一应用程序发起的目标蓝牙指令,则可判断第一应用程序是否具备数据加密功能,该数据加密功能指的是对传输的数据进行加密的功能。若第一应用程序具备数据加密功能,则第一应用程序传输数据之前,会对待传输的数据进行加密,再将加密之后的数据发送给第一蓝牙设备的蓝牙模块,通过蓝牙模块发送给其它蓝牙设备。

在一些实施例中,第一蓝牙设备中可预先存储有加密应用名单,该加密应用名单中可包括一个或多个具备数据加密功能的应用程序的应用信息,该应用信息可包括但不限于应用名称、包名、应用编号、版本号、厂商信息等中的一种或多种。若第一蓝牙设备检测到第一应用程序发起的目标蓝牙指令,则可获取该第一应用程序的应用信息,并将第一应用程序的应用信息与加密应用名单中存储的各个应用程序的应用信息进行比对,以判断加密应用名单中是否存储有第一应用程序的应用信息。若检测到加密应用名单中存储有第一应用程序的应用信息,则可确定第一应用程序具备数据加密功能,若加密应用名单中未存储第一应用程序的应用信息,则可确定第一应用程序不具备数据加密功能。

可选地,加密应用名单中包含的具备数据加密功能的应用程序的应用信息,可以是由第一蓝牙设备的厂商端获取,并维护到第一蓝牙设备中。例如,第一蓝牙设备的厂商端可以分析市面上的各个应用程序是否具备数据加密功能,并获取具备数据加密功能的应用程序的应用信息,生成加密应用名单,并存储到第一蓝牙设备中。厂商端可以对加密应用名单进行更新维护,可将每次更新的加密应用名单上传到服务器,再由服务器下发到第一蓝牙设备,以对第一蓝牙设备中存储的加密应用名单进行更新。进一步地,厂商端维护的加密应用名单中包含的应用程序,可以是蓝牙设备的用户经常使用的应用程序,例如,厂商端可以获取市面上下载量大于预设数值的应用程序,并分析是否具备数据加密功能,分析的方式可以是通过检测应用程序传输的数据流是否为加密数据、向应用程序的研发团队确认应用程序是否具备数据加密功能的方式,但不限于此。

可选地,第一蓝牙设备也可自行对加密应用名单进行更新,当第一蓝牙设备安装有新的应用程序时,第一蓝牙设备可分析该新的应用程序的程序代码,并判断该新的应用程序是否具备数据加密功能。或者,第一蓝牙设备可以在该新的应用程序首次传输数据时,拦截该新的应用程序传输的数据,并分析该传输的数据是否为加密过的数据,从而判断该新的应用程序是否具备数据加密功能。若确定新的应用程序具备数据加密功能,则可将该新的应用程序的应用信息添加到加密应用名单中。

第一蓝牙设备通过存储的加密应用名单判断第一应用程序是否具备数据加密功能,可以准确确定第一应用程序是否具备数据加密功能,且判断方式简单、快捷。

在另一些实施例中,第一应用程序发起的目标蓝牙指令中可携带加密字段,该加密字段可用于指示第一应用程序是否具备数据加密功能,加密字段可以是由数字、字母及符号等中的一种或多种组成的字符串。例如,加密字段为Yes,表示第一应用程序具备数据加密功能,加密字段为No,表示第一应用程序不具备数据加密功能。第一应用程序可根据自身是否具备数据加密功能生成携带相应加密字段的目标蓝牙指令。第一蓝牙设备检测到该目标蓝牙指令,根据该目标蓝牙指令携带的加密字段判断第一应用程序是否具备数据加密功能,可以更加准确地判断第一应用程序是否具备数据加密功能。

步骤320,不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

在第一应用程序具备数据加密功能的情况下,第一蓝牙设备与第二蓝牙设备可跳过密钥生成流程,不生成临时密钥,第一蓝牙设备直接与第二蓝牙设备建立蓝牙串口通信连接。其中,密钥生成流程指的是生成蓝牙串口通信连接的临时密钥的流程,该临时密钥用于对该蓝牙串口通信连接传输的数据进行加密。临时密钥可包括临时Link Key(链路密钥)等,临时密钥仅用于对本次建立的蓝牙串口通信连接进行加密,当本次建立的蓝牙串口通信连接,临时密钥则会失效,当下一次重新建立蓝牙串口通信连接时,再重新生成新的临时密钥。

若第一应用程序具备数据加密功能,说明第一应用程序会对向其它蓝牙设备传输的数据进行加密,因此,不需要再对蓝牙串口通信连接进行二次加密。在本申请实施例中,若第一应用程序具备数据加密功能,第一蓝牙设备与第二蓝牙设备可跳过密钥生成流程,不生成临时密钥,对于传输数据的蓝牙串口通信连接不进行加密,第一蓝牙设备直接与第二蓝牙设备建立蓝牙串口通信连接。该蓝牙串口通信连接可用于传输第一应用程序的应用数据,包括向第二蓝牙设备发送第一应用程序的数据,和/或接收第二蓝牙设备发送给第一应用程序的数据。

作为一种具体实施方式,第一蓝牙设备可与第二蓝牙设备建立经典蓝牙链路,例如ACL链路、SCO链路等,在建立经典蓝牙链路之后不生成临时密钥,直接与第二蓝牙设备建立蓝牙串口通信连接,例如,第一蓝牙设备在与第二蓝牙设备建立ACL链路之后直接建立SPP Socket连接。

第二蓝牙设备可以是在第一蓝牙设备周围的其它蓝牙设备,第一蓝牙设备可通过蓝牙扫描的方式,扫描到第二蓝牙设备,并与第二蓝牙设备建立蓝牙连接。

进一步地,第二蓝牙设备可以是安装且运行第三应用程序的蓝牙设备,第一蓝牙设备中的第一应用程序可发起目标蓝牙指令,第一蓝牙设备根据该目标蓝牙指令与第二蓝牙设备建立蓝牙串口通信连接,使得第一蓝牙设备中的第一应用程序与第二蓝牙设备中的第三应用程序可通过该蓝牙串口通信连接进行数据传输。该第三应用程序可以是与第一应用程序相同的应用程序,或者与第一应用程序属于同一个应用系列的应用程序,因此,在第一应用程序具备数据加密功能的情况下,第三应用程序也具备数据加密功能,在不对蓝牙串口通信连接进行加密的情况下,第一应用程序和第三应用程序也可保证传输的数据的安全性。

步骤330,进行密钥生成流程,以生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

若第一应用程序不具备数据加密功能,则为了保证数据传输的安全性,第一蓝牙设备与第二蓝牙设备可进行密钥生成流程,二者协商生成临时密钥,并在生成临时密钥之后,第一蓝牙设备与第二蓝牙设备建立蓝牙串口通信连接。该蓝牙串口通信连接可用于传输第一应用程序的应用数据,包括向第二蓝牙设备发送第一应用程序的数据,和/或接收第二蓝牙设备发送给第一应用程序的数据。第一蓝牙设备与第二蓝牙设备通过该蓝牙串口通信连接传输的数据,可根据该临时密钥进行加密,以保证数据传输的安全性。

作为一种具体实施方式,第一蓝牙设备可与第二蓝牙设备建立经典蓝牙链路,例如ACL链路、SCO链路等,在建立经典蓝牙链路之后进行密钥生成流程,二者协商生成临时密钥,并在生成临时密钥之后建立蓝牙串口通信连接。

通过判断发起目标蓝牙指令的第一应用程序是否具备数据加密功能,灵活调整密钥生成流程,可以改善蓝牙串口通信连接的连接速度。

在本申请实施例中,在发起目标蓝牙指令的第一应用程序具备数据加密功能的情况下,由于第一应用程序具备数据加密功能,会对传输的数据进行加密,保证了数据传输安全,因此可以跳过生成临时密钥的密钥生成流程,第一蓝牙设备可直接与第二蓝牙设备建立蓝牙串口通信连接,节省了密钥生成流程所耗费的时间,既保证了数据传输的安全性,也提高了第一蓝牙设备与第二蓝牙设备建立蓝牙串口通信连接的速度。

如图4所示,在另一个实施例中,提供一种蓝牙连接方法,可应用于上述的第一蓝牙设备,该方法可包括以下步骤:

步骤402,若检测到第一应用程序发起的目标蓝牙指令,扫描并获取第二蓝牙设备的设备信息。

若第一蓝牙设备检测到第一应用程序发起的目标蓝牙指令,可根据该目标蓝牙指令扫描周围存在的蓝牙设备,并获取扫描到的第二蓝牙设备的设备信息。

作为一种实施方式,第一蓝牙设备可开启扫描模式,并对周围的蓝牙设备进行扫描,第一蓝牙设备可向周围的第二蓝牙设备发送扫描请求(inquiry request),第二蓝牙设备接收到该扫描请求向可向第一蓝牙设备返回扫描响应(inquiry respond)。第一蓝牙设备可根据接收的扫描响应获取第二蓝牙设备的设备信息,该设备信息可包括但不限于第二蓝牙设备的蓝牙地址(如经典蓝牙地址、BLE地址等)、蓝牙设备的设备名称、MAC地址等中的一种或多种。

作为另一种实施方式,第一蓝牙设备可发送BLE广播信号,该BLE广播信号可用于扫描在第一蓝牙设备周围的蓝牙设备。当第二蓝牙设备接收到该BLE广播信号后,可向第一蓝牙设备发送响应信息,第一蓝牙设备可接收第二蓝牙设备发送的针对BLE广播信号的响应信息,根据该响应信息获取第二蓝牙设备的设备信息。进一步地,第一蓝牙设备可根据第二蓝牙设备的设备信息,与第二蓝牙设备建立BLE连接,并在建立BLE连接之后建立经典蓝牙连接。

可选地,在第一蓝牙设备发送扫描请求或者BLE广播信号时,该扫描请求或者BLE广播信号中可携带有第一应用程序的应用信息,扫描请求或者BLE广播信号可用于扫描在第一蓝牙设备周围的安装有第三应用程序的蓝牙设备。在第二蓝牙设备接收到第一蓝牙设备发送的扫描请求或者BLE广播信号时,可解析接收到的扫描请求或者BLE广播信号,得到第一应用程序的应用信息,并根据该第一应用程序的应用信息,判断自身是否运行相同的应用程序或运行与该第一应用程序属于同一个应用系列的应用程序,即是否运行第三应用程序。若第二蓝牙设备运行第三应用程序,则可对接收到的扫描请求或者BLE广播信号进行响应,从而与第一蓝牙设备建立蓝牙串口通信连接,实现第一应用程序与第三应用程序之间的数据传输。通过在扫描请求或者BLE广播信号中携带第一应用程序的应用信息,可以扫描发现在第一蓝牙设备周围安装有相同应用程序或者同一个应用系列的应用程序的第二蓝牙设备,从而可以建立两个应用程序的数据传输通道,且可使判断是否进行密钥生成流程更加准确,避免出现第一应用程序具备数据加密功能但是第二蓝牙设备发送的数据未加密的情况,降低数据泄露风险。

步骤404,判断第一应用程序是否具备数据加密功能,若是,则执行步骤406,若否,则执行步骤410。

步骤404的描述可参考上述实施例中步骤310的描述,在此不再重复赘述。

需要说明的是,步骤404可以是在第一蓝牙设备扫描并获取第二蓝牙设备的设备信息之前进行,也可以是在第一蓝牙设备扫描并获取第二蓝牙设备的设备信息之后进行,或者二者可以同时进行,本申请实施例对两个步骤之间的时序关系不作限定。

步骤406,根据第二蓝牙设备的设备信息与第二蓝牙设备建立经典蓝牙链路,不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

在第一应用程序具备数据加密功能的情况下,第一蓝牙设备可根据第二蓝牙设备的设备信息与第二蓝牙设备建立经典蓝牙链路,并在建立经典蓝牙链路之后跳过密钥生成流程,不生成临时密钥,直接与第二蓝牙设备建立蓝牙串口通信连接。

示例性地,图5为一个实施例中蓝牙连接方法的时序示意图。如图5所示,蓝牙设备B可发送BLE广播,蓝牙设备A接收到蓝牙设备B发送的BLE广播后,可对该BLE广播进行响应,并与蓝牙设备A建立BLE连接,蓝牙设备A可与蓝牙设备B进行BLE GATT数据交互。在蓝牙设备A与蓝牙设备B进行BLE GATT数据交互之后,蓝牙设备A与蓝牙设备B可建立经典蓝牙连接,进一步地,蓝牙设备A与蓝牙设备B可建立ACL等经典蓝牙链路,然后蓝牙设备A与蓝牙设备B建立SPP Socket连接。在蓝牙设备A与蓝牙设备B建立SPP Socket连接之后,二者可通过该SPP Socket连接进行应用数据传输。相较于图1所示的相关技术中的蓝牙连接流程,减少了生成临时密钥的过程,提高了双连接场景下,建立SPP Socket连接的速度。

步骤408,获取第一应用程序待传输的第三数据,并通过蓝牙串口通信连接向第二蓝牙设备发送第三数据;第三数据为经过第一应用程序加密过的数据;和/或,通过蓝牙串口通信连接接收第二蓝牙设备发送的第四数据,第四数据为第二蓝牙设备中运行的第三应用程序加密并发送的。

在第一应用程序具备数据加密功能的情况下,第一蓝牙设备与第二蓝牙设备之间通过建立的蓝牙串口通信连接进行数据传输时,第一应用程序可对待传输的数据进行加密,得到第三数据,再将第三数据传递到蓝牙模块,第一蓝牙设备的蓝牙模块获取第一应用程序待传输的第三数据,并通过蓝牙串口通信连接向第二蓝牙设备发送该第三数据。在一些实施例中,第二蓝牙设备的蓝牙模块接收第一蓝牙设备发送的第三数据后,可将第三数据传递给上层的第三应用程序,第三应用程序对该第三数据进行解密,得到第一应用程序发送的数据。

同理,第二蓝牙设备也可通过蓝牙串口通信连接向第一蓝牙设备发送第四数据。第二蓝牙设备中运行的第三应用程序可对待传输的数据进行加密,得到第四数据,再将第四数据传递到蓝牙模块,第二蓝牙设备的蓝牙模块获取第三应用程序待传输的第四数据,并通过蓝牙串口通信连接向第一蓝牙设备发送该第四数据。第一蓝牙设备的蓝牙模块接收第二蓝牙设备发送的第四数据后,可将第四数据传递给上层的第一应用程序,第一应用程序对该第三数据进行解密,得到第三应用程序发送的数据。

在本申请实施例中,在第一应用程序具备数据加密功能的情况下,第一蓝牙设备的蓝牙模块不需要对传输的数据进行加密及解密,蓝牙模块获取到上层的应用程序传递的数据后直接通过蓝牙串口通信连接进行传输,在保证数据安全的同时,提高了数据传输效率。

步骤410,根据第二蓝牙设备的设备信息与第二蓝牙设备建立经典蓝牙链路,进行密钥生成流程,以生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

在第一应用程序不具备数据加密功能的情况下,第一蓝牙设备可根据第二蓝牙设备的设备信息与第二蓝牙设备建立经典蓝牙链路,并在建立经典蓝牙链路之后进行密钥生成流程,生成临时密钥,再与第二蓝牙设备建立蓝牙串口通信连接。

步骤412,获取第一应用程序待传输的第一数据,根据临时密钥对待传输的第一数据进行加密,并通过蓝牙串口通信连接向第二蓝牙设备发送加密后的第一数据;和/或,通过蓝牙串口通信连接接收第二蓝牙设备发送的第二数据,根据临时密钥对第二数据进行解密,得到解密后的第二数据。

在第一应用程序不具备数据加密功能的情况下,第一蓝牙设备与第二蓝牙设备之间通过建立的蓝牙串口通信连接进行数据传输时,第一应用程序可将待传输的第一数据传递到蓝牙模块,蓝牙模块可根据临时密钥对第一应用程序待传输的第一数据进行加密,并通过蓝牙串口通信连接向第二蓝牙设备发送加密后的第一数据。在一些实施例中,第二蓝牙设备的蓝牙模块接收第一蓝牙设备发送的加密后的第一数据后,可根据临时密钥对加密后的第一数据进行解密,以得到第一应用程序传输的第一数据,再将该第一数据传递给上层的应用程序。

同理,第二蓝牙设备也可通过蓝牙串口通信连接向第一蓝牙设备发送数据。第二蓝牙设备的蓝牙模块可根据临时密钥对待传输的数据进行加密,得到第二数据,并通过蓝牙串口通信连接向第一蓝牙设备发送第二数据。第一蓝牙设备的蓝牙模块通过蓝牙串口通信连接接收第二蓝牙设备发送的第二数据后,可根据临时密钥对第二数据进行解密,得到解密后的第二数据,再将解密后的第二数据传递给上层的第一应用程序。

需要说明的是,上述的蓝牙设备根据临时密钥对数据进行加密,可以是直接加密或间接加密的方式,该直接加密指的是直接将临时密钥作为加密密钥,利用临时密钥对数据进行加密;间接加密指的是根据临时密钥生成加密密钥,利用生成的加密密钥对数据进行加密。本申请实施例对蓝牙串口通信连接传输的数据进行加密、解密的具体方式不作限定。

在本申请实施例中,可判断发起目标蓝牙指令的第一应用程序是否具备数据加密功能,灵活处于密钥生成流程,在发起目标蓝牙指令的第一应用程序具备数据加密功能的情况下,第一蓝牙设备直接与第二蓝牙设备建立蓝牙串口通信连接,省略了在建立蓝牙串口通信连接之前的密钥生成流程,提高了建立蓝牙串口通信连接的速度;在发起目标蓝牙指令的第一应用程序不具备数据加密功能的情况下,则进行密钥生成流程,可以保证数据传输的安全性,提高了蓝牙应用的灵活性。

如图6所示,在另一个实施例中,提供一种蓝牙连接方法,可应用于上述的第一蓝牙设备,该方法可包括以下步骤:

步骤602,若检测到第一应用程序发起的目标蓝牙指令,扫描并获取第二蓝牙设备的设备信息。

步骤602的描述可参考上述实施例中步骤402的相关描述,在此不再重复赘述。

步骤604,识别目标蓝牙指令对应的蓝牙连接类型。

第一蓝牙设备可识别第一应用程序发起的目标蓝牙指令对应的蓝牙连接类型,该蓝牙连接类型指的是需求建立的蓝牙连接的类型,蓝牙连接类型可包括配对连接类型、蓝牙套接字类型、BLE连接类型等中的任一种,但不限于此。

其中,配对连接类型指的是与第二蓝牙设备进行蓝牙连接并进行配对操作,配对操作可指的是两个蓝牙设备可协商生成链路密钥,该链路密钥可用于对通过蓝牙连接传输的数据进行加密,区别于临时密钥,该链路密钥是长久有效的密钥,可以存储在两个蓝牙设备中,即便两个蓝牙设备断开蓝牙连接又重新建立蓝牙连接,依然可以对通过蓝牙连接传输的数据进行加密。配对操作通常是两个蓝牙设备首次建立蓝牙连接,或者两个蓝牙设备非首次建立蓝牙连接但是未进行过配对,或者两个蓝牙设备之前进行过配对但是删除了生成的链路密钥等场景中进行。

蓝牙套接字类型指的是与第二蓝牙设备建立蓝牙串口通信连接,进一步地,蓝牙套接字类型可指的是与第二蓝牙设备建立SPP套接字连接。

BLE连接类型指的是与第二蓝牙设备建立BLE连接。

作为一种具体实施方式,在检测到第一应用程序发起的目标蓝牙指令的情况下,第一蓝牙设备可获取第一应用程序调用的蓝牙连接接口,并根据第一应用程序调用的蓝牙连接接口识别目标蓝牙指令对应的蓝牙连接类型。例如,第一应用程序调用SPP套接字连接接口,则可确定目标蓝牙指令对应的蓝牙连接类型为蓝牙套接字类型,若第一应用程序调用的是设备连接接口,如BluetoothDevice类相关的接口等,则可确定目标蓝牙指令对应的蓝牙连接类型为配对连接类型。

可选地,由于在目标蓝牙指令为配对连接类型的情况下,在建立蓝牙连接时会进行配对操作,或者之前进行过配对操作,两个蓝牙设备中存储有链路密钥,后续建立的蓝牙串口通信连接可以直接利用该存储的链路密钥进行数据加密,因此不会再进行生成临时密钥的密钥生成流程。而对于目标蓝牙指令为BLE连接类型的情况,两个蓝牙设备之间仅会建立BLE连接,不会建立蓝牙串口通信连接。因此,在本申请实施例中,在第一应用程序发起的目标蓝牙指令对应的蓝牙连接类型不为蓝牙套接字类型的情况下,可不判断第一应用程序是否具备数据加密功能,直接根据目标蓝牙指令与第二蓝牙设备建立蓝牙连接,可以提高蓝牙连接效率。

若第一应用程序发起的目标蓝牙指令对应的蓝牙连接类型为蓝牙套接字类型,则第一蓝牙设备可判断第一应用程序是否具备数据加密功能,从而确定是否进行生成临时密钥的密钥生成流程。

在一些实施例中,在第一蓝牙设备检测到第一应用程序发起的目标蓝牙指令的情况下,在与第二蓝牙设备建立蓝牙串口通信连接之前,可先判断是否存储有与第二蓝牙设备对应的链路密钥,该链路密钥指的是配对操作过程中生成的链路密钥,配对操作可以是第一蓝牙设备本次与第二蓝牙设备建立蓝牙连接的过程中进行的,也可以是第一蓝牙设备之前与第二蓝牙设备建立蓝牙连接时进行的。若存储有与第二蓝牙设备对应的链路密钥,由于后续建立的蓝牙串口通信连接传输的数据可利用该链路密钥进行加密,因此不需要进行密钥生成流程,可以不判断第一应用程序是否具备数据加密功能。不论第一应用程序是否具备数据加密功能,第一蓝牙设备可直接与第二蓝牙设备建立蓝牙串口通信连接,并根据存储的链路密钥对通过蓝牙串口通信连接传输的数据进行加密,以保证数据安全性。

在本申请实施例中,在相关技术中会进行密钥生成流程的场景中,判断发起目标蓝牙指令的第一应用场景是否具备数据加密功能,从而可以确定是否进行密钥生成流程,提高蓝牙连接的灵活性,并改善蓝牙串口通信连接的连接速度。

步骤606,若蓝牙连接类型为蓝牙套接字类型,则判断第一应用程序是否具备数据加密功能,若是,则执行步骤608,若否,则执行步骤612。

步骤608,根据第二蓝牙设备的设备信息与第二蓝牙设备建立经典蓝牙链路,不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

步骤610,获取第一应用程序待传输的第三数据,并通过蓝牙串口通信连接向第二蓝牙设备发送第三数据;第三数据为经过第一应用程序加密过的数据;和/或,通过蓝牙串口通信连接接收第二蓝牙设备发送的第四数据,第四数据为第二蓝牙设备中运行的第三应用程序加密并发送的。

步骤612,根据第二蓝牙设备的设备信息与第二蓝牙设备建立经典蓝牙链路,进行密钥生成流程,以生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

步骤614,获取第一应用程序待传输的第一数据,根据临时密钥对待传输的第一数据进行加密,并通过蓝牙串口通信连接向第二蓝牙设备发送加密后的第一数据;和/或,通过蓝牙串口通信连接接收第二蓝牙设备发送的第二数据,根据临时密钥对第二数据进行解密,得到解密后的第二数据。

步骤606~步骤614的描述,可参考上述各实施例中的相关描述,在此不再重复赘述。

在一些实施例中,若第一蓝牙设备检测到第一应用程序停止通信,则断开蓝牙串口通信连接。可选地,第一蓝牙设备检测到第一应用程序停止通信,可以是第一蓝牙设备检测到第一应用程序停止运行(如第一应用程序关闭等),也可以是用户在第一应用程序中进行断开通信连接的操作,若第一蓝牙设备检测到针对第一应用程序的断开通信连接的操作,则可确定检测到第一应用程序停止通信等。

当第一蓝牙设备检测到第一应用程序停止通信时,可断开蓝牙串口通信连接,在断开该蓝牙串口通信连接之后,若检测到第二应用程序发起的目标蓝牙指令,则第一蓝牙设备可判断第二应用程序是否具备数据加密功能,若第二应用程序具备数据加密功能,则不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。本次建立的蓝牙串口通信连接可用于传输第二应用程序的应用数据,包括向第二蓝牙设备发送第二应用程序的数据,和/或接收第二蓝牙设备发送给第二应用程序的数据。

在第一蓝牙设备发生应用切换的情况下,如从第一应用程序切换为第二应用程序,断开第一应用程序对应的蓝牙串口通信连接,在第二应用程序有通信需求时,第二应用程序可通过调整蓝牙连接接口生成目标蓝牙指令,第一蓝牙设备可判断发起目标蓝牙指令的第二应用程序是否具备数据加密功能,从而决定在与第二蓝牙设备建立第二应用程序对应的蓝牙串口通信连接之前,是否进行密钥生成流程。

需要说明的是,第一蓝牙设备判断第二应用程序是否具备数据加密功能,以及第二应用程序通过蓝牙串口通信连接进行数据传输的过程,可与上述各实施例中描述的第一蓝牙设备判断第一应用程序是否具备数据加密功能,以及第一应用程序通过蓝牙串口通信连接进行数据传输的过程类似,在此不再重复赘述。可选地,由于第一蓝牙设备之前与第二蓝牙设备建立蓝牙连接,因此在断开第一应用程序对应的蓝牙串口通信连接时,可以保留第一蓝牙设备与第二蓝牙设备之间的蓝牙经典链路,从而在后续与第二蓝牙设备建立新的蓝牙串口通信连接(即第二应用程序对应的蓝牙串口通信连接)之前,不需要再建立蓝牙经典链路。

在本申请实施例中,针对不同应用程序发起的目标蓝牙指令,第一蓝牙设备均可判断发起的目标蓝牙指令的应用程序是否具备数据加密功能,从而确定是否进行密钥生成流程,同时兼顾数据传输的安全性及建立蓝牙串口通信连接的速度,提高了蓝牙连接的灵活性。

如图7所示,在一个实施例中,提供一种蓝牙连接装置700,可应用于上述的第一蓝牙设备,蓝牙连接装置700可包括判断模块710及连接模块720。

判断模块710,用于若检测到第一应用程序发起的目标蓝牙指令,则判断第一应用程序是否具备数据加密功能。

连接模块720,用于若第一应用程序具备数据加密功能,则不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接,临时密钥用于对蓝牙串口通信连接传输的数据进行加密。

在一个实施例中,蓝牙连接装置700还包括数据传输模块。

连接模块720,还用于若第一应用程序不具备数据加密功能,则进行密钥生成流程,以生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

数据传输模块,用于获取第一应用程序待传输的第一数据,根据临时密钥对待传输的第一数据进行加密,并通过蓝牙串口通信连接向第二蓝牙设备发送加密后的第一数据;和/或,通过蓝牙串口通信连接接收第二蓝牙设备发送的第二数据,根据临时密钥对所述第二数据进行解密,得到解密后的第二数据。

在一个实施例中,蓝牙连接装置700还包括扫描模块。

扫描模块,用于扫描并获取第二蓝牙设备的设备信息。

连接模块720,还用于根据第二蓝牙设备的设备信息与第二蓝牙设备建立经典蓝牙链路,不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

在一个实施例中,扫描模块,还用于发送BLE广播信号,BLE广播信号用于扫描在第一蓝牙设备周围的蓝牙设备;接收第二蓝牙设备发送的针对BLE广播信号的响应信息,根据响应信息获取第二蓝牙设备的设备信息。

连接模块720,还用于根据第二蓝牙设备的设备信息与第二蓝牙设备建立BLE连接。

在一个实施例中,数据传输模块,还用于获取第一应用程序待传输的第三数据,并通过蓝牙串口通信连接向第二蓝牙设备发送第三数据;第三数据为经过第一应用程序加密过的数据;和/或,通过蓝牙串口通信连接接收第二蓝牙设备发送的第四数据,第四数据为第二蓝牙设备中运行的第三应用程序加密并发送的。

在一个实施例中,连接模块720,还用于若检测到第一应用程序停止通信,则断开蓝牙串口通信连接。

判断模块710,还用于若检测到第二应用程序发起的目标蓝牙指令,则判断第二应用程序是否具备数据加密功能。

连接模块720,还用于若所第二应用程序具备所述数据加密功能,则不生成临时密钥,并与第二蓝牙设备建立蓝牙串口通信连接。

在本申请实施例中,在发起目标蓝牙指令的第一应用程序具备数据加密功能的情况下,由于第一应用程序具备数据加密功能,会对传输的数据进行加密,保证了数据传输安全,因此可以跳过生成临时密钥的密钥生成流程,第一蓝牙设备可直接与第二蓝牙设备建立蓝牙串口通信连接,节省了密钥生成流程所耗费的时间,既保证了数据传输的安全性,也提高了第一蓝牙设备与第二蓝牙设备建立蓝牙串口通信连接的速度。

图8为一个实施例中电子设备的结构框图。如图8所示,电子设备800可以包括一个或多个如下部件:处理器810、与处理器810耦合的存储器820,其中存储器820可存储有一个或多个计算机程序,一个或多个计算机程序可以被配置为由一个或多个处理器810执行时,使得电子设备800实现如上述各实施例描述的方法。

处理器810可以包括一个或者多个处理核。处理器810利用各种接口和线路连接整个电子设备800内的各个部分,通过运行或执行存储在存储器820内的指令、程序、代码集或指令集,以及调用存储在存储器820内的数据,执行电子设备800的各种功能和处理数据。可选地,处理器810可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器810可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器810中,单独通过一块通信芯片进行实现。

存储器820可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。存储器820可用于存储指令、程序、代码、代码集或指令集。存储器820可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等。存储数据区还可以存储电子设备800在使用中所创建的数据等。

电子设备800还可包括收发单元,如蓝牙模块,蓝牙模块可用于提供蓝牙通信功能,与第二蓝牙设备建立蓝牙连接,并进行蓝牙数据传输。蓝牙模块可支持一种或多种蓝牙协议,如经典蓝牙、BLE、BLE Audio等,但不限于此,可随着蓝牙协议的发展而变化。

本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序被电子设备中的处理器执行时,使得电子设备实现如上述各实施例描述的方法。

本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可被电子设备中的处理器执行时,使得电子设备实现如上述各实施例描述的方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、ROM等。

如此处所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Erasable PROM,EPROM)、电可擦除PROM(Electrically ErasablePROM,EEPROM)或闪存。易失性存储器可包括随机存取存储器(random access memory,RAM),它用作外部高速缓冲存储器。作为说明而非局限,RAM可为多种形式,诸如静态RAM(Static RAM,SRAM)、动态RAM(Dynamic Random Access Memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、双倍数据率SDRAM(Double Data Rate SDRAM,DDR SDRAM)、增强型SDRAM(Enhanced Synchronous DRAM,ESDRAM)、同步链路DRAM(Synchlink DRAM,SLDRAM)、存储器总线直接RAM(Rambus DRAM,RDRAM)及直接存储器总线动态RAM(DirectRambus DRAM,DRDRAM)。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。需要说明的,本申请中的“多个”包括“两个或两个以上”。

在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上对本申请实施例公开的一种蓝牙连接方法、装置、电子设备及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制,可以理解的,对于本申请中的一些技术特征、技术手段也可以参考蓝牙标准的相关规定,或者与蓝牙标准中的相关规定相互组合。

相关技术
  • 一种穿戴式设备散热方法、穿戴式设备及可读存储介质
  • 一种环路热管及其热开关结构
  • 一种环路热管散热结构及智能穿戴设备
  • 一种散热结构组件及智能穿戴设备
技术分类

06120116570872