自动确定蓝牙通信参数的方法、设备及存储介质转让专利

申请号 : CN201710690883.7

文献号 : CN107404705B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 戴启军黄图平张黎明贺岩

申请人 : 拉卡拉支付股份有限公司

摘要 :

本发明公开了自动确定蓝牙通信参数的方法、设备及存储介质。所述自动确定蓝牙通信参数的方法包括:确定目标通信设备的类型和/或型号;根据目标通信设备的类型和/或型号自动确定蓝牙通信的通信参数。能够基于目标通信设备的类型和/或型号自动确定蓝牙通信参数,减少了协商过程中的交互次数,提高了效率。

权利要求 :

1.一种自动确定蓝牙通信参数的方法,其特征在于,包括:确定与目标通信设备已经建立蓝牙连接、且与目标通信设备之间协商通信参数失败;

确定目标通信设备的类型和/或型号;

根据目标通信设备的类型和/或型号自动确定其采用的蓝牙模块的协议所对应的蓝牙通信的通信参数;

其中,所述通信参数是用于蓝牙基本MTU交互协商过程或蓝牙ATT协议中的MTU交互协商过程中的MTU值。

2.根据权利要求1所述的自动确定蓝牙通信参数的方法,其特征在于,还包括:预先存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系;

其中,通过查询目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系来自动确定蓝牙通信的通信参数。

3.根据权利要求2所述的自动确定蓝牙通信参数的方法,其特征在于,还包括:在与目标通信设备成功进行蓝牙通信之后,获取并存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。

4.根据权利要求1至3中的任一项所述的自动确定蓝牙通信参数的方法,其特征在于,所述通信参数是用于指示从目标通信设备接收数据的通信参数或向目标通信设备发送数据的通信参数。

5.根据权利要求1至3中的任一项所述的自动确定蓝牙通信参数的方法,其特征在于,目标通信设备的类型包括下列中的至少一种:智能手机、智能手环、智能电表、智能耳机、智能电视、智能冰箱。

6.一种自动确定蓝牙通信参数的设备,其特征在于,包括:协商失败检测装置,用于确定与目标通信设备已经建立蓝牙连接、且与目标通信设备之间协商通信参数失败;

类型和/或型号确定装置,用于确定目标通信设备的类型和/或型号;

通信参数确定装置,用于根据目标通信设备的类型和/或型号自动确定其采用的蓝牙模块的协议所对应的蓝牙通信的通信参数;

其中,所述通信参数是用于蓝牙基本MTU交互协商过程或蓝牙ATT协议中的MTU交互协商过程中的MTU值。

7.根据权利要求6所述的自动确定蓝牙通信参数的设备,其特征在于,还包括:参数存储装置,用于预先存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系;

其中,通信参数确定装置通过参数存储装置查询目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系来自动确定蓝牙通信的通信参数。

8.根据权利要求7所述的自动确定蓝牙通信参数的设备,其特征在于,还包括:蓝牙装置,用于与目标通信设备进行蓝牙通信;

其中,参数存储装置还用于,在与目标通信设备成功进行蓝牙通信之后,获取并存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。

9.根据权利要求6至8中的任一项所述的自动确定蓝牙通信参数的设备,其特征在于,所述通信参数是用于指示从目标通信设备接收数据的通信参数或向目标通信设备发送数据的通信参数。

10.根据权利要求6至8中的任一项所述的自动确定蓝牙通信参数的设备,其特征在于,目标通信设备的类型包括下列中的至少一种:智能手机、智能手环、智能电表、智能耳机、智能电视、智能冰箱。

11.一种电子设备,其特征在于,包括:

存储器以及一个或多个处理器;

其中,所述存储器与所述一个或多个处理器通信连接,所述存储器中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器执行,以使所述一个或多个处理器能够实现如权利要求1-5中任一项所述的方法。

12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被执行后用以实现如权利要求1-5中任一项所述的方法。

说明书 :

自动确定蓝牙通信参数的方法、设备及存储介质

技术领域

[0001] 本发明涉及蓝牙通信技术。更具体地,本发明涉及自动确定蓝牙通信参数的方法、设备及存储介质。

背景技术

[0002] 蓝牙通信技术是一种常用的短距离低功耗无线通信技术。有许多使用蓝牙通信技术的相关蓝牙设备,比如蓝牙耳机、支持蓝牙的智能手环和智能手机等。当支持蓝牙的智能手环和智能手机之间建立起蓝牙通信连接之后,智能手环可以通过其上运行的相关应用程序向智能手机传输数据(例如,佩戴者的心律、行走过的步数等)以在智能手机的屏幕上进行显示。
[0003] 在正常情况下,诸如蓝牙耳机、支持蓝牙的智能手环和智能手机等可穿戴设备之间在相互通信时,可以通过协商机制确定通信双方(例如,主从方)接收到的数据的MTU(Maximum Transmission Unit)值(例如,通过各自发起的配置请求和所接收到的配置响应进行协商,即,通过蓝牙标准中定义的标准配置过程进行协商)。
[0004] 然而,由于蓝牙耳机、支持蓝牙的智能手环和智能手机等可穿戴设备的品牌和型号众多,而且,即使是同一品牌的制造商,也可能会针对其所制造的不同型号的设备采用支持不同蓝牙协议版本的蓝牙模块。由于蓝牙协议存在许多不同的版本,所以这些不同型号的蓝牙通信模块所支持的蓝牙协议的版本也可能不同。这就导致了蓝牙耳机、支持蓝牙的智能手环和智能手机等可穿戴设备之间在相互通信之前,可能需要经过多次交互才能协商成功。
[0005] 这种方式所存在的问题在于,针对相同的应用,即使两个设备之间在本次经过了多次交互并最终协商好了各自用于接收数据的通信参数(例如,MTU值)并成功地进行了通信,一旦双方之间的通信断开(例如,超出蓝牙支持的通信范围),那么在进行下次通信之前,这两个设备之间还需要进行同样的多次交互协商过程。
[0006] 因此,需要提出一种新的技术方案来解决上述问题。

发明内容

[0007] 本发明的目的是通过以下技术方案实现的。
[0008] 根据本发明的自动确定蓝牙通信参数的方法,包括:
[0009] 确定目标通信设备的类型和/或型号;
[0010] 根据目标通信设备的类型和/或型号自动确定蓝牙通信的通信参数。
[0011] 根据本发明的自动确定蓝牙通信参数的方法,还包括:
[0012] 预先存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系;
[0013] 其中,通过查询目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系来自动确定蓝牙通信的通信参数。
[0014] 根据本发明的自动确定蓝牙通信参数的方法,还包括:
[0015] 在与目标通信设备成功进行蓝牙通信之后,获取并存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。
[0016] 根据本发明的自动确定蓝牙通信参数的方法,其通信参数是用于指示从目标通信设备接收数据的通信参数或向目标通信设备发送数据的通信参数。
[0017] 根据本发明的自动确定蓝牙通信参数的方法,其通信参数是用于蓝牙基本MTU交互协商过程或蓝牙ATT协议中的MTU交互协商过程中的MTU值。
[0018] 根据本发明的自动确定蓝牙通信参数的方法,其目标通信设备的类型包括下列中的至少一种:智能手机、智能手环、智能电表、智能耳机、智能电视、智能冰箱。
[0019] 根据本发明的自动确定蓝牙通信参数的方法,还包括:
[0020] 确定与目标通信设备已经建立蓝牙连接、且与目标通信设备之间协商通信参数失败。
[0021] 根据本发明的自动确定蓝牙通信参数的设备,包括:
[0022] 类型和/或型号确定装置,用于确定目标通信设备的类型和/或型号;
[0023] 通信参数确定装置,用于根据目标通信设备的类型和/或型号自动确定蓝牙通信的通信参数。
[0024] 根据本发明的自动确定蓝牙通信参数的设备,还包括:
[0025] 参数存储装置,用于预先存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系;
[0026] 其中,通信参数确定装置通过参数存储装置查询目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系来自动确定蓝牙通信的通信参数。
[0027] 根据本发明的自动确定蓝牙通信参数的设备,还包括:
[0028] 蓝牙装置,用于与目标通信设备进行蓝牙通信;
[0029] 其中,参数存储装置还用于,在与目标通信设备成功进行蓝牙通信之后,获取并存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。
[0030] 根据本发明的自动确定蓝牙通信参数的设备,其通信参数是用于指示从目标通信设备接收数据的通信参数或向目标通信设备发送数据的通信参数。
[0031] 根据本发明的自动确定蓝牙通信参数的设备,其通信参数是用于蓝牙基本MTU交互协商过程或蓝牙ATT协议中的MTU交互协商过程中的MTU值。
[0032] 根据本发明的自动确定蓝牙通信参数的设备,其目标通信设备的类型包括下列中的至少一种:智能手机、智能手环、智能电表、智能耳机、智能电视、智能冰箱。
[0033] 根据本发明的自动确定蓝牙通信参数的设备,还包括:
[0034] 协商失败检测装置,用于确定与目标通信设备已经建立蓝牙连接、且与目标通信设备之间协商通信参数失败。
[0035] 根据本发明的电子设备,包括:
[0036] 存储器以及一个或多个处理器;
[0037] 其中,所述存储器与所述一个或多个处理器通信连接,所述存储器中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器执行,以使所述一个或多个处理器能够实现如上文所述的方法。
[0038] 根据本发明的计算机可读存储介质,其中存储有计算机可执行指令,所述计算机可执行指令被执行后用以实现如上文所述的方法。
[0039] 本发明的优点在于:能够基于目标通信设备的类型和/或型号自动确定蓝牙通信参数,减少了协商过程中的交互次数,提高了效率。

附图说明

[0040] 通过阅读下文具体实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出具体实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0041] 图1示出了根据本发明实施方式的自动确定蓝牙通信参数的方法的示意流程图。
[0042] 图2示出了根据本发明实施方式的自动确定蓝牙通信参数的设备的示意框图。

具体实施方式

[0043] 下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0044] 图1示出了根据本发明实施方式的自动确定蓝牙通信参数的方法100的示意流程图。
[0045] 如图1的实线框所示,自动确定蓝牙通信参数的方法100包括以下步骤:
[0046] 步骤S102:确定目标通信设备的类型和/或型号。
[0047] 例如,可以采用人工辨认(使用产品说明书)和输入的方式来确定目标通信设备的类型和/或型号。
[0048] 也可以通过蓝牙通信从目标设备获取目标通信设备的类型和/或型号。例如,当目标通信设备是智能手机时,可以通过调用自身操作系统(例如,Android操作系统)的SDK提供的接口函数获取IMEI,进而获取并发送类型和/或型号等参数。
[0049] 例如,目标通信设备的类型可以是支持蓝牙通信的手机、平板、耳机、手环等。
[0050] 即使是针对上述某种特定类型的目标通信设备(例如,手机),该目标通信设备也可能是由不同的设备制造商制造的,而且,即使是同一设备制造商,也可以制造许多不同型号的此种类型的目标通信设备。
[0051] 因此,本文的型号至少需要包括目标通信设备的制造商名称和/或设备型号名称,当仅仅通过具体的设备型号名称就能够唯一地确定目标通信设备的类型、设备制造商和具体型号时,才可以只使用设备型号名称来唯一地标识目标通信设备的类型、设备制造商和具体型号。否则,则需要同时包括目标通信设备的制造商名称和设备型号名称,以通过目标通信设备的制造商名称和设备型号名称两者的组合来唯一地标识目标通信设备的类型、设备制造商和具体型号。
[0052] 根据目标通信设备的类型和/或型号,就能够唯一地确定不同设备制造商制造的不同类型的目标通信设备。
[0053] 例如,以手机设备类型为例,其部分型号(即,制造商名称和/或设备型号名称)包括:红米Note 2、红米Note 3、Mi-4c、SM-G9300、SM-P600、XT1570、华为ALE-UL00、小米公司的红米3S、MI MAX、三星公司的GT-I9158P、小米公司的MI PAD、宏达国际公司的HTC D826t、华硕公司的ASUS K00S、小米公司的MI 3、OPPO公司的R7c、OPPO公司的R2017、小米公司的HM1S。
[0054] 步骤S104:根据目标通信设备的类型和/或型号自动确定蓝牙通信的通信参数。
[0055] 如上所述,根据目标通信设备的类型和/或型号,就能够唯一地确定不同设备制造商制造的不同类型的目标通信设备。因此,也就能够以目标通信设备的类型和/或型号作为索引来唯一地确定其采用的蓝牙模块的协议所对应的通信参数。
[0056] 例如,在步骤S104中,可以根据目标通信设备的类型和/或型号自动选择蓝牙通信的通信参数(尽管这里以MTU值为例,但不限于MTU值,还可以是传输时间间隔、连续传输的时隙数等通信参数),这可以通过编程实现(例如,可以参照下文中的示例程序代码)。例如,可以通过编程实现如表1所示的查找表。
[0057] 表1:手机设备类型所使用的部分型号的MTU值的查找表
[0058]
[0059]
[0060] 需要了解的是,表1中的第2列(“高层可用MTU值(字节)”)中所示出的MTU值(在表1中为20字节)仅仅是示例高层应用程序(例如,ATT协议层之上的网络层应用程序等)所能够使用的MTU值,即,操作系统的SDK所能够设置的可以供高层应用程序使用的MTU值。实际上,此时将蓝牙协议中的MTU值被设置为了蓝牙低功耗版本中所定义的最小MTU,即23字节。
[0061] 尽管表1中将不同手机型号的高层可用MTU值都设置为了20字节。然而,不同手机型号的高层可用MTU值可以被设置为不同的字节数,只要满足蓝牙低功耗版本中所定义的MTU值(10字节-265字节减去3字节)的范围即可,其中被减去的3个字节代表低层协议的开销。
[0062] 使用自动确定蓝牙通信参数的方法100,例如,可以通过蓝牙ATT协议中的MTU交互协商过程进行一次协商(相当于一次握手),就能够确定单向通信(接收方向)所使用的MTU值。从而减少了协商过程中的交互次数,提高了效率。
[0063] 可选地,如图1的虚线框所示,自动确定蓝牙通信参数的方法100,还包括以下步骤:
[0064] 步骤S106:预先存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。
[0065] 例如,类似表1的查找表不通过编程实现,而是被预先存储在参数存储装置中。
[0066] 此时,可以由参数查找程序通过接口访问参数存储装置进行查找来实现上述步骤S104。即,在步骤S104中,可以通过在参数存储装置中查询目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系来自动确定蓝牙通信的通信参数。而且,可以如下文中的步骤S108所述,通过参数更新程序自动更新该参数存储装置。
[0067] 可选地,如图1的虚线框所示,自动确定蓝牙通信参数的方法100,还包括以下步骤:
[0068] 步骤S108:在与目标通信设备成功进行蓝牙通信之后,获取并存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。
[0069] 考虑到不同的设备制造商以后还会不断制造和销售支持蓝牙的各种不同协议版本的各种不同类型和不同型号的设备,这些新制造出来的蓝牙设备也会面临与其通信的目标设备的蓝牙协议的版本不同而需要进行多次协商才能够进行相互通信的同样的问题。
[0070] 在这种情况下,如果仍然采用通过编程实现如表1所示的查找表的方法,就需要开发人员通过人工检测进行蓝牙通信的两个设备所使用的通信参数,并且需要开发人员通过人工手动修改代码,然后重新编译成目标程序代码并下载到固件中。这需要专业开发人员才能完成,普通用户无法自己完成这种操作和更新。
[0071] 为了解决上述问题,可以在自动确定蓝牙通信参数的方法100中引入上述步骤S104和步骤S108,这样便能够自动更新参数存储装置中所存储的对应关系表(即,类似表1的查找表)。
[0072] 此时,进行蓝牙通信的两个设备在成功建立起蓝牙通信之后,可以将两个设备之间成功通信时所使用的通信参数自动保存在各自的参数存储装置中所存储的对应关系表中。这样只会改变所存储的对应关系表的内容,而无需开发人员对任何代码进行更新。普通用户根本无需知道这种操作和更新,从而提供了更好的用户体验。
[0073] 例如,参数存储装置中增加的参数记录类似于,A公司的B型手机:高层可用MTU值为50字节。
[0074] 可选地,所述通信参数用于指示从目标通信设备接收数据的通信参数或向目标通信设备发送数据的通信参数。
[0075] 可选地,所述通信参数是用于蓝牙基本MTU交互协商过程或蓝牙ATT协议中的MTU交互协商过程中的MTU值。
[0076] 可选地,所述目标通信设备的类型包括下列中的至少一种:智能手机、智能手环、智能电表、智能耳机、智能电视、智能冰箱。
[0077] 针对可能存在并不是所有的同种型号的手机都必需以查找表或参数存储装置中设置的默认值进行通信这种情况,例如,以实现以尽可能大的MTU值进行蓝牙通信的目的。可选地,如图1的虚线框所示,自动确定蓝牙通信参数的方法100,还包括以下步骤:
[0078] 步骤S110:确定与目标通信设备已经建立蓝牙连接、且与目标通信设备之间协商通信参数(例如,MTU值)失败。
[0079] 例如,如图1所示,步骤S110在步骤S102和步骤S104之前执行,从而保证了以尽可能大的MTU值进行蓝牙通信。
[0080] 图2示出了根据本发明实施方式的自动确定蓝牙通信参数的设备200的示意框图。
[0081] 如图2的实线框所示,自动确定蓝牙通信参数的设备200包括:类型和/或型号确定装置201和通信参数确定装置202。
[0082] 类型和/或型号确定装置201用于确定目标通信设备的类型和/或型号。
[0083] 例如,可以将人工辨认(使用产品说明书)的目标通信设备的类型和/或型号输入至类型和/或型号确定装置201。
[0084] 也可以通过蓝牙通信将从目标设备获取到的目标通信设备的类型和/或型号发送至类型和/或型号确定装置201。例如,当目标通信设备是智能手机时,可以通过调用自身操作系统(例如,Android操作系统)的SDK提供的接口函数获取IMEI,进而获取并发送类型和/或型号等参数。
[0085] 例如,目标通信设备的类型可以是支持蓝牙通信的手机、平板、耳机、手环等。
[0086] 即使是针对上述某种特定类型的目标通信设备(例如,手机),该目标通信设备也可能是由不同的设备制造商制造的,而且,即使是同一设备制造商,也可以制造许多不同型号的此种类型的目标通信设备。
[0087] 因此,本文的型号至少需要包括目标通信设备的制造商名称和/或设备型号名称,当仅仅通过具体的设备型号名称就能够唯一地确定目标通信设备的类型、设备制造商和具体型号时,才可以只使用设备型号名称来唯一地标识目标通信设备的类型、设备制造商和具体型号。否则,则需要同时包括目标通信设备的制造商名称和设备型号名称,以通过目标通信设备的制造商名称和设备型号名称两者的组合来唯一地标识目标通信设备的类型、设备制造商和具体型号。
[0088] 根据目标通信设备的类型和/或型号,就能够唯一地确定不同设备制造商制造的不同类型的目标通信设备。
[0089] 例如,以手机设备类型为例,其部分型号(即,制造商名称和/或设备型号名称)包括:红米Note 2、红米Note 3、Mi-4c、SM-G9300、SM-P600、XT1570、华为ALE-UL00、小米公司的红米3S、MI MAX、三星公司的GT-I9158P、小米公司的MI PAD、宏达国际公司的HTC D826t、华硕公司的ASUS K00S、小米公司的MI 3、OPPO公司的R7c、OPPO公司的R2017、小米公司的HM1S。
[0090] 通信参数确定装置202用于根据目标通信设备的类型和/或型号自动确定蓝牙通信的通信参数。
[0091] 如上所述,类型和/或型号确定装置201能够根据目标通信设备的类型和/或型号,唯一地确定不同设备制造商制造的不同类型的目标通信设备。因此,通信参数确定装置202也就能够以目标通信设备的类型和/或型号作为索引来唯一地确定其采用的蓝牙模块的协议所对应的通信参数。
[0092] 例如,通信参数确定装置202可以根据目标通信设备的类型和/或型号自动选择蓝牙通信的通信参数,这可以通过编程实现(例如,可以参照下文中的示例程序代码)。例如,可以通过编程实现如表1所示的查找表(尽管这里以MTU值为例,但不限于MTU值,还可以是传输时间间隔、连续传输的时隙数等通信参数)。
[0093] 需要了解的是,表1中的第2列(“高层可用MTU值(字节)”)中所示出的MTU值(在表1中为20字节)仅仅是示例高层应用程序(例如,ATT协议层之上的网络层应用程序等)所能够使用的MTU值,即,操作系统的SDK所能够设置的可以供高层应用程序使用的MTU值。实际上,此时将蓝牙协议中的MTU值被设置为了蓝牙低功耗版本中所定义的最小MTU,即23字节。
[0094] 尽管表1中将不同手机型号的高层可用MTU值都设置为了20字节。然而,不同手机型号的高层可用MTU值可以被设置为不同的字节数,只要满足蓝牙低功耗版本中所定义的MTU值(10字节-265字节减去3字节)的范围即可,其中被减去的3个字节代表低层协议的开销。
[0095] 例如,自动确定蓝牙通信参数的设备200可以通过蓝牙ATT协议中的MTU交互协商过程进行一次协商(相当于一次握手),就能够确定单向通信(接收方向)所使用的MTU值。从而减少了协商过程中的交互次数,提高了效率。
[0096] 可选地,如图2的虚线框所示,自动确定蓝牙通信参数的设备200还包括参数存储装置203。
[0097] 参数存储装置203用于预先存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。
[0098] 考虑到不同的设备制造商以后还会不断制造和销售支持蓝牙的各种不同协议版本的各种不同类型和不同型号的设备,这些新制造出来的蓝牙设备也会面临与其通信的目标设备的蓝牙协议的版本不同而需要进行多次协商才能够进行相互通信的同样的问题。
[0099] 在这种情况下,如果仍然采用通过编程实现如表1所示的查找表的方法,就需要开发人员通过人工检测进行蓝牙通信的两个设备所使用的通信参数,并且需要开发人员通过人工手动修改代码,然后重新编译成目标程序代码并下载到固件中。这需要专业开发人员才能完成,普通用户无法自己完成这种操作和更新。
[0100] 为了解决上述问题,例如,类似表1的查找表不通过编程实现,而是被存储在参数存储装置203中。这样便能够自动更新存储在参数存储装置203中的对应关系表(即,类似表1的查找表)。
[0101] 此时,进行蓝牙通信的两个设备在成功建立起蓝牙通信之后,可以将两个设备之间成功通信时所使用的通信参数(例如,MTU值)自动保存在各自所存储的对应关系表中。这样只会改变所存储的对应关系表的内容,而无需开发人员对任何代码进行更新。普通用户根本无需知道这种操作和更新,从而提供了更好的用户体验。
[0102] 此时,通信参数确定装置202通过参数存储装置203查询目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系来自动确定蓝牙通信的通信参数。
[0103] 可选地,如图2的虚线框所示,自动确定蓝牙通信参数的设备200还包括蓝牙装置204。
[0104] 蓝牙装置204用于与目标通信设备进行蓝牙通信。
[0105] 此时,参数存储装置203还用于,在与目标通信设备成功进行蓝牙通信之后,获取并存储目标通信设备的类型和/或型号与所使用的通信参数之间的对应关系。以自动更新参数存储装置203中存储的对应关系表。
[0106] 例如,如上所述,可以通过蓝牙通信从目标设备获取目标通信设备的类型和/或型号(例如,通过通信参数确定装置202将来自类型和/或型号确定装置201的相关信息传输至参数存储装置203)。当目标通信设备是智能手机时,可以通过调用自身操作系统(例如,Android操作系统)的SDK提供的接口函数获取IMEI,进而获取类型和/或型号等参数。参数存储装置203通过蓝牙装置204获取所使用的通信参数。
[0107] 例如,参数存储装置203中增加的参数记录类似于,A公司的B型手机:高层可用MTU值为50字节。
[0108] 可选地,所述通信参数用于指示从目标通信设备接收数据的通信参数或向目标通信设备发送数据的通信参数。
[0109] 可选地,所述通信参数是用于蓝牙基本MTU交互协商过程或蓝牙ATT协议中的MTU交互协商过程中的MTU值。
[0110] 可选地,所述目标通信设备的类型包括下列中的至少一种:智能手机、智能手环、智能电表、智能耳机、智能电视、智能冰箱。
[0111] 可选地,自动确定蓝牙通信参数的设备200可以是下列中的至少一种:智能手机、智能手环、智能电表、智能耳机、智能电视、智能冰箱。
[0112] 针对可能存在并不是所有的同种型号的手机都必需以查找表或参数存储装置中设置的默认值进行通信这种情况,例如,以实现以尽可能大的MTU值进行蓝牙通信的目的。可选地,如图2的虚线框所示,自动确定蓝牙通信参数的设备200还包括协商失败检测装置
205。
[0113] 协商失败检测装置205用于确定与目标通信设备已经建立蓝牙连接、且与目标通信设备之间协商通信参数失败。例如,只有在检测到通信参数协商失败的情况下,才触发类型和/或型号确定装置201和通信参数确定装置202分别执行如上述自动确定蓝牙通信参数的方法100中的步骤S102和步骤S104,例如,从而保证了以尽可能大的MTU值进行蓝牙通信。
[0114] 例如,可以在协商失败检测装置205检测到协商通信参数失败之后,触发类型和/或型号确定装置201和通信参数确定装置202等执行方法100中的步骤S102和步骤S104等步骤的操作。
[0115] 本发明还提出了结合自动确定蓝牙通信参数的方法100使用的电子设备,包括:
[0116] 存储器以及一个或多个处理器;
[0117] 其中,所述存储器与所述一个或多个处理器通信连接,所述存储器中存储有可被所述一个或多个处理器执行的指令,所述指令被所述一个或多个处理器执行,以使所述一个或多个处理器能够实现如上文所述的方法。
[0118] 本发明还提出了结合自动确定蓝牙通信参数的方法100使用的计算机可读存储介质,其中存储有计算机可执行指令,所述计算机可执行指令被执行后用以实现如上文所述的方法。
[0119] 本发明的上述技术方案能够基于目标通信设备的类型和/或型号自动确定蓝牙通信参数,减少了协商过程中的交互次数,提高了效率。
[0120] 根据本发明的上述技术方案,能够通过以下方式解决智能穿戴设备与手环间良好的蓝牙通信稳定性和通信效率。
[0121] 一、采用手机与手环在蓝牙通信的协议协商机制,确定单次蓝牙通信包的大小。
[0122] 二、在技术层面约定特殊型号的指定通信包大小。
[0123] 通过上述方法,将有效的保障智能手机和智能穿戴设备在蓝牙通信层面在以下不同场景下的稳定性和通信效率问题。
[0124] 用户使用场景1:Android手机与可穿戴设备连接时,通过协商MTU值,确定数据包传输单元,保证数据量交互时对于用户体验的影响。
[0125] 用户使用场景2:Android手机与可穿戴设备连接时,在协商MTU值失败后,采用MTU最低标准为数据包传输单元,保证双方数据正常交互。
[0126] 因此,本发明具有以下优势:
[0127] 1、增强蓝牙数据收发的稳定性。
[0128] 2、合理利用蓝牙通信速率,保证数据量交互时对于用户体验的影响。
[0129] 为了使本领域技术人员更好地理解本发明,下面将给出一个具体实施例。
[0130] 针对智能手机市场上的品牌众多,各手机厂商均会定制自己的手机操作系统及底层的蓝牙模块的协议等,所以在蓝牙通信协议中有可能出现协商MTU=128字节无效或者失败情况,通过大量测试发现这些特别的机型后,可以将MTU设置为蓝牙低功耗版本中所定义的最小MTU,即23字节。
[0131] 因此,MTU设置为23字节之后,需要在SDK内部去对这些手机特别处理。例如,当不走协商途径(例如,通过蓝牙ATT协议中的MTU交互协商过程,但由于直接设置为了最小MTU,所以不需要多次协商,因此,相当于一次握手),ATT协议之上的高层应用程序的数据则只能使用20字节。
[0132] 因此,在SDK层可以增加适配列表,如果当前连接的手机是以下设备,则不协商MTU值,直接用MTU的最低标准进行数据交互。
[0133] 其示例程序代码如下所示(本领域技术人员也可以采用其他方式实现):
[0134]
[0135]
[0136]
[0137]
[0138] 如背景技术中所述,由于蓝牙协议存在许多不同的版本,所以这些不同型号的蓝牙通信模块所支持的蓝牙协议的版本也可能不同。这就导致了蓝牙耳机、支持蓝牙的智能手环和智能手机等可穿戴设备之间在相互通信之前,可能需要经过多次交互才能协商成功。
[0139] 根据本发明的上述技术方案,能够基于目标通信设备的类型和/或型号自动确定蓝牙通信参数,减少了协商过程中的交互次数,提高了效率。
[0140] 以上所述,仅为本发明示例性的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。