CN113923641B - 一种连接方法及装置 - Google Patents
一种连接方法及装置 Download PDFInfo
- Publication number
- CN113923641B CN113923641B CN202111482462.8A CN202111482462A CN113923641B CN 113923641 B CN113923641 B CN 113923641B CN 202111482462 A CN202111482462 A CN 202111482462A CN 113923641 B CN113923641 B CN 113923641B
- Authority
- CN
- China
- Prior art keywords
- bluetooth
- bluetooth connection
- terminal
- connection mode
- connection
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 180
- 238000004590 computer program Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 abstract description 27
- 238000001179 sorption measurement Methods 0.000 description 98
- 238000004891 communication Methods 0.000 description 46
- 230000006870 function Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 17
- 238000010521 absorption reaction Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 12
- 238000012790 confirmation Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 230000009191 jumping Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000628997 Flos Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/18—Self-organising networks, e.g. ad-hoc networks or sensor networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开一种连接方法及装置,应用于终端,连接方法包括:发现可连接的目标蓝牙设备;检测到所述终端与所述目标蓝牙设备的蓝牙连接请求;响应于所述蓝牙连接请求,根据所述终端自身支持的蓝牙连接方式确定与所述目标蓝牙设备建立蓝牙连接的目标蓝牙连接方式;通过所述目标蓝牙连接方式与所述目标蓝牙设备建立蓝牙连接。通过终端自身支持的蓝牙连接方式统一协调不同蓝牙设备支持的不同蓝牙连接方式的不同处理流程,避免终端为兼容不同蓝牙设备的不同连接策略,修改原有蓝牙连接方式的代码逻辑引发不可预知的代码bug,导致代码工作量过大的问题。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种连接方法及装置。
背景技术
随着蓝牙无线传输技术的发展,终端与蓝牙设备建立连接的策略越来越多。终端对于同一类型、不同型号的蓝牙设备可以有多种不同的连接策略。
例如,同为蓝牙键盘,终端对于不同型号的A键盘和B键盘可以有不同的连接策略。比如终端对于A键盘可以有传统蓝牙连接和线圈吸附连接策略,对于B键盘可以还可以支持靠近发现连接。终端侧每新增一个支持不同连接逻辑的蓝牙设备,就需要考虑一系列时序问题,例如无法断连或无法回连等问题,从而为了兼容不同蓝牙设备的不同的连接逻辑,就需要添加大量代码逻辑,导致出现代码工作量大等问题。
发明内容
第一方面,本申请提供一种连接方法,应用于终端,所述方法包括:发现可连接的目标蓝牙设备;检测到所述终端与所述目标蓝牙设备的蓝牙连接请求;响应于所述蓝牙连接请求,根据所述终端自身支持的蓝牙连接方式确定与所述目标蓝牙设备建立蓝牙连接的目标蓝牙连接方式;通过所述目标蓝牙连接方式与所述目标蓝牙设备建立蓝牙连接。
示例性的,终端可以通过以下方式发现该目标蓝牙设备:
1)当终端的蓝牙功能为开启状态的条件下,终端可以通过扫描蓝牙通信范围内的蓝牙设备发布的广播包的方式发现上述可连接的目标蓝牙设备,并在扫描到该目标蓝牙设备发布的广播包后,弹出配对连接的确认框,终端接收到用户确认配对连接的确认指令后,即为检测到所述终端与所述目标蓝牙设备的蓝牙连接请求。
例如,在终端与蓝牙设备为相同操作系统的场景中,终端可以发现终端蓝牙通信范围内相同操作系统的多个所述目标蓝牙设备,当终端侧发起建立连接请求或当蓝牙设备侧发起连接请求时,终端侧即检测到上述蓝牙连接请求。
2)终端还可以通过磁力感应器检测线圈吸附的吸附事件,从而发现通过磁力吸附在终端上的上述目标蓝牙设备,然后通过线圈通信的方式获取该目标蓝牙设备的标识信息,弹出配对连接的确认框,终端接收到用户确认配对连接的确认指令后,即为检测到所述终端与所述目标蓝牙设备的蓝牙连接请求。可理解的,也可以不弹出配对连接确认框,而是通过终端内部判断逻辑确定该目标蓝牙设备为按预设规则(例如当确定该目标蓝牙设备的厂商标识与该终端的厂商标识一致的情况下,发现该目标蓝牙设备后立即配对连接)可直接配对连接的蓝牙设备,若是则相当于终端检测到所述终端与所述目标蓝牙设备的上述蓝牙连接请求。
3)终端还可以通过传统设置的蓝牙连接方式发现上述目标蓝牙设备,例如当终端在检测到用户打开了蓝牙应用程序的页面后,终端通过扫描广播包的方式发现终端通信范围内的上述目标蓝牙设备,并在终端页面上展示这些目标蓝牙设备的名称,当检测到用户点击了对应的目标蓝牙设备的名称后,即检测到上述蓝牙连接请求。
可理解的,上述发现目标蓝牙设备和检测上述蓝牙连接请求的方法可以有很多种,不限于以上靠近发现、线圈吸附或传统设置的蓝牙连接方式。
在本申请实施例中,上述目标蓝牙设备可以是终端在蓝牙通信范围内发现到的可连接的一个或一个以上的蓝牙设备中的任意一个蓝牙设备。
在本申请实施例中,终端对于同一类型的蓝牙设备(例如同为蓝牙键盘)可以支持同时连接一个或一个以上的蓝牙设备。也就是说,属于同一类蓝牙设备的一个或一个以上的蓝牙设备处于终端的无线通信范围内,该一个或一个以上的蓝牙设备中的一个或多个蓝牙设备可以与终端建立蓝牙连接。
一般地,终端通过第一蓝牙连接方式发现蓝牙设备后,则确定通过该第一蓝牙连接方式与该蓝牙设备建立连接(可理解的,终端通过该第一蓝牙连接方式发现该蓝牙设备说明该蓝牙设备与终端均支持该第一蓝牙连接方式,则不需要再根据终端自身支持的蓝牙连接方式确定该第一蓝牙连接方式),但这个第一蓝牙连接方式很可能不是为该蓝牙设备专门设置的,该蓝牙设备可能还支持其他新的蓝牙连接方式。终端为兼容不同的蓝牙设备支持的不同的蓝牙连接方式就需要考虑一系列的问题,例如重复多次连接同一个设备、无法断连、无法回连或者连接上的设备不是用户期望的设备等问题,就需要添加大量代码逻辑解决这些问题,从而导致出现代码工作量大、修改后的代码逻辑潜在不可预知的代码漏洞(bug)等问题。
然而采用本申请提供的方法,示例性的,终端通过第一蓝牙连接方式发现目标蓝牙设备,检测到上述连接请求后,终端根据自身支持的蓝牙连接方式确定是否还支持除了该第一蓝牙连接方式之外的其他蓝牙连接方式,若否,则终端确定上述第一蓝牙连接方式作为上述目标蓝牙连接方式。若是,例如终端与该目标蓝牙设备还支持预设的目标蓝牙连接方式,则通过一些预设规则使得该终端通过该预设的目标蓝牙连接方式发现该目标蓝牙设备,从而终端确定将该预设的目标蓝牙连接方式作为该终端与该目标蓝牙设备建立连接的该目标蓝牙连接方式。该预设规则,例如可以为等待预设时长,提示用户按照指令操作,使得预设时长内终端可以采用该预设的目标蓝牙连接方式发现该蓝牙设备。
示例性的,预设的目标蓝牙连接方式为终端与该目标蓝牙设备均支持的蓝牙连接方式中,连接速度更快、连接稳定性更好和/或连接对象的指向性更好等的蓝牙连接方式,该预设的目标蓝牙连接方式为终端专为该目标蓝牙设备设置的。例如,对于每个型号的设备,设置为只有通过预设的目标蓝牙连接方式发现该目标蓝牙设备,才可以直接通过该预设的目标蓝牙连接方式与该蓝牙设备建立连接。若不是通过预设的目标蓝牙连接方式发现该目标蓝牙设备则不处理上述第一蓝牙连接方式,而是提示用户按照指令操作,使得终端可以采用该预设的目标蓝牙连接方式发现该蓝牙设备,从而确定通过该预设的目标蓝牙连接方式与该蓝牙设备建立蓝牙连接;或者等待预设时长,看预设时长内是否通过该预设的目标蓝牙连接方式再次发现该蓝牙设备;若否则确定将上述第一蓝牙连接方式确定为该目标蓝牙连接方式,若是则确定将该预设的目标蓝牙连接方式确定为上述目标蓝牙连接方式。可理解的,对于不同型号的设备,该预设的目标蓝牙连接方式可以相同也可以不同。
也就是说,终端对于不同的蓝牙设备,可以根据自身支持的蓝牙连接方式选择与该蓝牙设备建立连接的目标蓝牙连接方式。通过终端自身支持的蓝牙连接方式统一协调不同设备支持的不同蓝牙连接方式的不同处理流程,避免终端为兼容不同蓝牙设备的不同连接策略,修改原有蓝牙连接方式的代码逻辑引发时序问题,带来的代码工作量过大等问题。
结合第一方面,在一种可能的实施方式中,所述蓝牙连接请求包括预设蓝牙连接方式,所述终端存储有配置信息,所述配置信息配置有蓝牙连接方式对应的优先级,所述根据所述终端自身支持的蓝牙连接方式确定与所述目标蓝牙设备建立蓝牙连接的目标蓝牙连接方式包括:根据所述配置信息和所述终端自身支持的蓝牙连接方式确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级;确定与所述预设蓝牙连接方式对应的优先级是否为所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级中的最高优先级;在确定所述预设蓝牙连接方式对应的优先级为所述最高优先级的情况下,确定将所述预设蓝牙连接方式作为所述目标蓝牙连接方式。
示例性的,对于每个型号的设备,设置为只有通过优先级最高的蓝牙连接方式发现该蓝牙设备,才可以直接通过该优先级最高的蓝牙连接方式与该蓝牙设备建立连接。若不是通过优先级最高的蓝牙连接方式发现该蓝牙设备则不做处理;或者等待预设时长,看预设时长内是否通过该优先级最高的蓝牙连接方式再次发现该蓝牙设备;或者提示用户按照指令操作,使得终端可以采用该最高优先级的蓝牙连接方式发现该蓝牙设备,并通过该优先级最高的蓝牙连接方式与该蓝牙设备建立蓝牙连接。
由此,根据优先级统一协调不同型号蓝牙设备支持不同连接策略的处理流程,避免终端为兼容不同蓝牙设备的不同连接策略,修改原有代码逻辑引发代码bug或导致代码工作量过大等问题,减少终端为支持的蓝牙设备新增新的蓝牙连接方式时,为该新的蓝牙连接方式设计代码逻辑的所需代码工作量。
结合第一方面,在一种可能的实施方式中,所述配置信息配置有蓝牙连接方式对应的优先级包括:所述配置信息配置有每个蓝牙设备对应支持的蓝牙连接方式以及蓝牙连接方式对应的优先级,所述每个蓝牙设备包括一种或一种以上的终端支持的蓝牙设备;所述根据所述配置信息和所述终端自身支持的蓝牙连接方式确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级,包括:根据所述配置信息中配置的所述每个蓝牙设备对应支持的蓝牙连接方式和所述终端自身支持的蓝牙连接方式,确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式;根据所述配置信息中配置的所述蓝牙连接方式对应的优先级,确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式对应的优先级。
可理解的,若配置信息中配置的信息包括当前执行主体的终端支持的所有型号的蓝牙设备对应支持的蓝牙连接方式的优先级,则只要根据配置信息确定与该目标蓝牙设备的型号对应的蓝牙设备对应支持的蓝牙连接方式的优先级,即为该终端与该目标蓝牙设备均支持的蓝牙连接方式的优先级。在本申请实施例中,当前执行主体的终端是指当前执行本文提供的连接方法的任意一个终端设备。
若配置信息中配置的信息除了包括当前执行主体的终端支持的所有型号的蓝牙设备对应支持的蓝牙连接方式的优先级之外,还包括其他终端(非当前执行主体的终端)支持的不同型号的蓝牙设备对应支持的蓝牙连接方式,则当前执行主体的终端需要根据自身支持的蓝牙连接方式和配置信息中配置的上述目标蓝牙设备支持的蓝牙连接方式确定当前执行主体的终端与该目标蓝牙设备均支持的蓝牙连接方式,再根据配置信息中配置的所述蓝牙连接方式对应的优先级,确定该当前执行主体的终端与该目标蓝牙设备均支持的蓝牙连接方式对应的优先级。
在本申请实施例中,若配置信息中配置的信息包括当前执行主体的终端支持的蓝牙设备对应支持的蓝牙连接方式的优先级,可以使得针对不同型号的终端有不同的配置信息,从而不同型号的终端对于同一型号的蓝牙设备支持同样的蓝牙连接方式对应的可以有相同的优先级也可以有不同的优先级,更好地满足优先级的多样化设计需求。
在本申请实施例中,若配置信息中配置有多个终端支持的多种蓝牙设备支持的多种蓝牙连接方式以及蓝牙连接方式对应的优先级,可以适用于多个不同型号的终端,提高的配置信息的适用性,减少用户在设置配置信息时,区分不同型号的终端支持的不同蓝牙连接方式对应的优先级而制作不同的配置信息的工作量。
结合第一方面,在一种可能的实施方式中,所述配置信息配置有蓝牙连接方式对应的优先级包括:所述配置信息配置有型号标识对应的蓝牙设备与所述终端均支持的蓝牙连接方式对应的优先级,所述与型号标识对应的蓝牙设备为所述终端支持的任意一个蓝牙型号的蓝牙设备;所述根据所述配置信息和所述终端自身支持的蓝牙连接方式确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级,包括:根据所述配置信息确定所述目标蓝牙设备的型号标识对应的蓝牙设备与所述终端均支持的蓝牙连接方式对应的优先级。
可理解的,若配置信息中配置有当前执行主体的终端与该终端支持的每个型号的蓝牙设备中,该终端与该型号对应的蓝牙设备均支持的蓝牙连接方式的优先级。则可以通过上述目标蓝牙设备的型号标识确定配置信息,确定与该目标蓝牙设备的型号标识对应的蓝牙设备支持的蓝牙连接方式的优先级(即为该终端与该目标蓝牙设备均支持的蓝牙连接方式的优先级)。
在本申请实施例中,不是将一个或多个终端支持的一个或多个蓝牙设备支持的蓝牙连接方式均混合配置在一个配置信息中,而是将当前执行主体的终端与终端支持的每个型号的蓝牙设备中,该终端与该型号对应的蓝牙设备均支持的蓝牙连接方式的优先级配置在一个配置信息。满足优先级的多样性设备的同时,可以大大减小配置信息包含的数据内容的数据量大小,节省存储空间,缓解存储压力,提高存储空间利用率,特别是在厂家有很多种不同型号的终端,不同型号的终端支持很多种不同型号的蓝牙设备,不同型号的蓝牙设备又支持很多种不同蓝牙连接方式的场景中。
结合第一方面,在一种可能的实施方式中,在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内未检测到所述终端与所述目标蓝牙设备的其他蓝牙连接请求的情况下,确定所述预设蓝牙连接方式为所述目标蓝牙连接方式,所述其他蓝牙连接请求包括的蓝牙连接方式对应的优先级大于所述预设蓝牙连接方式对应的优先级;在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定不将所述预设蓝牙连接方式作为所述目标蓝牙连接方式。
在本申请实施例中,上述蓝牙连接请求与上述其他蓝牙连接请求对应的目标蓝牙设备为同一个蓝牙设备。
在本申请实施例中,上述预设时长可以是100ms(毫秒),也可以是其他合适的时长(例如200ms、1s等),本文对此不做限定。
在本申请实施例中,在确定预设蓝牙连接方式对应的优先级不为终端与目标蓝牙设备均支持的蓝牙连接方式对应的优先级中的最高优先级的情况下,终端等待预设时长,确定预设时长内是否检测到上述其他蓝牙连接请求;若否,则确定该预设蓝牙连接方式为上述目标蓝牙连接方式。若是,则不将该预设蓝牙连接方式作为该目标蓝牙连接方式。继续将该其他蓝牙连接请求作为上述终端与目标蓝牙设备建立连接的上述蓝牙连接请求,判断该其他蓝牙连接请求中包括的蓝牙连接方式对应的优先级是否为上述最高优先级,以此类推。直到蓝牙连接请求中包括的蓝牙连接方法对应的优先级为上述最高优先级,则将该最高优先级对应的蓝牙连接方式作为上述目标蓝牙连接方式。或者,直到预设时长内终端未再检测到上述其他蓝牙连接请求,则确定将当前蓝牙连接请求中的蓝牙连接方式作为该目标蓝牙连接方式。
由此,根据优先级统一协调不同型号蓝牙设备支持不同连接策略的处理流程,减少终端为支持的蓝牙设备新增新的蓝牙连接方式时,为该新的蓝牙连接方式设计代码逻辑的所需代码工作量。
结合第一方面,在一种可能的实施方式中,所述在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述目标蓝牙连接方式不为所述预设蓝牙连接方式,包括:在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定将所述其他蓝牙连接请求中包括的蓝牙连接方式作为所述目标蓝牙连接方式。
在本申请实施例中,在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且在第一个预设时长内检测到上述其他蓝牙连接请求的情况下,立即确定将该其他蓝牙连接请求中包括的蓝牙连接方式作为上述目标蓝牙连接方式。而不是循环等待直到出现最高优先级对应的蓝牙连接方式或者直到预设时长内不再检测到该蓝牙连接请求,从而通过优先级统一协调不同型号蓝牙设备支持不同连接策略的处理流程的同时,终端与目标蓝牙设备可以更快速地建立蓝牙连接。
结合第一方面,在一种可能的实施方式中,所述在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述目标蓝牙连接方式不为所述预设蓝牙连接方式,包括:在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到一个或一个以上的所述其他蓝牙连接请求的情况下,确定所述一个或一个以上的所述其他蓝牙连接请求包括的一个或一个以上的蓝牙连接方式中对应优先级最高的蓝牙连接方式作为所述目标蓝牙连接方式。
在本申请实施例中,在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且在第一个预设时长内检测到上述其他蓝牙连接请求的情况下,也可以不立即确定将该其他蓝牙连接请求中包括的蓝牙连接方式作为上述目标蓝牙连接方式。而是等该第一预设时长结束后,再统计该第一预设时长内检测到的一个或一个以上的该其他蓝牙连接请求,并将该一个或一个以上的该其他蓝牙连接请求包括的一个或一个以上的蓝牙连接方式中对应优先级最高的蓝牙连接方式作为所述目标蓝牙连接方式。从而通过优先级统一协调不同型号蓝牙设备支持不同连接策略的处理流程的同时提高代码容错性,由于只会等待一个预设时长,从而也可以使得终端与目标蓝牙设备较快速地建立蓝牙连接。
结合第一方面,在一种可能的实施方式中,所述蓝牙连接请求包括预设蓝牙连接方式,所述终端存储有配置信息,所述配置信息配置有所述终端自身支持的每个蓝牙连接方式对应的优先级,所述根据所述终端自身支持的蓝牙连接方式确定与所述目标蓝牙设备建立蓝牙连接的目标蓝牙连接方式包括:根据所述配置信息中配置的所述终端自身支持的每个蓝牙连接方式对应的优先级,确定与所述预设蓝牙连接方式对应的优先级;确定所述预设蓝牙连接方式对应的优先级是否为所述配置信息中的最高优先级;在所述预设蓝牙连接方式对应的优先级为所述最高优先级的情况下,确定将所述预设蓝牙连接方式作为所述目标蓝牙连接方式。
可理解的,配置信息中也可以配置该终端自身支持的全部蓝牙连接方式设置统一的优先级,而不是对于终端支持的不同的蓝牙设备对应有各自不同的蓝牙连接方式的优先级。从而对于每个不同的蓝牙设备支持的蓝牙连接方式有一个统一的优先级。不需要根据配置信息确定终端与对应的蓝牙设备均支持的蓝牙连接方式以及蓝牙连接方式的优先级,减少判断步骤。从而通过优先级统一协调不同型号蓝牙设备支持不同连接策略的处理流程的同时,减少功耗。
结合第一方面,在一种可能的实施方式中,所述方法还包括:在所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内未检测到所述终端与所述目标蓝牙设备的其他蓝牙连接请求的情况下,确定将所述预设蓝牙连接方式作为所述目标蓝牙连接方式,所述其他蓝牙连接请求包括的蓝牙连接方式对应的优先级大于所述预设蓝牙连接方式对应的优先级;在所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述预设蓝牙连接方式不为所述目标蓝牙连接方式。
在本申请实施例中,在确定预设蓝牙连接方式对应的优先级不为配置信息中的最高优先级的情况下,终端等待预设时长,确定预设时长内是否检测到上述其他蓝牙连接请求;若否,则确定该预设蓝牙连接方式为上述目标蓝牙连接方式。若是,则不将该预设蓝牙连接方式作为该目标蓝牙连接方式。继续将该其他蓝牙连接请求作为上述终端与目标蓝牙设备建立连接的上述蓝牙连接请求,判断该其他蓝牙连接请求中包括的蓝牙连接方式对应的优先级是否为上述最高优先级,以此类推。直到蓝牙连接请求中包括的蓝牙连接方法对应的优先级为上述最高优先级,则将该最高优先级对应的蓝牙连接方式作为上述目标蓝牙连接方式。或者,直到预设时长内终端未再检测到上述其他蓝牙连接请求,则确定将当前蓝牙连接请求中的蓝牙连接方式作为该目标蓝牙连接方式。
在本申请实施例中,上述蓝牙连接请求与上述其他蓝牙连接请求对应的目标蓝牙设备也可以是终端发现的可连接的蓝牙设备中的任意两个相同型号的两个不同蓝牙设备(具体为蓝牙设备的唯一标识不同,例如蓝牙地址)或者不同型号的两个不同蓝牙设备的与该终端的蓝牙连接请求。在该蓝牙连接请求与该其他蓝牙连接请求对应的目标蓝牙设备为相同型号的两个不同蓝牙设备或者不同型号的两个不同蓝牙设备的情况下,上述通过所述目标蓝牙连接方式与所述目标蓝牙设备建立蓝牙连接包括:通过所述其他蓝牙连接请求中包括的蓝牙连接方式与该其他蓝牙连接请求中对应的蓝牙设备建立蓝牙连接。示例性的,上述蓝牙连接请求为上述终端与目标蓝牙设备(例如A设备)的蓝牙连接请求,上述其他蓝牙连接请求为终端与目标蓝牙设备(例如B设备)的蓝牙连接请求,该A设备和该B设备均为目标蓝牙设备(终端通信范围内发现的可连接的蓝牙设备中的任意一个蓝牙设备),该A设备与该B设备为相同型号的两个不同设备,或者不同型号的两个不同设备的情况下,上述通过所述目标蓝牙连接方式与所述目标蓝牙设备建立蓝牙连接具体包括:通过所述其他蓝牙连接请求中包括的蓝牙连接方式与该B蓝牙设备建立蓝牙连接,不与所述蓝牙连接请求中包括的蓝牙连接方式与该A设备建立连接。
结合第一方面,在一种可能的实施方式中,所述在所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述预设蓝牙连接方式不为所述目标蓝牙连接方式,包括:在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到一个或一个以上的所述蓝牙连接请求的情况下,确定所述一个或一个以上的所述蓝牙连接请求包括的一个或一个以上的蓝牙连接方式中对应优先级最高的蓝牙连接方式作为所述目标蓝牙连接方式。
在本申请实施例中,在确定所述预设蓝牙连接方式对应的优先级不为配置信息中的最高优先级,且在第一个预设时长内检测到上述其他蓝牙连接请求的情况下,不立即确定将该其他蓝牙连接请求中包括的蓝牙连接方式作为上述目标蓝牙连接方式,也不是循环等待直到检测到包括该最高优先级的蓝牙连接方式的其他连接请求出现。而是等该第一预设时长结束后,然后统计该第一预设时长内检测到的一个或一个以上的该其他蓝牙连接请求,并将该一个或一个以上的该其他蓝牙连接请求包括的一个或一个以上的蓝牙连接方式中对应优先级最高的蓝牙连接方式作为所述目标蓝牙连接方式。从而通过优先级统一协调不同型号蓝牙设备支持不同连接策略的处理流程的同时提高代码容错性,由于只会等待一个预设时长,从而也可以使得终端与目标蓝牙设备较快速地建立蓝牙连接。
结合第一方面,在一种可能的实施方式中,所述蓝牙连接请求包括预设蓝牙连接方式,所述终端存储有配置信息,所述配置信息配置有所述终端自身支持的蓝牙连接方式与控制信息的关联关系,所述控制信息包括直接建立蓝牙连接的控制信息和不直接建立蓝牙连接的控制信息;所述根据所述终端自身支持的蓝牙连接方式确定与所述目标蓝牙设备建立蓝牙连接的目标蓝牙连接方式包括:根据所述终端自身支持的蓝牙连接方式与控制信息的关联关系,确定所述预设蓝牙连接方式对应的控制信息是否为直接建立蓝牙连接的控制信息;在确定所述预设蓝牙连接方式对应的控制信息为直接建立蓝牙连接的情况下,确定将所述预设蓝牙连接方式作为所述目标蓝牙连接方式。
结合第一方面,在一种可能的实施方式中,在确定所述预设蓝牙连接方式对应的控制信息为不直接建立蓝牙连接的控制信息,且预设时间内未检测到所述终端与所述目标蓝牙设备的其他蓝牙连接请求的情况下,确定将所述预设蓝牙连接方式作为所述目标蓝牙连接方式,所述其他蓝牙连接请求包括的蓝牙连接方式对应的控制信息为直接建立蓝牙连接的控制信息或者,在确定所述预设蓝牙连接方式对应的控制信息为不直接建立蓝牙连接的控制信息,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定将所述其他蓝牙连接请求中包括的蓝牙连接方式作为所述目标蓝牙连接方式。
可理解的,也可以通过除优先级之外的其他控制信息确定上述目标蓝牙连接方式。示例性的,终端自身支持线圈吸附的蓝牙连接方式和靠近发现的蓝牙连接方式,线圈吸附的蓝牙连接方式对应的控制信息为直接建立蓝牙连接,靠近发现的蓝牙连接方式对应的控制信息为不直接建立蓝牙连接。具体的,在代码程序中设置判断(例如if)语句,判断预设蓝牙连接方式是否为该线圈吸附的蓝牙连接方式,若是则确定将该预设蓝牙连接方式作为上述目标蓝牙连接方式,若否则等待预设时长,确定该预设时长内是否检测到上述其他蓝牙连接请求;若否则将该预设蓝牙连接方式作为上述目标蓝牙连接方式;若是则确定将该其他蓝牙连接请求中包括的蓝牙连接方式作为该目标蓝牙连接方式。对于终端支持与蓝牙设备均支持的蓝牙连接方式较少(例如只有两种)的情况下,可以不存储优先级关系,而是将控制信息或优先级在代码中体现,统一协调不同型号蓝牙设备支持不同连接策略的处理流程的同时,节省存储空间,提高存储利用率。
结合第一方面,在一种可能的实施方式中,所述方法还包括:接收云端发送的更新后的配置信息;将所述配置信息更新为所述更新后的配置信息。
在本申请实施例中,当配置信息中的内容发生更新,例如新增蓝牙连接方式或者蓝牙连接方式之间的优先级有变动,则云端可以根据用户输入确定该配置信息的更新后的配置信息,并将该更新后的配置信息发送给终端,终端接收到该更新后的配置信息后,将该终端原有的配置信息更新为上述更新后的配置信息,从而终端可以及时更新添加新的连接策略以及更新蓝牙连接方式对应的优先级。
第二方面,本申请实施例提供一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行第一方面或第一方面的任意可能的实现方式中的方法。
第三方面,本申请实施例提供一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行该第一方面或第一方面的任意可能的实现方式所示的方法。
第四方面,本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在电子设备上运行时,使得该电子设备执行该第一方面或第一方面的任意可能的实现方式所示的方法。
第五方面,本申请实施例提供一种计算机可读存储介质,包括指令,其特征在于,当该指令在电子设备上运行时,使得该电子设备执行该第一方面或第一方面的任意可能的实现方式所示的方法。
可以理解的,上述第二方面提供的电子设备、第三方面提供的芯片系统、第四方面提供的计算机程序产品和第五方面提供的计算机存储介质均用于执行本申请实施例第一方面或第一方面的任一实现方式所示的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1为本申请实施例提供的平板通过扫描广播包的连接方式获取A键盘的标识信息的示意图;
图2为本申请实施例提供的平板通过线圈吸附的连接方式获取A键盘的标识信息的示意图;
图3为本申请实施例提供的终端侧侧的蓝牙架构的示意图;
图4为本申请实施例提供的一种键盘与平板通过线圈吸附的连接方式建立连接后,用户在平板侧开关蓝牙的场景示意图;
图5为本申请实施例提供的一种平板的蓝牙状态由关到开的场景中,将吸附状态修改为吸附的线程,以及并行执行是否满足执行第二BLE扫描的条件的线程的时间线示意图;
图6为本申请实施例提供的一种终端在短时间内通过两种连接方式发现同一个蓝牙键盘的场景下平板侧的连接方法的示意图;
图7为本申请实施例提供的一种实现本申请提供的连接方法的场景示意图;
图8为本申请实施例提供的云端向终端发送更新后的配置文件的示意图;
图9为本申请实施例提供的一种连接方法的流程示意图;
图10为本申请实施例提供的一种多端交互的连接方法的示意图;
图11为本申请实施例提供的一种在多设备的场景下,平板侧的蓝牙连接方法的示意图;
图12为本申请实施例提供的一种由主机向控制器发起的第一BLE扫描的连接方法的示意图;
图13为本申请实施例提供的又一种由主机向控制器发起的第一BLE扫描的连接方法的示意图;
图14为本申请实施例提供的一种由控制器主动发起的第二BLE扫描的连接方法的示意图;
图15为本申请实施例提供的一种由控制器主动发起的第二BLE扫描的连接方法的示意图;
图16为本申请实施例提供的又一种由控制器主动发起的第二BLE扫描的连接方法的示意图;
图17为本申请实施例提供的又一种由控制器主动发起的第二BLE扫描的连接方法的示意图;
图18A至图18B为本申请实施例提供一种连接方法的流程示意图;
图19为本申请实施例提供的终端200的硬件结构示意图;
图20为本申请实施例的终端100的软件结构框图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地描述。
本申请的说明书、权利要求书及附图中的术语“第一”和“第二”等仅用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备等,没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元等,或可选地还包括对于这些过程、方法、产品或设备等固有的其它步骤或单元。
在本文中提及的“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上,“至少两个(项)”是指两个或三个及三个以上,“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”。
在本申请实施例中,蓝牙设备可以是具备蓝牙连接功能的任意电子设备,例如键盘、鼠标、手写笔或电子手环等。终端可以是具备蓝牙连接功能的任意电子设备,包括移动终端、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑以及超级移动个人计算机(ultra-mobile personal computer,UMPC)等具备蓝牙功能的电子设备。
可理解的,蓝牙通信是指两个蓝牙模块或蓝牙设备之间进行通信,进行数据通信的双方一个是主设备,一个是从设备。其中主设备是指扫描或接收数据包、发起连接呼叫请求的设备;从设备是指发布数据包的设备。可理解的,该数据包中携带蓝牙设备的标识信息(也可以理解为设备信息)。在本申请实施例中,该标识信息包括蓝牙地址和设备型号标识(model id),该标识信息还可以包括其他信息,例如蓝牙设备的随机地址或蓝牙设备的名称等,本文对此不做限定。
在本申请实施例中,蓝牙设备的标识信息中的设备型号标识用于指示蓝牙设备的设备型号,蓝牙设备的标识信息中的蓝牙地址用于唯一标识该蓝牙设备。可理解的,蓝牙地址是蓝牙设备的唯一标识,每一个蓝牙设备的地址都是不一致的,从而蓝牙地址可以用于唯一标识一个蓝牙设备。蓝牙地址的数据量大小一般为6字节,也可以为其他合适的大小,本申请实施例对此不做限定。本文关于蓝牙设备的标识信息的描述均与此一致。
为便于描述,本文将工作在从设备模式的蓝牙电子设备称为蓝牙设备,将工作在主设备模式的蓝牙电子设备称为终端。
本申请的实施例中,考虑到目前主流的蓝牙技术一般是蓝牙低能耗(bluetoohlow energy,BLE)蓝牙无线技术,从而本申请实施例以BLE无线技术作为蓝牙技术为例,详细介绍本申请提供的连接方法的实施方式。但本申请实施例提供的连接方法并不只适用于BLE蓝牙无线技术,同样可以适用于传统蓝牙或其他蓝牙技术,本申请对此不做限定。
可理解的,BLE是在蓝牙技术的基础上发展起来的,既同于蓝牙,又区别于传统蓝牙。BLE是功耗极低的短距离无线通信技术,多应用于实时性要求比较高,但是数据速率比较低的产品,例如键盘,遥控鼠标等。
BLE蓝牙技术中,蓝牙设备可以通过BLE广播通道发布BLE广播包(也可以理解为上文所描述的数据包)(以下将BLE广播包简称为广播包),该广播包中包括蓝牙设备的标识信息。BLE蓝牙技术中终端可以通过BLE扫描方式获取蓝牙设备发布的广播包,从而得到蓝牙设备的标识信息,并选择与需要的蓝牙设备建立蓝牙连接。
可理解的,以下对于蓝牙设备的描述均是指同一类型的蓝牙设备,例如同为蓝牙键盘或者同为蓝牙手写笔。
为了便于理解,下面先对本申请实施例涉及的相关术语及相关概念进行介绍。
(1)扫描广播包的连接方式、线圈吸附的连接方式
在本文的表述中,蓝牙连接方式也可以简称为连接方式,也即本文对于连接方式和蓝牙连接方式为同一概念的不同表述。
在本申请实施例中,连接方式是指终端与蓝牙设备发现彼此并建立连接的方式,具体为终端获取(也可以理解为接收)蓝牙设备的标识信息,并与该蓝牙设备建立连接的连接方式。
在本申请实施例中,终端可以通过以下连接方式发现蓝牙设备,并获取蓝牙设备的标识信息:
1、终端通过扫描广播包的连接方式获取蓝牙设备的标识信息。
也就是说,工作在主设备模式的终端可以在蓝牙传输范围内采用BLE扫描技术扫描周围蓝牙设备发布的广播包,获取蓝牙设备的标识信息,并选择需要连接的蓝牙设备进行连接。
示例性的,如图1所示,A键盘通过BLE广播的方式发布广播包,终端通过扫描该广播包的方式获取A键盘的标识信息。
一般地,终端通过扫描广播包的方式与蓝牙设备建立蓝牙连接可以包括传统设置的连接方式、靠近发现的连接方式以及背景回连。
其中,传统设置的连接方式是指终端在检测到用户打开了蓝牙应用程序的页面后,终端执行BLE扫描,通过扫描广播包的方式发现终端通信范围内的蓝牙设备,这些蓝牙设备可以是与终端为同一厂家的配套的蓝牙设备,也可以是第三方蓝牙设备。
靠近发现的连接方式是指终端与终端支持的蓝牙设备(例如同一厂家的配套主设备和从设备)通过扫描广播包的连接方式完成配对连接的一种方式。具体为,当终端的蓝牙功能为开启状态的条件下,终端确定执行BEL扫描,该BLE扫描的扫描过滤器中添加了终端支持的蓝牙设备的私有标识(例如型号标识),在终端和蓝牙设备的蓝牙通信范围内,终端中的该扫描过滤器扫描到包含该私有标识的广播包后,开始处理与该蓝牙设备的配对连接程序(可理解的,也可以是终端通过扫描广播包的方式发现该蓝牙设备,接着弹出配对连接确认框,接收到用户确定配对连接的指令后,再进行蓝牙连接)。可理解的,确定执行该BLE扫描的确定条件,也可以包括比上述终端的蓝牙功能为开启状态的更多的其他条件;示例性的,还可以包括终端处于亮屏状态和/或终端未与对应类型的蓝牙设备建立蓝牙连接的条件。例如当终端对于相同型号的蓝牙设备只支持一个设备的情况下,可以不包括上述终端未与对应类型的蓝牙设备建立蓝牙连接的条件;当终端对于相同型号的蓝牙设备支持多连接的情况下,可以不包括上述终端未与对应类型的蓝牙设备建立蓝牙连接的条件。
背景回连是指在终端的蓝牙功能为开启状态,白名单中包括的蓝牙设备的数量不为0的情况下,终端确定执行BLE扫描,该BLE扫描的蓝牙过滤器中设置为仅扫描白名单中的蓝牙设备的广播包,其中该白名单中存储有已与终端完成配对连接的设备的标识信息。
由上可知,传统设置的连接方式中的BLE扫描、靠近发现的BLE扫描以及背景回连中的BLE扫描互为不同的蓝牙扫描,具体为扫描参数不一致,扫描对象不一致。在本申请实施例中,由于传统设置的连接方式一般只要用户点击蓝牙应用程序页面中发现的蓝牙设备,就会立即向该蓝牙设备发起连接请求,执行与该设备建立连接的处理程序,从而本申请实施例可以不为传统设置的连接方式设置优先级,终端只要用户通过该传统设置的连接方式确认与蓝牙设备连接,则立即与该蓝牙设备连接,不判断优先级也不等待预设时长。可理解的,基于需求,也可以为该传统设置的连接方式设置优先,本申请实施例对此不做限定。
为便于描述,本文将背景回连和靠近发现的连接方式统一称为扫描广播包的连接方式。也就是说,扫描广播包的连接方式即用于指代背景回连,也可以用于指代靠近发现的连接方式。具体的,在配对流程中,该扫描广播包的连接方式用于指代靠近发现的连接方式;在回连流程中,该扫描广播包的连接方式用于指代背景回连的连接方式。
2、终端通过线圈吸附的连接方式获取蓝牙设备的标识信息。
在本申请实施例中,线圈吸附连接中,蓝牙设备的磁铁部分与终端的磁铁部分吸附时,终端侧的磁力感应器可以检测到吸附事件。终端在检测到吸附事件后,可以通过线圈通信的方式(也可以理解为无线充电qi协议的通信方式)获取蓝牙设备的标识信息,简化蓝牙连接流程。
在本申请实施例中,在吸附事件不包括蓝牙设备的标识信息的情况下,终端检测到吸附事件后也可以通过线圈通信的方式获取蓝牙设备的标识信息。
在本申请实施例中,该吸附事件也可以包括蓝牙设备的标识信息。也即线圈吸附的连接方式具体可以为:蓝牙设备向终端发送吸附事件,该吸附事件包括蓝牙设备的标识信息,终端在检测到该吸附事件后,解析吸附事件,得到该蓝牙设备的标识信息。
以下为便于描述,将通过线圈通信的方式获取蓝牙设备的标识信息或者通过吸附事件包括蓝牙设备的标识信息的方式获取蓝牙设备的标识信息统称为线圈吸附的连接方式。
示例性的,如图2所示,在平板与蓝牙键盘建立蓝牙连接的场景中,平板的内部线圈(例如平板的内部线圈的位置为平板背部)与蓝牙键盘的内部线圈,平板的内部磁铁部分(例如平板的内部磁铁的位置为平板背部)与蓝牙键盘的内部磁铁部分(例如键盘的内部磁铁的位置为支撑平板背部的部分,在图2中以蓝牙线圈吸附面201示出)贴合吸附,平板通过磁力传感器检测到吸附事件后,平板的内部线圈与蓝牙键盘的内部线圈采用线圈通信方式传输蓝牙键盘的标识信息,从而平板获取到蓝牙键盘的标识信息。亦或者,上述吸附事件也可以包括蓝牙键盘的标识信息,平板在检测到吸附事件后,解析该吸附事件,即可得到蓝牙键盘的标识信息。
可理解的,终端通过扫描广播包的连接方式获取到蓝牙设备的标识信息后,若需要与蓝牙设备建立连接还要通过广播通道进行一系列的交互步骤,例如密钥信息交互等。而通过线圈吸附的连接方式与蓝牙设备建立蓝牙连接,由于可以通过线圈通信获取蓝牙设备的一部分信息,例如蓝牙地址、型号标识、蓝牙设备名称、密钥信息、随机地址或设备能力等中的一项或多项信息,则可以使得终端与蓝牙设备进行蓝牙连接的过程中,需要通过广播通道进行的一系列交互步骤更为简略。也就是说,线圈吸附的连接方式与扫描广播包的连接方式是两种不同的蓝牙连接方式。
可理解的,扫描广播包的连接方式,存在时间窗口的约束,只有在终端BLE扫描的扫描窗口与蓝牙设备的BLE广播的广播窗口出现重叠的情况下,终端才有可能扫描到蓝牙设备发布的广播包。然而线圈吸附的连接方式,终端和蓝牙设备在检测到吸附动作后,即可以通过通信协议传输标识信息。由此,相比于扫描广播包的连接方式,线圈吸附的连接方式的获取时间会更短(本文所描述的获取时间是指终端在同一时间同时开始获取相同蓝牙设备的标识信息到成功获取到该蓝牙设备的标识信息所消耗的时长)。
可理解的,上述对于连接方式可以有线圈吸附的连接方式和扫描广播包的连接方式仅为示例,终端还可以通过比线圈吸附的连接方式和扫描广播包的连接方式更多或更少的连接方式发现蓝牙设备、获取蓝牙设备的标识信息以及连接蓝牙设备,例如终端还可以通过近场通信(Near Field Communication,NFC)的连接方式获取蓝牙设备的标识信息,本文对此不做限定。
(2)配对连接、背景回连、线圈回连
在本申请实施例中,配对连接是指终端与蓝牙设备首次配对连接。一般地,终端与蓝牙设备首次配对连接的情况下,终端侧在获取到蓝牙设备的标识信息之后,向蓝牙设备发起连接请求之前,会在终端侧弹出包含蓝牙设备的部分标识信息(例如设备型号标识或其他标识信息,例如设备名称)的配对框,终端通过配对框接收到用户发送的确认连接的确认指令后再向该蓝牙设备发起蓝牙连接。
可理解的,在另外一些可能的实现方式中,终端与蓝牙设备首次配对连接,终端侧在获取到包含蓝牙设备的标识信息的数据包后,也可以不弹窗,不向用户提供确认是否连接的入口,而是直接建立连接,本文对此不做限定。
在本申请实施例中,终端与蓝牙设备首次配对时,终端会获取蓝牙设备的一些信息,例如蓝牙设备的密钥信息或设备能力(例如蓝牙设备支持的通信频段)等信息。当终端与蓝牙设备完成首次配对后,终端中存储有蓝牙设备的相关信息,当蓝牙设备与终端再次重连时,就可以省略一些交互步骤。一般地,终端与蓝牙设备在完成首次配对连接后,终端会将该蓝牙设备的标识信息加入白名单以及存储该蓝牙设备的相关信息,终端在下次扫描到白名单中的设备后,可以直接发起连接请求,快速建立连接。可理解的,将蓝牙设备的标识信息加入白名单,具体包括:将蓝牙设备的蓝牙地址加入白名单。可理解的,还可以将蓝牙设备的其他标识信息加入白名单,本文对此不做限定,例如,还可以包括将蓝牙设备的设备名称或设备型号标识等的标识信息加入白名单。可理解的,白名单也可以用其他名词指代(例如已配对名单),本文对此不做限定,本文实施例中关于白名单的描述与此一致。
在本申请实施例中,回连是指终端与已配对蓝牙设备建立蓝牙连接,该已配对蓝牙设备是指已与终端完成配对连接的蓝牙设备。
在本申请实施例中,终端与蓝牙设备的配对连接可以采用上述靠近发现的连接方式、传统设置的连接方式以及线圈吸附的连接方式获取蓝牙设备的标识信息;终端与蓝牙设备的回连可以采用上述背景回连和线圈吸附的连接方式获取蓝牙设备的标识信息。
为便于描述,本文将配对连接中通过上述靠近发现的连接方式获取蓝牙设备的标识信息的BLE扫描(也可以理解为蓝牙扫描)称为第一BLE扫描。将回连中通过上述背景回连中的BLE扫描获取蓝牙设备的标识信息的BLE扫描称为第二BLE扫描。
一般地,终端在确定终端的蓝牙功能为开启状态且终端屏幕处于亮屏状态的情况下,开始执行第一BLE扫描。可理解的,这里对于终端在确定终端的蓝牙功能为开启状态、终端屏幕处于亮屏状态以及终端未与任意一个对应类型的蓝牙设备的条件下,开始执行第一BLE扫描的描述仅为示例,终端开始执行第一BLE扫描还可以包括比屏幕处于亮屏状态的条件更多或更少的其他条件,本文对此不做限定。
在本申请实施例中,回连包括背景回连和线圈回连。其中,通过线圈吸附的连接方式获取蓝牙设备的标识信息后回连蓝牙设备的方式为线圈回连方式。
在背景回连中,终端可以将过滤器设置为仅扫描白名单中的蓝牙设备的广播包,并在终端的蓝牙功能为开启状态的情况下(也可以包括终端的蓝牙功能为开启状态的其他条件,例如白名单中包括的蓝牙设备的数量不为0和/或终端未与任意一个对应类型的蓝牙设备建立蓝牙连接的条件),终端可以执行上述第二BLE扫描,扫描白名单中的蓝牙设备,在扫描到的广播包为白名单存储的蓝牙设备的情况下,发起连接。
可理解的,配对连接(具体为靠近发现的连接方式)中的第一BLE扫描和回连(具体为背景回连)中的第二BLE扫描是两个不同的BLE扫描,第一BLE扫描获取的标识信息可以包含于白名单中,也可以不包含于白名单中。然而与第二BLE扫描对应的蓝牙扫描过滤器中设置了白名单设备,从而第二BLE扫描获取到的标识信息均包含于白名单中。一般地,终端可以在同一时间内,只进行第一BLE或只进行第二BLE扫描,例如,当终端屏幕处于亮屏状态、终端的蓝牙状态为开启状态且终端未与任意一个蓝牙设备建立蓝牙连接的情况下,终端执行第一BLE扫描,不进行第二BLE扫描;当终端处于屏幕处于熄屏状态下,终端执行第二BLE扫描,不进行第一BLE扫描,本文对此不做限定。
以下结合上述术语解释介绍本申请实施例提供的终端侧的蓝牙架构。
如图3所示,终端侧蓝牙架构包括应用层、应用处理器层以及蓝牙芯片层。
其中,应用层包括蓝牙应用程序301;蓝牙应用程序可以用于接收用户指令,例如接收用户触摸、点击或长按等操作。
应用处理器层包括主机(host)302和检测吸附事件的功能程序303。
在本申请实施例中,host中存储有采用BLE进行通信所使用到的BLE协议。可理解的,host是蓝牙协议栈的核心部分,可以负责制定设备工作的角色(例如是主设备还是从设备的角色),指定安全连接,负责协议或通道的多路复用,负责上层应用数据的分割和/或重组等,以满足用户数据传输对延时的要求,以及便于后续的重传、流控等机制的实现。
在本申请实施例中,检测吸附事件的功能程序和host之间存在通信通道,该检测吸附事件的功能程序用于在通过磁力传感器检测到蓝牙设备的吸附动作后,向蓝牙host上报吸附事件。host接收到吸附事件后,通过线圈通信的方式获取蓝牙设备的标识信息。也可以理解为host可以通过线圈吸附的连接方式获取到蓝牙设备的标识信息。
蓝牙芯片层包括控制器(controller)304,也可以理解为蓝牙芯片。蓝牙芯片中包含射频模块(Radio Frequency,RF)和链路层(Link Layer)。RF可以用于实现射频相关的模拟和数字部分,完成最基本的数据发送和接收。也就是说,RF可以用于处理与射频信号相关的任务(例如扫描广播包或向蓝牙设备发送蓝牙连接的请求)。链路层可以决策广播通道和数据传输通道等,使得终端在RF支持的频段上可靠接收和/或发送数据。另外链路层还可以决定蓝牙所处状态,例如scanning状态和initiating状态,在scanning状态下终端可以通过广播通道接收数据(例如接收广播包)。在initiating状态下,终端只接收和处理从设备发送的确认连接的确认数据,不接收或不处理广播包。
上述host和controller可以通过物理接口也即主机控制器接口(hostcontroller interface,HCI)进行通信。例如,controller可以通过HCI向host发送数据,host可以通过HCI向controller发送命令和数据。
可理解的,controller可以处理射频信号,host可以与controller通信,从而既可以由controller主动发起BLE扫描;也可以由host向controller发起BLE扫描的指令,指示controller发起BLE扫描。
一般地,配对连接(具体为靠近发现的连接方式)中,由host向controller发起第一BLE扫描的指令,controller接收到指令后执行第一BLE扫描。回连中的背景回连流程中,由controller在确定满足第一条件的情况下,主动发起的第二BLE扫描;第一条件可以是终端中存储的白名单中记录的标识信息的数量不为0、终端未与任意一个对应类型的蓝牙设备建立蓝牙连接,以及终端的蓝牙状态为开启状态中的一项或多项条件。关于第一BLE扫描、第二BLE扫描请参照上文关于配对连接和背景回连的相关术语解释,在此不再详述。
可理解的,终端中的host可以通过线圈吸附的连接方式获取蓝牙设备的标识信息。controller可以通过扫描广播包的方式获取蓝牙设备的标识信息。由于只有controller可以接收或发送射频信号,从而终端中的host过线圈吸附的连接方式获取到蓝牙设备的标识信息,想要发起与蓝牙设备的蓝牙连接时,host至少需要将蓝牙设备的标识信息发送给controller,再由controller向蓝牙设备发起蓝牙连接的请求。也就是说,通过扫描广播包或线圈吸附的连接方式获取到蓝牙设备的标识信息后,均由controller向需要连接的蓝牙设备发送连接请求。
可理解的,关于图3所示的终端的蓝牙架构属于host+controller双芯片标准架构,终端的蓝牙架构还可以为其他架构。
例如,终端的蓝牙架构还可以为单芯片架构,也即host和controller集成到一个芯片上,host和controller之间的通信不需要物理接口HCI,可以直接通过逻辑接口(例如应用程序编程接口)交互。又例如,终端的蓝牙架构还可以为自定义双芯片架构,host和controller之间通过物理接口HCI通信,但所使用的通信协议由厂商自己定义。
可理解的,本申请实施例提供的连接方法同样适用于除host+controller双芯片标准架构之外的其他蓝牙架构(例如单芯片架构或自定义双芯片架构),本文对此不做限定。
下面以蓝牙键盘作为蓝牙设备,平板作为终端为例,结合上述术语描述和几种其他连接方法的实现方式,对比说明本申请实施例中连接方法的优势:
在一种蓝牙连接的实现方式中,基于需求蓝牙处理流程的程序中设定了在回连场景中,在确定平板与键盘处于吸附状态的情况下,平板才可以进行背景回连(也即执行上述第二BLE扫描)。从而由于线圈吸附的连接方式比扫描广播包的连接方式的获取时间更短,在一定程度上可以使得在BLE广播和吸附事件都存在的情况下,终端不会先接收到BLE广播,而是先通过线圈吸附的连接方式弹窗并回连。可理解的,设计者可以是基于具体的需求设定背景回连依赖于吸附状态,例如为解决多个不同蓝牙键盘同时处于终端的蓝牙通信范围内,且蓝牙键盘通过不同的策略(例如靠近发现、线圈吸附)向终端发送标识信息(例如广播包或吸附事件),终端连接到键盘很可能不是用户想要连接的那个键盘等问题,本文对该具体的需求不做限定。
但这种方法,如图4所示,在平板和键盘保持吸附状态的情况下,在平板侧对蓝牙功能执行由开到关,再由关到开的情况下,在蓝牙功能由开到关后,所有的蓝牙状态均会被重置,其中吸附状态被重置为未吸附的状态。如图5所示,蓝牙功能再由关到开后,例如t1时刻蓝牙打开,重新检测吸附状态并将吸附状态由未吸附修改为吸附,在t2时刻完成吸附状态的修改(也即将吸附状态由未吸附修改为吸附状态)。而在修改吸附状态的期间,回连功能也在异步执行。其中,在执行回连的第二BLE扫描之前,在t3时刻确认吸附状态是否为吸附,若t3小于t2,则查询到的吸附状态为未吸附,则此时第二BLE扫描不能成功执行。也就是说,终端为兼容不同型号的蓝牙设备的连接策略,修改一些代码逻辑导致代码执行出现时序问题,使得代码执行结果与预期结果不一致(也可以理解为程序漏洞bug)。同理的,在终端与蓝牙手写笔等其他类型的蓝牙设备中也会存在相同的时序问题。
可理解的,图4和图5所示的时序问题仅为示例,对于同一类型的蓝牙设备,终端为兼容不同蓝牙设备的不同连接策略,同时考虑到一些判断逻辑的问题,而修改代码逻辑,会引发不可预知时序问题或代码bug,例如无法正常回连或无法断连等问题,基于这些时序问题去新增或修改代码逻辑,又会出现不可预知的其他bug,从而导致代码工作量大等问题。
然而,使用本申请实施例提供的连接方法,执行回连的第二BLE扫描不需要吸附状态为吸附的判定条件,而是为不同型号的蓝牙设备支持的多种不同的连接方式之间添加优先级管控。当终端通过某一连接方式发现键盘后,不立即与该键盘建立连接,而是先判断该连接方式的优先级是否为最高优先级;若否,则等待预设时长(例如1s),确定1s内终端是否通过其他优先级更高的连接方式再次获取到该键盘的标识信息,若是则用优先级更高的连接方式与该键盘建立连接。
示例性的,终端对于A型号的键盘(A键盘)而言,线圈吸附的连接方式的优先级为最高优先级,当终端通过线圈吸附的连接方式获取到A键盘的标识信息后,即可以向A键盘发起连接请求。而终端对于B型号的键盘(B键盘)而言,扫描广播包的连接方式(靠近发现的连接方式或背景回连)的优先级小于线圈吸附的连接方式的优先级。则如图6中的6A和6B所示,当平板通过靠近发现的连接方式发现B键盘并获取到B键盘的标识信息后,由于对于A键盘而言靠近发现的连接方式的优先级不为最高优先级,则等待1s,并确定1s内平板是否通过其他优先级更高的连接方式(例如线圈吸附的连接方式)发现该B键盘。如图6中的6C所示,若1s内平板通过线圈吸附的连接方式发现该B键盘(也可以理解为通过线圈吸附的连接方式获取到该B键盘的标识信息),则如图6中的6D所示平板将通过线圈吸附的连接方式与B键盘建立连接。如图7中的7A和7B所示,若1s内平板未通过其他优先级更高的连接方式获取到B键盘的标识信息的情况下,则确定通过靠近发现的连接方式与该B键盘建立连接。
由此根据优先级统一协调不同型号蓝牙设备的处理流程,避免终端为兼容不同蓝牙设备的不同连接策略,修改原有代码逻辑引发时序问题,带来的代码工作量过大等问题。
实施例1:
以下结合上述术语描述以及如图9所示的方法流程图,详细介绍本申请实施例提供的连接方法。
在本申请实施例中,终端中存储有配置文件,配置文件用于记录连接方式对应的优先级。在一些实施例中,该配置文件还用于记录蓝牙设备对应支持的连接方式。
在本文的表述中,配置文件也可以称为配置信息,也即本文对于配置文件和配置信息为同一概念的不同表述。
示例性的,如下表1所示,配置文件记录有连接方式对应的优先级;其中连接方式包括H1、H2以及H3,且优先级关系为H1>H2>H3。
如下表2所示,配置文件还记录每个型号的蓝牙设备对应支持的连接方式;其中蓝牙设备包括A设备(model id为A的A型号的设备)、B设备(model id为B的B型号的设备)和C设备(model id为C的C型号的设备),其实A设备支持的连接方式包括H1、H2和H3,B设备支持的连接方式包括H1和H3,C设备支持的连接方式包括H1和H2。
表1
表2
可选的,配置文件中记录的连接方式的优先级中的连接方式(如上表1中记录的连接方式)可以是多个终端支持的全部连接方式(该多个终端支持的全部连接方式也可以理解为该多个终端支持的全部蓝牙设备支持的连接方式的集合;或者,也可以理解为同一类型的蓝牙设备的全部型号的蓝牙设备支持的全部连接方式,例如同为蓝牙键盘的全部型号的蓝牙键盘支持的全部连接方式),则该配置文件中记录的蓝牙设备(如表2中记录的不同型号的蓝牙设备)是该多个终端支持的全部蓝牙设备。下文将配置文件中记录的连接方式是多个终端支持的全部连接方式,且该配置文件中记录的蓝牙设备是该多个终端支持的全部蓝牙设备的该配置文件记为第一配置文件。
对于某一具体型号的终端,该终端支持的全部连接方式与该终端支持的蓝牙设备支持的全部连接方式可以一致也可以不一致。例如,该终端支持的全部连接方式为H2和H3,该终端支持的全部蓝牙设备为A设备和B设备,A设备和B设备支持的全部连接方式为H1、H2以及H3。当该终端支持的全部连接方式与该终端支持的蓝牙设备支持的全部连接方式不一致的情况下,上述多个终端支持的全部连接方式也可以理解为该某一具体型号的终端支持的蓝牙设备支持的全部连接方式。
可理解的,在上述配置文件为上述第一配置文件的情况下,对于某一个具体型号的终端而言,配置文件中记录的连接方式的优先级中的连接方式可能包括该终端不支持的连接方式,也可能包括该终端支持的蓝牙设备不支持的连接方式。例如,上述配置文件中记录的配置方式的优先级的连接方式包括H1、H2以及H3,某一具体型号的终端(例如终端2)支持的连接方式为H1和H3,该终端2支持的蓝牙设备(例如C设备)支持的连接方式为H3。
在本申请实施例中,在配置文件为上述第一配置文件的情况下,终端可以根据该第一配置文件确定终端与蓝牙设备都支持的连接方式对应的优先级。
示例性的,终端1通过某一连接方式获取到A设备的标识信息后,终端1可以根据该第一配置文件确定终端1与A设备均支持的连接方式对应的优先级。
例如,如下表3所示,根据该第一配置文件中的上述表2记录的A设备支持的连接方式以及终端1支持的连接方式,若终端1与A设备均支持的连接方式有H1、H2以及H3,则终端1与A设备可以通过H1、H2或H3中的任意一种连接方式建立连接。再根据该第一配置文件中记录的上述表1,可得终端1与A设备都支持的连接方式中H1的优先级最高,H2次之,H3优先级最低。
示例性的,终端2通过某一连接方式获取到B设备的标识信息后,终端2可以根据该第一配置文件确定终端2与B设备均支持的连接方式对应的优先级。
例如,如下表4所示,根据该第一配置文件中的上述表2记录的B设备支持的连接方式以及终端2支持的连接方式,若终端2与B设备均支持的连接方式有H1和H3,则终端2与B设备可以通过H1或H3中的任意一种连接方式建立连接。再根据该第一配置文件中记录的上述表1,可得终端2与B设备都支持的连接方式中,H1的优先级最高,H3的优先级最低。
示例性的,终端3通过某一连接方式获取到C设备的标识信息后,终端3可以根据该第一配置文件确定终端3与C设备均支持的连接方式对应的优先级。
例如,如下表5所示,根据该第一配置文件中的上述表2记录的C设备支持的连接方式以及终端3支持的连接方式,若终端3与C设备均支持的连接方式只有H3,则终端3与C设备仅可以通过H3的连接方式建立连接。再根据该第一配置文件中记录的上述表1,可得终端3与C设备都支持的连接方式中,H3的优先级最高。
可理解的,上述终端1、终端2以及终端3是指终端的型号,终端1、终端2以及终端3互为不同型号的终端。
同理的,在配置文件为上述第一配置文件的情况下,终端也可以根据该第一配置文件确定终端与蓝牙设备都支持的连接方式中优先级最高的连接方式,如下表3、表4以及表5中与配对选择对应的列中小括号记录的内容。
表3
表4
表5
可选的,上述配置文件中记录的连接方式的优先级中的连接方式(如上表1中记录的连接方式)也可以是某一特定终端支持的全部连接方式,该配置文件中记录的蓝牙设备(如表2中记录的不同型号的蓝牙设备)是该某一特定终端支持的全部蓝牙设备。
可理解的,当该终端支持的全部连接方式与该终端支持的蓝牙设备支持的全部连接方式一致的情况下,上述某一特定终端支持的全部连接方式也可以理解为某一特定终端支持的蓝牙设备支持的全部连接方式。
同理,该某一特定终端也可以根据该第一配置文件确定该某一特定终端与某一种型号的蓝牙设备均支持的连接方式的优先级,或者,确定该某一特定终端与某一种型号的蓝牙设备都支持的连接方式中优先级最高的连接方式。
只不过对于该某一特定终端而言,该某一特定终端支持终端中存储的配置文件中记录的任意一个连接方式,则该某一特定终端在确定蓝牙设备支持连接方式的情况下,终端和蓝牙设备均支持。
示例性的,对于该某一特定终端(例如终端4),该终端4支持该终端中存储的配置文件中记录的任意一个连接方式(也即表1或表2中记录的任意一个连接方式)。终端4通过某一连接方式获取到B设备的标识信息后,终端4可以根据该第一配置文件确定终端4与B设备均支持的连接方式对应的优先级。
具体的,如下表6,终端4只需要根据上述表2确定B设备支持的连接方式,B设备支持的连接方式即为终端4和B设备均支持的连接方式。再根据该第一配置文件中记录的上述表1,可得终端3与C设备都支持的连接方式中,H3的优先级最高。
表6
为便于描述,下文将配置文件中记录的连接方式是某一特定终端支持的全部连接方式,且该配置文件中记录的蓝牙设备是该某一特定终端支持的全部蓝牙设备的该配置文件记为第二配置文件。
可理解的,配置文件中也可以采用其他记录方式记录终端对于不同型号的蓝牙设备支持的连接方式以及优先级,本申请实施例对此不做限定。
示例性的,在另外一种实现方式中,配置文件也可以用于记录某一特定型号的终端与该终端支持的每个特定型号的蓝牙设备中,该终端与该蓝牙设备均支持的连接方式以及对应的优先级或最高优先级。
例如,配置文件不包括上述表1和表2,配置文件包括如下表7所示的数据内容。如下表7所示,配置文件中记录终端5与该终端5支持的每个特定型号的蓝牙设备中(例如不同型号的A设备、B设备、C设备以及D设备),该终端5与A设备、与B设备、与C设备以及与D设备分别均支持的连接方式的优先级。可理解的,不同的蓝牙设备支持的连接方式的优先级可以不一致,例如对于A设备和D设备而言,都支持H1和H2,但对于A设备而言H1的优先级是最高的,H2的优先级小于H1的优先级;但是对于D设备而言,H2的优先级是最高的,H2的优先级大于H1的优先级。
可理解的,配置文件中也可以通过其他形式记录表7包含的数据内容,例如下表8所示,本文对此不做限定。示例性的,终端5通过某一连接方式获取到D设备的标识信息后,终端5可以根据该第一配置文件确定终端5与D设备均支持的连接方式对应的优先级。具体为,终端5根据D设备的标识信息中的型号标识(也即D型号标识)确定与该D设备的标识信息对应的连接方式以及优先级信息,该连接方式及优先级信息即为终端和D设备均支持的连接方式对应的优先级。
为便于描述,下文将用于记录某一特定型号的终端与该终端支持的每个特定型号的蓝牙设备中,该终端与该蓝牙设备均支持的连接方式以及对应的优先级或最高优先级的配置文件(例如不包括上述表1和表2,包括上述表7或表8的配对文件)称为第三配置文件。
表7
表8
在另外一种实现方式中,配置文件也可以用于记录某一特定型号的终端支持的全部连接方式的优先级,不包括蓝牙设备支持的连接方式。例如,复用如上表1和表2,配置文件中也可以只包括如上表1的数据内容不包括表2的数据内容,该表1用于记录某一特定型号的终端支持的全部连接方式的优先级。为便于描述,下文将只包括上述表1不包括上述表2,且表1用于记录某一特定型号的终端支持的全部连接方式的优先级的配对文件称为第四配置文件。
在本申请实施例中,配置文件的格式可以为可拓展标记语言(extentsiblemarkup language,xml)格式、文档(document,DOC)格式或excel表格格式,或者也可以为其他文件格式,本文对此不做限定。
在本申请实施例中,在确保连接方式H1、H2或H3为不同的连接方式的前提下,H1、H2或H3可以是线圈吸附的连接方式、扫描广播包的连接方式、以及NFC连接方式中的任意一项。可理解的,H1、H2或H3也可以是其他可实现的连接方式,本文对此不做限定。关于线圈吸附的连接方式和扫描广播包的连接方式的具体描述可以参照本申请其他实施例的相关说明(例如图1至图2的相关说明),在此不再详述。
在本申请实施例中,在需要更新连接方式的内容(例如添加新的连接方式)或连接方式的优先级的情况下,可以通过以下两种方式更新终端中的配置文件的内容:
1、通过版本更新的方式更新配置文件的内容。
示例性的,将终端7.0版本与8.0版本支持的连接方式以及连接方式的优先级的差异内容存储到升级包中。终端在执行7.0版本到8.0版本的升级任务后,即可更新配置文件中的内容。
2、通过云端向终端发送更新后的配置文件。
示例性的,如图8所示,当在需要更新连接方式的内容或连接方式的优先级的情况下,可以通过云端向终端发送更新后的配置文件。为便于描述,以下将终端中存储的原有的配置文件称为原有配置文件。具体的,包括以下步骤:
S801,云端确定更新后的配置文件。
在本申请实施例中,云端可以通过接收用户输入的方式确定该更新后的配置文件的内容。
S802,云端向终端发送该更新后的配置文件,相应地,终端接收云端发送的该更新后的配置文件。
在本申请实施例中,云端可以在接收到用户输入的确定发送指令后,向终端发送更新后的配置文件。
S803,终端将原有配置文件替换为该更新后的配置文件,并根据该更新后的配置文件中定义的连接方式与对应的优先级之间的关联关系执行本方案的连接方法。
可理解的,还可以通过其他可实现的更新方式更新配置文件中的内容,本文对此不做限定。
在本申请实施例中,上述云端还可以为服务器或云服务器等,本申请实施例对于该服务器的具体形态不做限定。本文其他实施例中关于云端的相关描述的说明均与此相同。
如图9所示,本申请实施例提供的连接方法包括以下步骤:
S901,终端通过第一连接方式获取第一标识信息。
在本申请实施例中,标识信息包括蓝牙设备的型号标识和蓝牙设备的蓝牙地址。
终端可以根据该第一标识信息中的型号标识确定与该型号标识对应的蓝牙设备的型号。示例性的,与该第一标识信息中包括的型号标识对应的蓝牙设备为上述A设备。终端可以根据该第一标识信息中的蓝牙设备的蓝牙地址确定一个唯一的蓝牙设备。示例性的,与该第一标识信息中的蓝牙设备的蓝牙地址对应的设备为A1设备(也可以理解为A型号的设备中的A1设备)。可理解的,该第一标识信息还可以包括其他标识信息,例如随机地址等,本文对此不做限定。
在本申请实施例中,上述第一连接方式可以是终端获取A设备的标识信息的连接方式中的任意一个连接方式。
示例性的,若终端与A设备均支持的连接方式如上表3所示的情况下,第一连接方式可以是上述H1、H2以及H3中的任意一项。
在本申请实施例中,A设备为终端支持蓝牙设备中的任意一个蓝牙设备。该A设备可以是已与终端配对连接的蓝牙设备,也可以是未与终端配对连接的蓝牙设备。
可理解的,终端通过第一连接方式获取第一标识信息,具体可以为:终端通过第一连接方式获取A设备发送的数据包,该数据包中包含第一标识信息。示例性的,终端通过扫描广播包的连接方式获取到A设备发布的广播包(该广播包即为数据包),该广播包中包含第一标识信息。示例性的,终端通过线圈吸附的连接方式获取吸附事件(该吸附事件即为数据包),该吸附事件中包含第一标识信息。
关于终端、蓝牙设备、广播包、吸附事件、扫描广播包的连接方式以及线圈吸附的连接方式的具体说明请参照本文其他实施例的相关描述(例如上述术语解释),在此不再详述。
S902,终端根据存储的配置文件确定终端与该第一标识信息对应的蓝牙设备均支持的连接方式的优先级。
示例性的,与该第一标识信息中包括的型号标识对应的蓝牙设备为上述A设备,且终端存储的配置文件为上述第一配置文件的情况下,上述终端根据存储的第一配置文件确定终端与该第一标识信息对应的蓝牙设备均支持的连接方式的优先级,具体包括:终端根据存储的第一配置文件以及自身能力确定终端与A设备均支持的连接方式的优先级。具体的,可以参照上述关于表1、表2、表3、表4以及表5的相关描述,在此不再详述。
示例性的,终端存储的配置文件为上述第二配置文件的情况下,终端根据存储的第二配置文件确定与第一标识信息中包括的型号标识对应的蓝牙设备(例如型号标识为A,即A设备)支持的连接方式,该A设备支持的连接方式即为终端与第一标识信息对应的蓝牙设备(A设备)均支持的连接方式,再根据第二配置文件中记录的连接方式的优先级,即可得到该A设备与终端均支持的外连接方式的优先级。具体的,可以参照上述关于表1、表2、以及表6的相关描述,在此不再详述。
示例性的,终端存储的配置文件为上述第三配置文件的情况下,上述终端根据存储的配置文件确定终端与该第一标识信息对应的蓝牙设备均支持的连接方式的优先级,具体包括:终端根据存储的配置文件确定与该第一标识信息中的型号标识(例如型号标识为A,也即A设备)对应的连接方式及优先级信息,该连接方式及优先级信息即为该终端与该第一标识信息对应的蓝牙设备均支持的连接方式的优先级。
可理解的,本申请实施例所描述的A设备与上述表1至表5所描述的A设备可以是相同型号的同一个蓝牙设备,也可以是同一个型号的不同蓝牙设备。
S903,终端根据终端与该第一标识信息对应的蓝牙设备均支持的连接方式的优先级,确定该第一连接方式的优先级是否为最高优先级。
示例性的,与该第一标识信息对应的蓝牙设备为上述A设备,终端确定到的终端与该A设备均支持的连接方式的优先级如上表4所示,也即终端与该A设备均支持的连接方式的优先级为H1>H2>H3,其中H1的连接方式的优先级为最高优先级。通过确定该第一连接方式为该H1、H2或H3中的哪一个连接方式,即可得到该第一连接方式对应的优先级是否为最高优先级。
S904,在确定第一连接方式的优先级为最高优先级的情况下,终端确定通过该第一连接方式与第一标识信息对应的蓝牙设备建立蓝牙连接。
示例性的,与该第一标识信息中包括的型号标识对应的蓝牙设备为上述A设备,与该第一标识信息中包括的蓝牙地址对应的蓝牙设备为A1设备。
上述终端确定通过该第一连接方式与第一标识信息对应的蓝牙设备建立蓝牙连接,具体包括:终端确定通过第一连接方式与A1设备建立蓝牙连接。终端确定通过第一连接方式与A1设备建立蓝牙连接也可以理解为可以继续通过该第一连接方式执行与A1设备建立蓝牙连接的程序任务。
例如,终端侧设置了无论是配对连接还是回连场景,通过线圈吸附的连接方式连接蓝牙设备的情况下,在向蓝牙设备发送连接请求之前,均需要弹出确认连接的配对框,在接收到用户的确认指令后再向蓝牙设备发送连接请求。若上述第一连接方式为该线圈吸附的连接方式,则上述终端在确定通过第一连接方式与A1设备建立蓝牙连接后,可以弹出上述确认连接的配对框,继续通过线圈吸附的连接方式执行与A1设备建立蓝牙连接的相关任务。下文确定通过连接方式(第一连接方式或第二连接方式)与(第一标识信息或第二标识信息)对应的蓝牙设备建立蓝牙连接的描述均与此相同。
S905,在确定第一连接方式的优先级不为最高优先级的情况下,终端等待预设时长,并确定预设时长内终端是否通过优先级更高的连接方式获取到该第一标识信息。
也可以理解为:在确定第一连接方式的优先级不为最高优先级的情况下,终端等待预设时长,并确定预设时长内终端是否通过第二连接方式获取到该第一标识信息,且第二连接方式的优先级大于第一连接方式的优先级。
在本申请实施例中,“预设时长内”可以包括端点值(包括一个端点值或包括两个端点值),也可以不包括端点值。示例性的,“预设时长内”包括端点值;其中,预设时长为100ms,起始时刻为Yms(Y毫秒),则预设时长内是指[Y,Y+100ms],也即第Yms到第Y+100ms内(包含第Yms和第Y+100ms)的任意一个时间。
在本申请实施例中,上述预设时长可以是100ms(毫秒),也可以是其他合适的时长(例如200ms、1s等),本文对此不做限定。
在本申请实施例中,预设时长也可以由用户自定义设置,具体为,终端向用户提供设置该预设时长的值的输入口,通过该输入口接收用户自定义的该预设时长的值。
S906,在确定预设时长内终端通过优先级更高的连接方式获取到该第一标识信息的情况下,终端确定通过该优先级更高的连接方式与该第一标识信息对应的蓝牙设备建立蓝牙连接。
也可以理解为,在确定预设时长内终端通过第二连接方式获取到该第一标识信息,且第二连接方式的优先级大于第一连接方式的优先级的情况下,终端确定通过该第二连接方式与该第一标识信息对应的蓝牙设备建立连接。
可理解的,终端确定预设时长内终端通过优先级更高的连接方式获取到第一标识信息,具体可以为:终端在预设时长内通过第二连接方式获取到该第一标识信息,并在预设时长内完成判断第二连接方式的优先级是否大于第一连接方式的优先级的任务。或者,也可以为:终端在预设时长内通过第二连接方式获取到该第一标识信息,但未在预设时长内完成判断第二连接方式的优先级是否大于第一连接方式的优先级的任务,可理解的,这种情况下,终端需要在完成判断任务后再确定通过第一连接方式还是通过第二连接方式与第一标识信息对应的蓝牙设备建立连接。
S907,在确定预设时长内终端未通过优先级更高的连接方式获取到该第一标识信息的情况下,终端确定通过该第一连接方式与第一标识信息对应的蓝牙设备建立蓝牙连接。
示例性的,上述步骤S904至S906,可以通过for语句实现。
具体的,采用for语句,循环执行判断从第一时刻到第二时刻的时间内,终端是否通过上述第二连接方式获取到上述第一标识信息;若是,则确定通过该第二连接方式与第一标识信息对应的蓝牙设备建立蓝牙连接,并跳出循环,不再执行循环内容。若否(也即for循环结束且终端仍未通过上述第二连接方式获取到该第一标识信息),则确定终端通过第一连接方式与该第一标识信息对应的蓝牙设备建立蓝牙连接。其中,该第一时刻可以是获取到第一标识信息的获取时刻,也可以是在确定第一连接方式的优先级不为最高优先级的确定时刻,该第二时刻为该第一时刻加上上述预设时长后的时刻。
示例性的,也可以通过for语句以及java中的定时器(timer)类实现上述步骤S904至S906。
具体的,可以通过调用timer.schedule(task, delay)方法,实现在延迟delay毫秒(例如100ms)后执行task任务(也即确定通过第一连接方式与上述第一标识信息对应的蓝牙设备建立蓝牙连接的任务)。并且,同时并发地采用for语句,循环执行判断从第一时刻到第二时刻的时间内,终端是否通过上述第二连接方式获取到该第一标识信息;若是,则确定通过该第二连接方式与该第一标识信息对应的蓝牙设备建立蓝牙连接,跳出循环,不再执行循环内容,并且取消timer,例如通过调用.clearTimeout的方法清除timer(也可以理解为取消在预设时长后确定通过第一连接方式与上述第一标识信息对应的蓝牙设备建立蓝牙连接的任务)。若否,则不取消timer,预设时长后,终端自动会通过第一连接方式与上述第一标识信息对应的蓝牙设备建立蓝牙连接。可理解的,设置了timer,则在调出循环时,需要取消timer(取消执行timer中的task任务),也即取消在延迟100ms后确定通过第一连接方式与A1设备建立蓝牙连接的任务。
可理解的,也可以通过其他方式实现上述步骤S904至S906,本文对此不做限定。
示例性的,如图9所示的连接方法也可以理解为如图10所示的连接方法。如图10所示,终端先通过H3的连接方式获取到A键盘的第一标识信息,并在确定H3的连接方式的优先级不为最高优先级的情况下,等待预设时长;在预设时长内通过H1的连接方式获取到该A键盘的第一标识信息的情况下,再根据优先级关系确定是通过H1的连接方式还是通过H3的连接方式与A键盘建立蓝牙连接。具体为,在该H1的连接方式的优先级大于该H3的连接方式的优先级的情况下,确定通过H1的连接方式与A键盘建立蓝牙连接。
在一些实现方式中,在上述步骤S905之后步骤S906之前,还可以循环执行上述步骤S903和步骤S905,也即终端可以叠加性地等待预设时长。终端都可以叠加性地等待预设时长,直到终端通过终端与该第一标识信息对应的蓝牙设备均支持的连接方式中优先级最高的连接方式获取到该第一标识信息,或者,直到终端在预设时长内未通过优先级更高的连接方式获取到该第一标识信息。
示例性的,在确定预设时长内终端通过第二连接方式获取到第一标识信息的情况下,用第二连接方式的值替换第一连接方式的值,执行步骤S903确定当前第一连接方式(也即该第二连接方式)的优先级是否为最高优先级,在确定该当前第一连接方式的优先级不为最高优先级的情况下,执行步骤S905等待预设时长,并确定预设时长内终端是否通过优先级更高的连接方式获取到该第一标识信息,以此类推。直到终端在预设时长内未通过优先级更高的连接方式获取到蓝牙设备的标识信息,则确定通过当前第一连接方式与第一标识信息对应的蓝牙设备建立连接。或者,直到终端通过终端与该第一标识信息对应的蓝牙设备均支持的连接方式中优先级最高的连接方式获取到该第一标识信息,则确定通过该第二连接方式与该第一标识信息对应的蓝牙设备建立蓝牙连接。
可理解的,若通过timer和for的方法执行上述步骤S904至S906,timer中实现在延迟预设时长后执行确定通过第一连接方式与A1设备建立蓝牙连接任务。若在预设时长内通过优先级更高的连接方式获取到该A1设备的标识信息,则循环执行等待预设时长,且timer.schedule(task, delay)方法中的task也对应的修改为预设时长后确定通过第二连接方式与A1设备建立蓝牙连接,以此类推。
一般地,用户只会经常使用同一个终端和同一个键盘(例如上述A键盘),而终端可以支持多种不同的蓝牙键盘,终端对于不同的键盘可以支持不同的连接策略。例如终端对B键盘支持线圈吸附的连接方式,并为该B键盘支持的线圈吸附的连接方式设计了一套代码逻辑。例如,终端只要通过线圈吸附的连接方式接收到键盘的标识信息,就弹出连接确认框。对于用户经常使用的A键盘,若A键盘同时支持靠近发现的连接方式和线圈吸附的连接方式,而用户又经常线圈吸附的连接方式使得终端与A键盘连接的情况下,A键盘与终端吸附过程中,A键盘与终端已通过靠近发现的连接方式建立连接,A键盘与终端吸附后,终端会再次弹出与A键盘建立连接的配对框,从而出现多次重复连接的时序问题,且用户每使用一次该A键盘就会至少出现一次该时序问题,对用户造成困扰的同时,带来不必要的性能损耗(例如终端的电量损耗)。
然而,使用本申请实施例提供的连接方法,配置文件中存储有终端与终端支持的不同型号的键盘均支持的连接方式的优先级;当终端通过一种连接方式获取到键盘的标识信息后,终端根据两者均支持的配对方式的优先级,确定当前连接方式是否为两者均支持的配对方式的优先级中的最高优先级,若否,则等待一段时间,确定等待期间终端是否通过优先级更高的或者优先级最高的连接方式再次获取到该键盘的标识信息,若是则采用该优先级更高的或优先级最高的连接方式与该键盘建立蓝牙连接。从而可以避免出现多次重复连接的时序问题,减低不必要的性能损耗,提高蓝牙功能的使用效率。
亦或者,为解决不同蓝牙设备支持不同连接策略带来的逻辑判断的时序问题兼容不同的连接策略,而修改代码逻辑,又会出现不可预知的其他代码bug。
由此,本方案根据优先级统一协调不同型号蓝牙设备的处理流程,避免终端为兼容不同蓝牙设备的不同连接策略,修改原有代码逻辑引发时序问题,带来的代码工作量过大等问题。
在另外一些实现方式中,也可以在开始执行等待预设时长的时刻起开始计时,并设置最大等待时长。终端可以循环执行上述步骤S902至步骤S906,叠加性地等待预设时长,直到总等待时长大于最大等待时长,或者,直到终端在预设时长内未通过优先级更高的连接方式获取到蓝牙设备的标识信息,或者,直到终端通过第一集合的连接方式中优先级最高的连接方式获取到蓝牙设备的设备的信息,则不再循环执行上述步骤S902至步骤S906。可理解的,总等待时长即为从终端开始执行等待预设时长的时刻与当前时间的时间差。
可理解的,本文对于执行确定总等待时长是否小于最大等待时长步骤的执行时机不做限定,可以间隔一段时间(例如1ms)执行一次,也可以在上述步骤S905至步骤S906间执行。
示例性的,间隔执行的方式。例如,每间隔5ms执行判断总等待时长是否大于或等于最大等待时长;若是,则取消上述定时器timer,立即执行timer中指定的任务。例如,timer中指定在timer创建的100ms后终端执行确定通过第一连接方式与K蓝牙设备建立蓝牙连接的任务,在确定总等待时长大于或等于最大等待时长后,则取消timer,并立即确定通过第一连接方式与K蓝牙设备建立蓝牙连接。
示例性的,在步骤S905至步骤S906之间执行,在确定预设时长内终端通过第二连接方式获取到上述第一标识信息的情况下,确定总等待时长是否小于最大等待时长。若否,则执行步骤S905,确定通过该第二连接方式与该第一标识信息对应的蓝牙设备建立蓝牙连接。
在本申请实施例中,在确定预设时长内通过第二连接方式获取到上述第一标识信息的情况下,可以取消等待,例如通过调用.clearTimeout方法取消定时器,并立即确定通过第二连接方式与该第一标识信息对应的蓝牙设备建立蓝牙连接。但也可以不取消等待,不立即确定与通过通过第二连接方式与该第一标识信息对应的蓝牙设备建立连接,而是继续执行步骤S902至步骤S906,直到预设时长结束。
在一些可能的实现方式中,也可以不另外设置最大等待时长,而是将上述预设时长作为最大等待时长。也就是说,在预设时长内终端通过优先级更高的连接方式获取到该第一标识信息,不立即确定通过该优先级更高的连接方式与该第一标识信息对应的B设备建立连接,而是继续执行步骤S902至步骤S906,直到预设时长结束,确定预设时长内终端通过优先级更高的一项或多项连接方式获取到该第一标识信息,并确定通过该一项或多项连接方式中优先级最高的连接方式与该第一标识信息对应的蓝牙设备建立连接。
在一种可能的实现方式中,若上述步骤S905至S906中在预设时长内终端通过优先级更高的连接方式获取到第二标识信息,该第二标识信息包括的型号标识与该第一标识信息包括的型号标识相同,该第二标识信息包括的蓝牙地址与该第一标识信息包括的蓝牙地址不相同的情况下,终端确定通过该第二连接方式与该第二标识信息对应的蓝牙设备建立连接。
示例性的,与该第一标识信息中包括的型号标识对应的蓝牙设备和与该第二标识信息中包括的型号标识对应的蓝牙设备均为上述A设备,与该第一标识信息中包括的蓝牙地址对应的蓝牙设备为A1设备,与该第二标识信息中包括的蓝牙地址对应的蓝牙设备为A2设备(也可以理解为A型号的设备中的A2设备),该A1设备与A2设备为同一型号的不同蓝牙设备。也即终端先后通过第一连接方式和第二连接方式获取到的标识信息为同一个型号的两个不同的设备,且第二连接方式的优先级高于第一连接方式的优先级,则终端确定通过该第二连接方式与第二标识信息对应的蓝牙设备(也即A2设备)建立连接。
在本申请实施例中,该A1设备和A2设备均可以是已与终端配对连接的蓝牙设备,也可以是未与终端配对连接的蓝牙设备。
关于第二标识信息的具体说明请参照本文关于第一标识信息的相关描述,在此不再详述。
在本申请实施例中,终端还可以向用户展示某一型号的蓝牙设备与终端均支持的连接方式的优先级。也可以向用户提供自定义设置该某一型号的蓝牙设备与终端均支持的连接方式的优先级的功能,并根据用户自定义的优先级信息更新配置文件。示例性的,终端通过界面显示的方式,向用户展示A设备(例如蓝牙键盘或蓝牙手写笔)与终端均支持的连接方式的优先级信息,并输出提示用户页面中由上往下连接方式的优先级逐渐递减,通过长按后上下滑动的方式自定义设置优先级顺序的提示信息。在接收到用户自定义设置的优先级信息后,将终端中存储配置文件中记录优先级信息更新为用户自定义的优先级信息。从而,终端根据用户指示的优先级执行本申请实施例提供的连接方法,进一步减少由于不同蓝牙设备支持的连接方式不一致出现的时序问题的概率,降低功耗。
在一些可能的实现方式中,当终端中存储的配置文件为上述第四配置文件(也即配置文件用于记录终端支持的全部连接方式的优先级)的情况下,也可以根据该配置文件中记录的优先级,执行本申请实施例提供的连接方法。示例性的,终端通过第一连接方式获取第三标识信息;根据配置文件确定与该第一连接方式对应的优先级是否为配置文件中的最高优先级;在确定与该第一连接方式对应的优先级为该最高优先级的情况下,确定通过该第一连接方式与该第三标识信息对应的蓝牙设备建立连接;在确定与该第一连接方式对应的优先级不为最高优先级的情况下,等待预设时长,并确定预设时长内终端是否通过比第一连接方式的优先级更高的第二连接方式获取到第四标识信息,若是则通过该第二连接方式与该第四标识信息对应的蓝牙设备建立连接。该第三标识信息与该第四标识信息对应的蓝牙设备可以是相同型号的同一设备或相同型号的不同设备,也可以是不同型号的两个不同设备。
示例性的,配置文件中存储了线圈吸附的连接方式的优先级大于扫描广播包的连接方式的优先级。如图11所示,A1键盘和A2键盘为相同型号的不同设备,两个键盘均处于平板100的蓝牙传输范围内,A1键盘向平板100发送广播包,A2键盘吸附平板(参考图11中的11A)。则此时,若平板100先通过扫描BLE广播包的方式获取到A1键盘的设备信息,且确定扫描广播包的连接方式不为优先级最高的连接方式的情况下,则平板等待预设时长(例如100毫秒);预设时长内不通过扫描广播包的连接方式向A1键盘发起蓝牙连接的任务,并确定100ms内终端是否通过其他优先级更高的连接方式获取到设备信息(参考图11中的11B)。若是,例如,100ms内平板通过线圈吸附的连接方式获取到A2键盘的设备信息,终端在确定线圈吸附的连接方式的优先级大于扫描广播包的连接方式的情况下,终端确定通过线圈吸附的连接方式与A2键盘建立蓝牙连接(参考图11中的11C)。
可理解的,本申请实施例提供的连接方法可以用于终端与蓝牙设备支持两种或两种以上的连接方式的场景。对于终端与终端支持的全部型号的蓝牙设备只支持一种连接方式或者除了传统设置的连接方式之外仅支持一种其他连接方式的场景中,终端通过这种连接方式获取到蓝牙设备的标识信息后,也可以不判断优先级直接通过该连接方式与蓝牙设备建立蓝牙连接。示例性的,在一些实现方式中,在上述步骤S902之后以及步骤S903之前,还包括:确定终端与该第一标识信息对应的蓝牙设备均支持的连接方式的数量是否等于1;若是,则终端确定通过该第一连接方式与第一标识对应的蓝牙设备建立蓝牙连接(也可以理解为执行步骤S904);若否,则执行步骤S903,确定第一连接方式的优先级是否为最高优先级。
可理解的,本申请实施例所描述的连接方法不仅适用于蓝牙连接,也同样适用于其他无线通信连接。例如WiFi连接、RFID连接或ZigBee连接、移动通信连接。
实施例2:
可理解的,在配对连接流程中(具体为终端通过靠近发现的连接方式获取蓝牙设备的标识信息),由host向controller发起第一BLE扫描的指令,controller接收到指令后执行第一BLE扫描。以下结合上述术语描述、终端侧的蓝牙架构以及上述图9所描述的方法步骤,以蓝牙键盘作为上述蓝牙设备,平板作为上述终端,以及配置文件中记录了终端与该终端支持的每个特定型号的蓝牙设备中,该终端与该蓝牙设备均支持的连接方式以及对应的优先级或最高优先级的配置文件(也即终端存储的配置文件为上述第三配置文件),其中对于终端支持的A型号的键盘,终端与该A型号的键盘均支持的连接方式以及优先级包括线圈吸附的连接方式的优先级大于扫描广播包的连接方式(靠近发现或传统设置的连接方式)的优先级为例,详细介绍由host发起的第一BLE扫描具体如何使用本申请实施例提供的连接方法。
本申请实施例中,在终端侧存储有配置文件,该配置文件中包括的数据内容如下表9所示。表9可以理解为,终端获取A型号的键盘(A键盘)的标识信息的连接方式可以有线圈吸附和扫描广播包的连接方式,且线圈吸附的连接方式优先级最高。在配对流程中,该扫描广播包的连接方式用于指代靠近发现的连接方式。
表9
在本申请实施例中,平板中的controller在接收到host发送的执行第一BLE扫描的指令后,开始执行第一BLE扫描,并在通过第一BLE扫描获取到A键盘的广播包后,将A键盘的广播包上报给host;由host判断扫描广播包的连接方式的优先级是否为A键盘与终端均支持的连接方式的优先级中的最高优先级;若是,则与该A键盘建立蓝牙连接;若否,则由host执行等待预设时长,并确定预设时长内终端是否通过其他优先级更高的连接方式获取到该A键盘的标识信息。
具体的,如图12所示,本申请实施例提供的连接方法包括以下步骤:
S1201,主机(host)确定执行第一BLE扫描的第一指令。
在本申请实施例中,上述确定执行第一BLE扫描的第一指令,具体包括:host设置第一BLE扫描的扫描参数,并确定满足预设条件的情况下,向controller发送第一指令,该第一指令包括第一BLE扫描的扫描参数。
一般地,扫描参数可以包括:扫描窗口(也即一次扫描的时间宽度)和扫描间隔(也即两个连续的扫描窗口的起始时间之间的时间差),扫描参数还可以包括比扫描窗口和扫描间隔更多或更少的参数,本文对此不做限定。
可理解的,上述预设条件可以是终端的蓝牙状态为开启状态,终端的屏幕为亮屏状态。这里对于预设条件的描述仅为示例,预设条件还可以包括比亮屏状态更多或更少的条件,本文对此不做限定。
S1202,host向controller发送该第一指令,相应的controller接收该第一指令。
示例性的,当终端满足上述预设条件的情况下,host设置该第一BLE扫描的扫描参数,并向controller发送该第一指令,controller接收到该指令后,执行扫描,直到扫描到键盘的广播包或者直到终端的屏幕由亮屏状态修改为熄屏状态,结束该第一BLE扫描。
可理解的,上述预设条件还可以包括比上述终端的蓝牙功能为开启状态和亮屏状态更多或更少的条件;示例性的,还可以包括终端处于亮屏状态和/或终端未与对应类型的蓝牙设备建立蓝牙连接的条件。例如当终端对于相同型号的蓝牙设备只支持一个设备的情况下,可以不包括上述终端未与对应类型的蓝牙设备建立蓝牙连接的条件;当终端对于相同型号的蓝牙设备支持多连接的情况下,可以不包括上述终端未与对应类型的蓝牙设备建立蓝牙连接的条件。
S1203,controller执行第一BLE扫描。
在本申请实施例中,上述controller执行第一BLE扫描,具体包括:controller接收到host发送的第一指令后,根据第一指令执行第一BLE扫描。
S1204,controller获取A键盘的第一广播包。
示例性的,第一广播包为A键盘通过BLE广播发布的广播包。该第一广播包中包括A键盘的标识信息。该标识信息包括A键盘的型号标识和蓝牙地址,还可以包括A键盘的设备名称、设备型号标识(model id)以及A键盘支持的数据包的类型等数据中的一项或多项。
S1205,controller将第一广播包上报给host,相应地,host接收该第一广播包。
S1206,host判断扫描广播包的连接方式的优先级是否为最高优先级。
在本申请实施例中,上述host判断扫描广播包的连接方式是否为优先级最高的连接方式,具体包括:host根据终端中存储的配置文件确定终端与该第一广播包中包含的型号标识对应的蓝牙设备均支持的连接方式的优先级,例如该第一广播包中包含的型号标识对应的蓝牙设备为A键盘,A键盘与终端均支持的连接方式的优先级如上表9所示。host再判断该扫描广播包的连接方式的优先级是否为该A键盘与终端均支持的连接方式的优先级中的最高优先级。具体可以参考图9中步骤S902至S903的相关说明,在此不再详述。
S1207,若否,则host等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到该A键盘中包含的标识信息。
在本申请实施例中,终端也可以在扫描到第一广播包后,将第一BLE扫描的蓝牙状态由scanning状态(在scanning状态下终端可以通过与第一BLE扫描的对应的广播通道接收广播包)修改为initiating状态(在initiating状态下终端只接收和处理从设备发送的确认连接的确认数据,不接收或不处理广播包)状态下,从而终端在预设时长内,不会再接收到其他广播包。
在本申请实施例中,若扫描广播包的连接方式的优先级为配置文件中记录的连接方式中优先级最高的连接方式,则终端确定通过扫描广播包的连接方式与A键盘建立蓝牙连接。若扫描广播包的连接方式的优先级不为配置文件记录的连接方式中优先级最高的连接方式,则host等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到该A键盘的标识信息。
示例性的,A键盘与终端均支持的连接方式的优先级如上表9所示。host在确定该扫描广播包的连接方式的优先级不为该A键盘与终端均支持的连接方式的优先级中的最高优先级的情况下,等待预设时长,并确定确定预设时长内是否通过优先级更高的连接方式获取到该A键盘中包含的标识信息。
关于预设时长的具体说明请参照本文其他实施例的相关描述(例如上述步骤S905中的相关描述),在此不再详述。关于步骤S1207等待预设时长的具体实现方法可以参照本文其他实施例的相关描述(例如上述步骤S905中的相关描述),在此不再详述。
S1208,在预设时长内,host获取到A键盘的吸附事件。
示例性的,A键盘的线圈与平板的线圈吸附后,平板中的磁感应器向host上报该吸附事件。在本申请实施例中,为便于描述,以该吸附事件中携带蓝牙设备的标识信息为例,说明本申请实施例提供的连接方法。
S1209,host判断线圈吸附的连接方式的优先级是否大于扫描广播包的连接方式的优先级。
示例性的,host根据终端中存储的如上表9所示的配置文件中记录的终端与A键盘均支持的连接方式以及优先级的关联关系,即可确定线圈吸附的连接方式的优先级是否大于扫描广播包的连接方式的优先级。
S1210,在确定线圈吸附的连接方式的优先级大于扫描广播包的连接方式的优先级的情况下,host确定通过线圈吸附的连接方式与A键盘建立蓝牙连接。
示例性的,配置文件中记录的连接方式以及优先级的关联关系如上表9所示,则线圈吸附的连接方式的优先级大于扫描广播包的连接方式的优先级。
关于确定终端与A键盘建立蓝牙连接的具体说明可以参照本文其他实施例的相关描述(例如上述步骤S907中关于终端确定与A键盘建立蓝牙连接的相关说明),在此不再详述。
可理解的,上述图12所示的方法流程适用于以下场景:
1、终端中未存储有白名单的场景。
2、终端中存储有白名单,但A键盘的标识信息不包含于白名单中的场景。例如白名单中包含的标识信息的数量为0;或者,白名单中包含的标识信息的数量不为0,但A键盘的标识信息不包含于白名单。
在本申请实施例中,上述步骤S1206中的确定扫描广播包的连接方式的优先级,以及上述步骤S1207中等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到A键盘的标识信息的任务是由host执行的。可理解的,在另外一些实施例中,也可以由controller执行上述步骤S1206确定连接方式的优先级,并由host执行上述步骤S1207,本文对此不做限定。
示例性的,如图13所示,在步骤S1204controller获取到第一广播包之后,步骤S1205将第一广播包上报给host之前,由controller判断扫描广播包的连接方式的优先级是否为最高优先级(在图13中以步骤S1301示出);若是,则确定与通过扫描广播包的连接方式与A键盘建立蓝牙连接;若否,则controller将第一广播包上报给host(在图中以步骤S1302示出),具体为通知host已通过优先级不为最高优先级的连接方式获取到的A键盘的标识信息;host接收到第一广播包后,执行S1207,也即等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到A键盘的标识信息(在图13中以步骤S1303示出)。
实施例3:
在本申请实施例中,在背景回连流程中,由controller在确定满足第一条件的情况下,主动发起的第二BLE扫描。以下结合上述术语描述、终端侧的蓝牙架构以及上述图9的相关说明,以蓝牙键盘作为蓝牙设备,平板作为终端,以及配置文件中记录了终端与该终端支持的每个特定型号的蓝牙设备中,该终端与该蓝牙设备均支持的连接方式以及对应的优先级或最高优先级的配置文件(也即终端存储的配置文件为上述第三配置文件)为例,详细介绍由controller发起的该第二BLE扫描具体如何使用本申请实施例提供的连接方法。
在本申请实施例中,关于第一条件的相关说明可以参照本文其他实施例的相关描述,例如图3的相关描述,在此不再详述。关于终端中配置文件记录的内容请参照上表9中的关于描述,在此不再详述。
在本申请实施例中,终端侧的controller中存储有白名单,该白名单用于记录已与终端配对连接的蓝牙设备的标识信息(终端侧的host在完成目标蓝牙设备的配对连接后,会将目标蓝牙设备的标识信息添加到白名单),该白名单中包括至少一个蓝牙设备的标识信息。
在本申请实施例中,终端中存储的配置文件的内容包括终端与终端支持的A型号的键盘均支持的连接方式以及优先级,具体包括线圈吸附的连接方式的优先级大于扫描广播包的连接方式的优先级。关于该配置文件的详细说明请参照本文其他实施例关于表9的相关说明,在背景回连中,上述表9中的扫描广播包的连接方式用于指代背景回连的连接方式。
如图14所示,本申请实施例提供的连接方法,由controller主动发起第二BLE扫描,并通过该第二BLE扫描获取到A键盘的标识信息后,由controller判断扫描BEL广播包的连接方式的优先级是否为优先级最高的连接方式;若否,再由controller等待预设时长,并确定预设时长内是否通过其他优先级更高的连接方式获取到该A键盘的标识信息。具体包括以下步骤:
S1401,终端中的控制器(controller)执行第二BLE扫描。
在本申请实施例中,第二BLE扫描为背景回连场景中通过扫描广播包的连接方式获取蓝牙设备的标识信息的BLE扫描,由controller主动发起,用于扫描终端的蓝牙通信范围内是否存在白名单中的任意一个设备。
S1402,controller获取A键盘的第二广播包。
示例性的,第二广播包为A键盘通过BLE广播发布的广播包。关于广播包中包含的数据内容可以参照本申请其他实施例的相关说明,例如上述步骤S1204步骤中关于第一广播包的相关描述,在此不作详述)。
S1403,controller判断扫描广播包的连接方式的优先级是否为最高优先级。
具体如何判断扫描广播包的连接方式的优先级是否为最高优先级请参照本文其他实施例的相关说明,例如上述步骤S1206。
S1404,在确定扫描广播包的连接方式不为优先级最高的连接方式的情况下,controller等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到该A键盘的标识信息。
关于预设时长、扫描广播包的连接方式、以及优先级等名词的描述请参照本申请其他实施例的相关说明,在此不再详述。
S1405,预设时长内,host获取到该A键盘的吸附事件。
在本申请实施例中,该吸附事件携带标识信息(例如A键盘的标识信息),关于吸附事件的说明可以参照本文其他实施例的相关说明,例如上述步骤S1208。
S1406,host向controller发送A键盘的吸附事件,相应地,controller接收host发送该A键盘的吸附事件。
S1407,controller确定线圈吸附的连接方式的优先级是否大于扫描广播包的连接方式的优先级。
S1408,controller在确定线圈吸附的连接方式的优先级大于扫描广播包的连接方式的优先级的情况下,确定通过线圈吸附的连接方式与A键盘建立蓝牙连接。
示例性的,配置文件中记录的内容如上表9所示,则线圈吸附的连接方式的优先级大于扫描广播包的连接方式的优先级。
可理解的,如图15所示,在上述步骤S1403中,若确定扫描广播包的连接方式的为优先级最高的连接方式的情况下,则确定与A键盘建立蓝牙连接(在图15中以S1501示出)。
由此,根据优先级统一协调不同型号蓝牙设备的处理流程,避免终端为兼容不同蓝牙设备的不同连接策略,修改原有代码逻辑引发时序问题,带来的代码工作量过大等问题。
在一些实现方式中,在host中存储有上述白名单的情况下,也可以由host执行上述步骤S1402中的确定扫描广播包的连接方式的优先级是否为最高优先级,以及上述步骤S1403中等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到A键盘标识信息的任务。
示例性的,如图16所示,controller在执行步骤S1402获取到第二广播包后,将第二广播包上报给host(在图16中以S1601示出)。host接收到第二广播包后,执行上述步骤S1403判断扫描广播包的连接方式是否为优先级最高的连接方式的任务(在图16中以S1602示出)。若否,则host执行上述步骤S1404等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到A键盘的标识信息的任务(在图16中以S1603示出)。
在另外一些实现方式中,也可以由controller执行上述步骤S1402,由host执行上述步骤S1403中等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到A键盘的标识信息的任务。
示例性的,如图17所示,在controller执行上述步骤1402后,确定扫描广播包的连接方式不为优先级最高的连接方式的情况下,将第二广播包上报给host,具体为通知host已通过优先级不是最高的连接方式获取到A键盘的标识信息(在图17中以S1701示出)。host接收到第一BLE广播后,执行S1403,也即等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到A键盘的标识信息(在图17中以S1702示出)。
在另外一些实现方式中,在上述图16以及图17所示的连接方法中,由host执行等待预设时长,并确定预设时长内是否通过优先级更高的连接方式获取到A键盘的标识信息的任务的情况下,基于具体需求(例如若controller不设置等待预设时长,就会立即发起与A键盘的蓝牙连接的情况),也可以在controller侧设置等待预设时长的指令,本文对此不做限定。
实施例4:
在另外一些实现方式中,终端也可以不存储配置文件(也即不添加优先级元素),而是在代码执行中间接体现连接方式之间的优先级关系。
示例性的,某一终端与某一型号的蓝牙键盘的连接方式仅包括线圈吸附的连接方式和扫描广播包的连接方式,且线圈吸附的连接方式的优先级大于扫描广播包的连接方式。在终端通过线圈吸附的连接方式获取到A键盘的标识信息时,则确定通过线圈吸附的连接方式与A键盘建立蓝牙连接。在终端通过扫描广播包的连接方式获取到A键盘的标识信息时,则确定预设时长内终端是否通过线圈吸附的连接方式获取到A键盘的标识信息,若是则确定通过线圈吸附的连接方式与A键盘建立蓝牙连接;若否则确定通过扫描广播包的连接方式与A键盘建立蓝牙连接。不需要进行优先级判断,而是在代码执行中间接体现根据连接方式之间的优先级关系,确定是否是直接确定通过当前连接方式与蓝牙设备建立蓝牙连接还是等待预设时长。如图18A至图18B所示,本申请实施例提供的连接方法包括以下步骤:
S1801,确定终端是否通过线圈吸附的连接方式获取到A键盘的标识信息。
S1802,若确定终端通过线圈吸附的连接方式获取到A键盘的标识信息,则终端确定通过线圈吸附的连接方式与A键盘建立蓝牙连接。
可理解的,通过线圈吸附的连接方式获取到的A键盘的标识信息,则立即确定通过线圈吸附的连接方式与A键盘建立蓝牙连接,隐含地表达了线圈吸附的连接方式的优先级为最高优先级。
S1803,确定终端是否通过扫描广播包的连接方式获取到A键盘的标识信息。
S1804,在确定终端通过扫描广播包的连接方式获取到A键盘的标识信息的情况下,等待预设时长,并确定预设时长内终端是否通过线圈吸附的连接方式获取到该A键盘的标识信息。
可理解的,通过扫描广播包的连接方式获取到A键盘的标识信息,则等待预设时长,隐含地表达了扫描广播包的连接方式的优先级不为最高优先级。
S1805,在确定预设时长内终端通过线圈吸附的连接方式获取到A键盘的标识信息的情况下,终端确定通过线圈吸附的连接方式与A键盘建立蓝牙连接。
S1806,在确定预设时长内终端未通过线圈吸附的连接方式获取到A键盘的标识信息的情况下,终端确定通过扫描广播包的连接方式与A键盘建立蓝牙连接。
关于预设时长的具体说明请参照本文其他实施例的相关描述,在此不再详述。
可理解的,在连接方式以及连接方式的优先级已知其短时间内不会发生改变的情况下,可以采用如图18A至图18B所示的方法。可理解的,如图18A至图18B所示的方法,若连接方式或连接方式的优先级发生变化,则需要重新编写执行代码。
可理解的,关于图9相关的一些方案中,例如,在预设时长内通过优先级更高的连接方式获取到与A键盘相同型号的不同蓝牙键盘、通过循环执行判断优先级、等待预设时长、以及设置最大等待时长等方案,也同样适用于如图12至图18B所示的连接方法中,具体说明请参照本文图9中的相关说明,在此不再详述。
可理解的,本申请实施例所描述的连接方法也可以理解为蓝牙连接方法或无线通信连接方法,适用于终端支持通过两种或两种以上的连接方式与无线通信设备建立连接的终端中。例如除了适用于蓝牙连接之外,该蓝牙连接方法的思想也可以适用于无线保真WiFi连接、射频识别技术(Radio Frequency Identification,RFID)连接、紫蜂协议(ZigBee)连接或移动通信连接等无线通信连接,本文对此不多限定。
下面以上述终端为如图19所示的终端200为例对实施例进行具体说明。应该理解的是,终端200可以具有比图19中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图19中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端200可以包括:处理器210,外部存储器接口220,内部存储器221,显示屏230,传感器模块240,按键250,无线通信模块260,天线270等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,处理器210中可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
可理解的,终端200通过GPU,显示屏230,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏230和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行终端200的各种功能应用以及数据处理。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
在本申请实施例中,终端可以将配置文件存储在内部存储器221中。
终端200的无线通信功能可以通过无线通信模块260,天线270以及调制解调处理器等实现。
天线270用于发射和接收电磁波信号。终端200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器,受话器等)输出声音信号,或通过显示屏230显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块或其他功能模块设置在同一个器件中。
无线通信模块260可以提供应用在终端200上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在本申请实施例中,终端中的host和controller可以位于无线通信模块中。
显示屏230用于显示图像,视频等。显示屏230包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端200可以包括1个或N个显示屏194,N为大于1的正整数。
在本申请实施例中,终端可以通过显示屏230,显示终端与某一型号的蓝牙设备均支持的连接方式的优先级。
图20是本申请实施例的终端100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将系统分为四层,从上至下分别为应用程序层,应用程序框架层,运行时(Runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图20所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用(application,App))。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图20所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。电话管理器用于提供终端100的通信功能。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
运行时(Runtime)包括核心库和虚拟机。Runtime负责系统的调度和管理。
核心库包含两部分:一部分是编程语言(例如,jave语言)需要调用的功能函数,另一部分是系统的核心库。
应用程序层和应用程序框架层可以运行在虚拟机中。虚拟机可以将应用程序层和应用程序框架层的编程文件(例如,jave文件)执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。
内核层是硬件和软件之间的层。内核层可以包含显示驱动,摄像头驱动,音频驱动,传感器驱动,虚拟卡驱动等。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (17)
1.一种连接方法,其特征在于,应用于终端,所述终端存储有配置信息,所述配置信息配置有蓝牙连接方式对应的优先级,所述方法包括:
发现可连接的目标蓝牙设备;
检测到所述终端与所述目标蓝牙设备的蓝牙连接请求,所述蓝牙连接请求包括预设蓝牙连接方式;
响应于所述蓝牙连接请求,根据所述配置信息和所述终端自身支持的蓝牙连接方式确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级;
确定与所述预设蓝牙连接方式对应的优先级是否为所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级中的最高优先级;
在确定所述预设蓝牙连接方式对应的优先级为所述最高优先级的情况下,确定将所述预设蓝牙连接方式作为目标蓝牙连接方式;
通过所述目标蓝牙连接方式与所述目标蓝牙设备建立蓝牙连接。
2.根据权利要求1所述的方法,其特征在于,所述配置信息配置有蓝牙连接方式对应的优先级包括:所述配置信息配置有每个蓝牙设备对应支持的蓝牙连接方式以及蓝牙连接方式对应的优先级,所述每个蓝牙设备包括一种或一种以上的终端支持的蓝牙设备;
所述根据所述配置信息和所述终端自身支持的蓝牙连接方式确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级,包括:
根据所述配置信息中配置的所述每个蓝牙设备对应支持的蓝牙连接方式和所述终端自身支持的蓝牙连接方式,确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式;
根据所述配置信息中配置的所述蓝牙连接方式对应的优先级,确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级。
3.根据权利要求1所述的方法,其特征在于,所述配置信息配置有蓝牙连接方式对应的优先级包括:所述配置信息配置有型号标识对应的蓝牙设备与所述终端均支持的蓝牙连接方式对应的优先级,所述型号标识对应的蓝牙设备为所述终端支持的任意一个蓝牙型号的蓝牙设备;
所述根据所述配置信息和所述终端自身支持的蓝牙连接方式确定所述终端与所述目标蓝牙设备均支持的蓝牙连接方式的优先级,包括:
根据所述配置信息确定所述目标蓝牙设备的型号标识对应的蓝牙设备与所述终端均支持的蓝牙连接方式对应的优先级。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内未检测到所述终端与所述目标蓝牙设备的其他蓝牙连接请求的情况下,确定所述预设蓝牙连接方式为所述目标蓝牙连接方式,所述其他蓝牙连接请求包括的蓝牙连接方式对应的优先级大于所述预设蓝牙连接方式对应的优先级;
在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定不将所述预设蓝牙连接方式作为所述目标蓝牙连接方式。
5.根据权利要求4所述方法,其特征在于,所述在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述目标蓝牙连接方式不为所述预设蓝牙连接方式,包括:
在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定将所述其他蓝牙连接请求中包括的蓝牙连接方式作为所述目标蓝牙连接方式。
6.根据权利要求4所述方法,其特征在于,所述在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述目标蓝牙连接方式不为所述预设蓝牙连接方式,包括:
在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到一个或一个以上的所述其他蓝牙连接请求的情况下,确定所述一个或一个以上的所述其他蓝牙连接请求包括的一个或一个以上的蓝牙连接方式中对应优先级最高的蓝牙连接方式作为所述目标蓝牙连接方式。
7.根据权利要求2、3、5或6任一项所述方法,其特征在于,所述方法还包括:
接收云端发送的更新后的配置信息;
将所述配置信息更新为所述更新后的配置信息。
8.一种连接方法,其特征在于,应用于终端,所述终端存储有配置信息,所述配置信息配置有所述终端自身支持的每个蓝牙连接方式对应的优先级,所述方法包括:
发现可连接的目标蓝牙设备;
检测到所述终端与所述目标蓝牙设备的蓝牙连接请求,所述蓝牙连接请求包括预设蓝牙连接方式;
响应于所述蓝牙连接请求,根据所述配置信息中配置的所述终端自身支持的每个蓝牙连接方式对应的优先级,确定与所述预设蓝牙连接方式对应的优先级;
确定所述预设蓝牙连接方式对应的优先级是否为所述配置信息中的最高优先级;
在所述预设蓝牙连接方式对应的优先级为所述最高优先级的情况下,确定将所述预设蓝牙连接方式作为目标蓝牙连接方式;
通过所述目标蓝牙连接方式与所述目标蓝牙设备建立蓝牙连接。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
在所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内未检测到所述终端与所述目标蓝牙设备的其他蓝牙连接请求的情况下,确定将所述预设蓝牙连接方式作为所述目标蓝牙连接方式,所述其他蓝牙连接请求包括的蓝牙连接方式对应的优先级大于所述预设蓝牙连接方式对应的优先级;
在所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述预设蓝牙连接方式不为所述目标蓝牙连接方式。
10.根据权利要求9所述的方法,其特征在于,所述在所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定所述预设蓝牙连接方式不为所述目标蓝牙连接方式,包括:
在确定所述预设蓝牙连接方式对应的优先级不为所述最高优先级,且预设时间内检测到一个或一个以上的所述蓝牙连接请求的情况下,确定所述一个或一个以上的所述蓝牙连接请求包括的一个或一个以上的蓝牙连接方式中对应优先级最高的蓝牙连接方式作为所述目标蓝牙连接方式。
11.根据权利要求8至10任一项所述方法,其特征在于,所述方法还包括:
接收云端发送的更新后的配置信息;
将所述配置信息更新为所述更新后的配置信息。
12.一种连接方法,其特征在于,应用于终端,所述终端存储有配置信息,所述配置信息配置有所述终端自身支持的蓝牙连接方式与控制信息的关联关系,所述控制信息包括直接建立蓝牙连接的控制信息和不直接建立蓝牙连接的控制信息,所述方法包括:
发现可连接的目标蓝牙设备;
检测到所述终端与所述目标蓝牙设备的蓝牙连接请求,所述蓝牙连接请求包括预设蓝牙连接方式;
响应于所述蓝牙连接请求,根据所述终端自身支持的蓝牙连接方式与控制信息的关联关系,确定所述预设蓝牙连接方式对应的控制信息是否为直接建立蓝牙连接的控制信息;
在确定所述预设蓝牙连接方式对应的控制信息为直接建立蓝牙连接的情况下,确定将所述预设蓝牙连接方式作为目标蓝牙连接方式;
通过所述目标蓝牙连接方式与所述目标蓝牙设备建立蓝牙连接。
13.根据权利要求11所述方法,其特征在于,所述方法还包括:
在确定所述预设蓝牙连接方式对应的控制信息为不直接建立蓝牙连接的控制信息,且预设时间内未检测到所述终端与所述目标蓝牙设备的其他蓝牙连接请求的情况下,确定将所述预设蓝牙连接方式作为所述目标蓝牙连接方式,所述其他蓝牙连接请求包括的蓝牙连接方式对应的控制信息为直接建立蓝牙连接的控制信息;
或者,在确定所述预设蓝牙连接方式对应的控制信息为不直接建立蓝牙连接的控制信息,且预设时间内检测到所述其他蓝牙连接请求的情况下,确定将所述其他蓝牙连接请求中包括的蓝牙连接方式作为所述目标蓝牙连接方式。
14.根据权利要求12或13所述方法,其特征在于,所述方法还包括:
接收云端发送的更新后的配置信息;
将所述配置信息更新为所述更新后的配置信息。
15.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器、存储器和显示屏;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1至14任一项所述的方法。
16.一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1至14中任一项所述的方法。
17.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得所述电子设备执行如权利要求1至14中任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111482462.8A CN113923641B (zh) | 2021-12-07 | 2021-12-07 | 一种连接方法及装置 |
PCT/CN2022/113821 WO2023103454A1 (zh) | 2021-12-07 | 2022-08-22 | 一种连接方法及装置 |
EP22902887.3A EP4395383A1 (en) | 2021-12-07 | 2022-08-22 | Connection method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111482462.8A CN113923641B (zh) | 2021-12-07 | 2021-12-07 | 一种连接方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113923641A CN113923641A (zh) | 2022-01-11 |
CN113923641B true CN113923641B (zh) | 2022-05-06 |
Family
ID=79248754
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111482462.8A Active CN113923641B (zh) | 2021-12-07 | 2021-12-07 | 一种连接方法及装置 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4395383A1 (zh) |
CN (1) | CN113923641B (zh) |
WO (1) | WO2023103454A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113923641B (zh) * | 2021-12-07 | 2022-05-06 | 荣耀终端有限公司 | 一种连接方法及装置 |
CN114125805B (zh) * | 2022-01-28 | 2022-07-15 | 荣耀终端有限公司 | 蓝牙回连方法及终端设备 |
CN114143765B (zh) * | 2022-02-08 | 2022-07-08 | 荣耀终端有限公司 | 蓝牙回连方法、装置和存储介质 |
CN114173315B (zh) * | 2022-02-14 | 2022-06-14 | 荣耀终端有限公司 | 蓝牙回连方法及终端设备 |
CN116056051B (zh) * | 2022-06-06 | 2023-10-27 | 荣耀终端有限公司 | 蓝牙连接控制方法、系统和设备 |
CN117479344B (zh) * | 2023-12-15 | 2024-05-24 | 荣耀终端有限公司 | 一种蓝牙连接方法、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105744466A (zh) * | 2016-01-26 | 2016-07-06 | 广东欧珀移动通信有限公司 | 一种蓝牙设备连接方法及蓝牙设备 |
CN113055864A (zh) * | 2019-12-26 | 2021-06-29 | Oppo广东移动通信有限公司 | 蓝牙连接方法、装置、存储介质及电子设备 |
CN113766477A (zh) * | 2021-09-23 | 2021-12-07 | Oppo广东移动通信有限公司 | 设备连接方法、装置、电子设备及计算机可读介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8295766B2 (en) * | 2007-08-31 | 2012-10-23 | Motorola Mobility Llc | Methods and devices for automatic multiple pairing of Bluetooth devices |
KR20110064528A (ko) * | 2009-12-08 | 2011-06-15 | 삼성전자주식회사 | 블루투스 디바이스의 데이터 전송 방법 및 장치 |
US8396424B2 (en) * | 2011-05-26 | 2013-03-12 | Motorola Mobility Llc | Method and apparatus for performing role management of short-range wireless connections |
KR101543161B1 (ko) * | 2014-05-08 | 2015-08-07 | 현대자동차주식회사 | 블루투스 연결 제어 방법 |
US9301087B1 (en) * | 2015-02-09 | 2016-03-29 | Motorola Solutions, Inc. | Method and apparatus for connecting a bluetooth device |
EP3462802B1 (en) * | 2016-06-27 | 2020-06-24 | Huawei Technologies Co., Ltd. | Bluetooth connection method and terminal |
US10542405B2 (en) * | 2018-06-01 | 2020-01-21 | Apple Inc. | Bluetooth profile fast connect |
CN110868702A (zh) * | 2018-08-27 | 2020-03-06 | 深圳市讯扬通信有限公司 | 共享智能终端数据流量的软件实现 |
CN114866994A (zh) * | 2019-09-06 | 2022-08-05 | 华为技术有限公司 | 蓝牙连接的方法和电子设备 |
CN112995963A (zh) * | 2019-12-17 | 2021-06-18 | 中兴通讯股份有限公司 | 蓝牙音频传输方法、装置、终端和可读存储介质 |
CN111246399B (zh) * | 2020-02-18 | 2022-07-22 | Oppo(重庆)智能科技有限公司 | 发现蓝牙设备的方法及相关产品 |
CN111918258B (zh) * | 2020-07-29 | 2024-05-03 | 东软集团股份有限公司 | 一种实现蓝牙服务连接的方法、装置及设备 |
CN112004220A (zh) * | 2020-09-16 | 2020-11-27 | 深圳市锐尔觅移动通信有限公司 | 蓝牙连接方法及系统、蓝牙设备及可读存储介质 |
CN113242539B (zh) * | 2021-05-12 | 2022-09-20 | 珠海极海半导体有限公司 | 链路控制方法、装置、透传装置及ble芯片 |
CN113518333B (zh) * | 2021-05-12 | 2024-02-13 | 珠海极海半导体有限公司 | 数据透传方法、装置、蓝牙装置和ble芯片 |
CN113316131B (zh) * | 2021-05-27 | 2023-07-07 | Oppo广东移动通信有限公司 | 连接建立方法、装置、电子设备及存储介质 |
CN113411794A (zh) * | 2021-06-01 | 2021-09-17 | Oppo广东移动通信有限公司 | 一种连接方法、蓝牙耳机、终端及计算机存储介质 |
CN113923641B (zh) * | 2021-12-07 | 2022-05-06 | 荣耀终端有限公司 | 一种连接方法及装置 |
-
2021
- 2021-12-07 CN CN202111482462.8A patent/CN113923641B/zh active Active
-
2022
- 2022-08-22 EP EP22902887.3A patent/EP4395383A1/en active Pending
- 2022-08-22 WO PCT/CN2022/113821 patent/WO2023103454A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105744466A (zh) * | 2016-01-26 | 2016-07-06 | 广东欧珀移动通信有限公司 | 一种蓝牙设备连接方法及蓝牙设备 |
CN113055864A (zh) * | 2019-12-26 | 2021-06-29 | Oppo广东移动通信有限公司 | 蓝牙连接方法、装置、存储介质及电子设备 |
CN113766477A (zh) * | 2021-09-23 | 2021-12-07 | Oppo广东移动通信有限公司 | 设备连接方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023103454A1 (zh) | 2023-06-15 |
EP4395383A1 (en) | 2024-07-03 |
WO2023103454A9 (zh) | 2023-08-03 |
CN113923641A (zh) | 2022-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113923641B (zh) | 一种连接方法及装置 | |
CN113553014B (zh) | 多窗口投屏场景下的应用界面显示方法及电子设备 | |
WO2022089271A1 (zh) | 无线投屏方法、移动设备及计算机可读存储介质 | |
WO2023000969A1 (zh) | 蜂窝通信功能的使用方法、相关装置及系统 | |
KR20210011027A (ko) | 애플리케이션 기능 구현 방법 및 전자 디바이스 | |
KR20230008147A (ko) | Wi-fi 피어 투 피어 서비스 구현 방법 및 관련 디바이스 | |
KR102238534B1 (ko) | 디지털 디바이스 및 상기 디지털 디바이스에서 스크린 세이버 처리 방법 | |
WO2021244429A1 (zh) | 一种控制应用程序安装的方法及装置 | |
WO2021135734A1 (zh) | 应用中传输文件的方法、电子设备及系统 | |
WO2022179405A1 (zh) | 一种投屏显示方法及电子设备 | |
CN114339332B (zh) | 一种移动终端、显示设备及跨网投屏方法 | |
CN111277985A (zh) | WiFi网络连接方法及设备 | |
CN114741008B (zh) | 分布式跨设备协同方法、电子设备及通信系统 | |
KR20150101369A (ko) | 디지털 디바이스 및 상기 디지털 디바이스에서 비디오 데이터 처리 방법 | |
CN114301899B (zh) | 数据传输方法、系统、电子设备及存储介质 | |
CN113645608B (zh) | 数据传输方法和数据传输装置 | |
CN114530148A (zh) | 一种控制方法、装置及电子设备 | |
WO2022068882A1 (zh) | 镜像投屏方法、装置及系统 | |
CN114172925B (zh) | 配网方法及设备 | |
CN113835802A (zh) | 设备交互方法、系统、设备及计算机可读存储介质 | |
CN114339591A (zh) | 基于超宽带芯片进行定位的方法和相关装置 | |
CN116709557B (zh) | 业务处理方法、设备及存储介质 | |
CN115278642A (zh) | 获取sim卡的信息的方法、电子设备及终端设备 | |
WO2024114267A1 (zh) | 应用跨设备流转方法、相关装置及通信系统 | |
WO2024046173A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |