CN114363871B - 一种无线连接的方法以及电子设备 - Google Patents

一种无线连接的方法以及电子设备 Download PDF

Info

Publication number
CN114363871B
CN114363871B CN202111550896.7A CN202111550896A CN114363871B CN 114363871 B CN114363871 B CN 114363871B CN 202111550896 A CN202111550896 A CN 202111550896A CN 114363871 B CN114363871 B CN 114363871B
Authority
CN
China
Prior art keywords
electronic device
broadcast
broadcast message
electronic
information
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
Application number
CN202111550896.7A
Other languages
English (en)
Other versions
CN114363871A (zh
Inventor
周蓉
李奕成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority claimed from CN202110827479.6A external-priority patent/CN115348568A/zh
Publication of CN114363871A publication Critical patent/CN114363871A/zh
Application granted granted Critical
Publication of CN114363871B publication Critical patent/CN114363871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Abstract

一种无线连接的方法以及电子设备,涉及无线通信技术领域,可以加速发现连接过程,降低电子设备的功耗,该方法包括:第一电子设备获取第一电子设备的信息,第一电子设备的信息包括第一电子设备的业务场景、第一电子设备的状态、以及第一电子设备配置的无线通信芯片能力中一项或多项;第一电子设备根据第一电子设备的信息调整第一电子设备的广播参数;其中所述广播参数包括广播类型、扫描占空比、广播占空比、广播通道数中一项或多项。

Description

一种无线连接的方法以及电子设备
本申请要求于2021年5月14日提交国家知识产权局、申请号为202110528395.2、申请名称为“一种连接提速方法及装置”的中国专利申请的优先权,该专利的全部内容 通过引用结合在本申请中。
技术领域
本申请涉及无线通信技术领域,尤其涉及一种无线连接的方法以及电子设备。
背景技术
随着物联网在智能家居、电子产品、智能工业等领域的全面发展,近距离通信的无线连接技术越来越多地应用在物联网新兴产品中,为设备提供稳定和低功耗的数据传输服务。其中,蓝牙低能耗(bluetooth low energy,BLE),也称低功耗蓝牙,因其高可 靠性、低成本、低功耗、快速连接等优势成为物联网市场的宠儿,被广泛应用到医疗领 域、定位应用、数据传输等近距离通信场景中。并且,如何进一步优化BLE的连接技术 仍然是当前厂商们研究的一个热点。
发明内容
本申请提供的一种无线连接的方法以及电子设备,可以加速电子设备的发现和连接过 程。
为了实现上述目的,本申请实施例提供了以下技术方案:
第一方面、提供一种无线发现的通信系统,包括第一电子设备和第二电子设备,第一电 子设备,用于发送第一广播报文,第一广播报文用于发现第一电子设备周围的电子设备;第 二电子设备,用于响应于接收到第一广播报文,发送第二广播报文,第二广播报文包括第二 电子设备的第一信息,其中第一信息包括设备标识、设备名称、登录账号、设备类型和业务 标识中的一项或多项;第一电子设备,用于存储第二电子设备的第一信息;第二电子设备, 还用于在第二电子设备发送第二广播报文后的第一时长后,发送第三广播报文,第三广播报 文包括第二电子设备的第二信息,其中第二信息包括设备标识、登录账号、设备类型、设备 能力和业务标识中的一项或多项,且第二信息和第一信息至少部分内容不同;第一电子设备, 还用于根据第二电子设备的第一信息和第二信息,确定发现第二电子设备。
由于第二电子设备向第一电子设备回复第二电子设备的设备信息(包括第一信息和第二 信息)时,常需要发送两个或两个广播报文。然而,在现有技术中,第二电子设备在发送一 个广播报文(即第二广播报文,也即下文中的广播报文B)后,会等待第一电子设备在接收 到第二广播报文后,向第二电子设备返回确认报文后。第二电子设备在接收到第一电子设备 返回的确认报文后,才继续下一个广播报文(即第三广播报文,也即下文中的广播报文C)。 其中,从第二电子设备发送第二广播报文之后到第二电子设备发送第三广播报文之前的整个 过程耗时为时长T2,例如T2通常为300ms。
然而,在本申请实施例中第二电子设备在发送第二广播报文后的时长T1(即第一时长) 后直接发送第三广播报文。其中,T1小于T2。在一个示例中,T1可以设置为一个固定的时 长(例如60ms)加上一个随机时长(例如40ms之内的随机时长)。T1可设置为不大于100ms。 那么,本申请实施例提供的技术方案相较于现有技术的技术方案节省了T0=T2-T1,T0大于 200ms。即,本申请实施例提供的技术方案加速了电子设备的发现过程,从而也加速了电子 设备的连接过程。
可以理解的是,在其他一些实施例中,第二电子设备在接收到第一电子设备发送的第一 广播报文(即发现广播报文,也即下文的广播报文A)后,第二电子设备需要发送大于两条 (例如N1条,N1大于2)的广播报文用于回复第二电子设备的信息。在该实施例中,第二 电子设备在发送第一条广播报文(例如,第二广播报文,也即广播报文B)后的每一条广播 报文时,均无需等待第一电子设备针对上一条广播报文的ACK报文,便直接在发送完上一条 广播报文后的时长T1后,发送本条广播报文。相较于现有技术,现有技术中第二电子设备在 发送第一条广播报文(即广播报文B)后的每一条广播报文时,均需等待接收到第一电子设 备发送针对上一条广播报文的ACK报文后才发送本条广播报文。而本申请提供的实施例则在 发送一条广播报文后的时长T1后自动发送下一条广播报文。那么,本申请实施例提供的技术 方案中,第一电子设备发现第二电子设备的过程可节省的时长T0’=(N1-1)*(T2-T1)。由 此可见,当第二电子设备需要回复的广播报文数量N1越大时,本申请实施例提供的技术方 案提升发现速率的效果越显著。
在一种可能的实现方式中,第一电子设备,还用于存储第二电子设备的第二信息;第一 电子设备,还用于发送第四广播报文,第四广播报文用于发现第一电子设备周围的电子设备; 第二电子设备,还用于响应于接收到第四广播报文,发送第五广播报文,第五广播报文包括 第二电子设备的第一信息;第二电子设备,还用于根据第五广播报文中的第二电子设备的第 一信息和存储的第二电子设备的第二信息,确定发现第二电子设备。
第一电子设备在较短的时间内(例如在缓存广播报文C的缓存时长之内)需再次发现第 二电子设备。例如,第一电子设备在该较短时间内再次触发图片/文件/视频等的转发/分享功 能,或者第一电子设备周期性(周期小于时长T1)刷新发现的电子设备。
在现有技术中,第一电子设备再次发现第二电子设备的流程与第一次发现第二电子设备 的流程相同,即第二电子设备需发送两条广播报文用于响应第一电子设备发送的用于发现的 广播报文,并且,在第二电子设备在接收到第一电子设备发送的针对第一条广播报文的ACK 报文后,第二电子设备才发送第二条广播报文。然而,在本申请实施例中,第二电子设备仅 发送了一条广播报文时,第一电子设备便可以根据该广播报文和之前缓存的另一条的广播报 文进行内容拼接,确定发现第二电子设备。现有技术中,从第一电子设备接收到第二电子设 备发送的第一条广播报文后,到向第二电子设备发送针对第一条广播报文的ACK报文后,再 到接收到第二电子设备发送的第二条广播报文的过程耗时大于T2,本申请实施例中节省了该 过程。也就是说,第一电子设备再次发现第二电子设备的整个过程节省了至少T2的时长,例 如节省了至少300ms。
可以理解的是,在其他一些实施例中,第二电子设备在接收到第一电子设备发送的广播 报文A后,第二电子设备需要发送大于两条(例如N1条,N1大于2)的广播报文用于回复 第二电子设备的信息。类似的,第一电子设备接收到第二电子设备发送的第一条广播报文后, 可以根据自身缓存的其他广播报文(一条或多条广播报文)提前确定发现第二电子设备,加 速第二电子设备的发现过程。
在一种可能的实现方式中,第一电子设备,还用于发送第六广播报文,第六广播报文用 于提示所述第二电子设备交替发送所述第二电子设备的所述第一信息和所述第二电子设备的 所述第二信息。
示例性的,第一电子设备,还用于当接收到第二电子设备的第一信息时,且未接收到或 未存储有第二电子设备的第二信息时,或者,当接收到第二电子设备的第二信息时,且未接 收到或未存储有第二电子设备的第一信息时,发送第三广播报文。
也就是说,当第一电子设备未接收到第一电子设备的全部信息时,可以向发送第三广播 报文,即下文的广播报文F,用于请求第二电子设备快速交替发送用于响应发现广播报文(即 第一广播报文,也即广播报文A)的全部报文,有利于第一电子设备快速获取到第二电子设 备的全部信息,加速发现过程。
第二方面、提供一种无线发现的方法,应用于第二电子设备,该方法包括:接收第一电 子设备发送的第一广播报文,第一广播报文用于发现第一电子设备周围的电子设备;发送第 二广播报文,第二广播报文包括第二电子设备的第一信息,其中第一信息包括设备标识、设 备名称、登录账号、设备类型和业务标识中的一项或多项;在第二电子设备发送第二广播报 文后的第一时长后,发送第三广播报文,第三广播报文包括第二电子设备的第二信息,其中 第二信息包括设备标识、登录账号、设备类型、设备能力和业务标识中的一项或多项,且第 二信息和第一信息至少部分内容不同;其中,第二电子设备的第一信息和第二信息,用于第 一电子设备确定发现第二电子设备。
由于第二电子设备向第一电子设备回复第二电子设备的设备信息(包括第一信息和第二 信息)时,常需要发送两个或两个广播报文。然而,在现有技术中,第二电子设备在发送一 个广播报文(即第二广播报文,也即下文中的广播报文B)后,会等待第一电子设备在接收 到第二广播报文后,向第二电子设备返回确认报文后。第二电子设备在接收到第一电子设备 返回的确认报文后,才继续下一个广播报文(即第三广播报文,也即下文中的广播报文C)。 其中,从第二电子设备发送第二广播报文之后到第二电子设备发送第三广播报文之前的整个 过程耗时为时长T2,例如T2通常为300ms。然而,在本申请实施例中第二电子设备在发送 第二广播报文后的时长T1后直接发送第三广播报文。其中,T1小于T2。本申请实施例提供 的技术方案加速了电子设备的发现过程,从而也加速了电子设备的连接过程。
一种可能的实现方式中,在第一电子设备发送所述第一广播报文之前,设置第一电子设 备的广播类型设置为不可连接。
由于第一电子设备的广播类型为不可连接时,第一电子设备的应用层在向底层送广播报 文A(即第一广播报文)时,底层无需等待其他电子设备(如第二电子设备)连接的广播报 文,而是直接发送广播报文A。在现有技术中,第一电子设备的广播类型为可连接(connectable)。第一电子设备的应用层在向底层发送广播报文A时,底层(例如具体是L2CAP)需等待一个连接间隔(connection interval),用于等待接收其他电子设备连接的广播 报文。其中,连接间隔是两个电子设备间交互的时间间隔,一般为20ms。可见,当第一电子 设备在发送广播报文A之前,将广播类型设置为不可连接,有利于发现过程加速一个连接间 隔的时长,例如20ms。
一种可能的实现方式中,在第一电子设备接收到第二电子设备发送的第二广播报文之后, 设置第一电子设备的广播类型设置为可连接。
一种可能的实现方式中,如果第一电子设备配置的无线通信芯片支持寻呼扫描能力,设 置第一电子设备的广播类型为可扫描。
一种可能的实现方式中,如果第一电子设备配置的无线通信芯片不支持寻呼扫描能力, 设置第一电子设备的广播类型为不可扫描。
如果电子设备的蓝牙芯片不支持寻呼扫描能力,则不具备拼接响应包的能力,那么设置 电子设备的广播参数scannable的属性值为false。那么,电子设备的底层在接收到多个针对发 现请求的响应包(例如下文的广播报文B和广播报文C)时,则不对多个响应包进行拼接, 直接将多个响应包上报给上层的应用。如果此时电子设备的scannable的属性值仍然为true, 那么此时电子设备仍然会等待拼包处理的时长(例如为20ms),再将多个响应包上报给上层 的应用。因此,电子设备的蓝牙芯片不支持寻呼扫描能力时,设置scannable的属性值为false, 有利于节省该拼包处理的时长,加速发现过程和连接过程。
一种可能的实现方式中,第二电子设备的设备标识为第二电子设备的第一标识的哈希值; 第二电子设备的所述第一标识为所述第二电子设备的序列号SN、国际移动设备识别码IMEI、 媒体存取控制地址MAC地址中的任一项。
由于哈希值不易识别以及不易被反解析,因此使用哈希值作为电子设备的唯一标识,提 升了电子设备发现过程以及连接过程中的安全问题。
第三方面、提供一种无线发现的方法,应用于第一电子设备,该方法包括:发送第一广 播报文,第一广播报文用于发现第一电子设备周围的电子设备;接收第二电子设备发送的第 二广播报文,第二广播报文包括第二电子设备的第一信息,其中第一信息包括设备标识、设 备名称、登录账号、设备类型和业务标识中的一项或多项;根据第二电子设备的第一信息查 找第二电子设备的第二信息;其中第二信息包括设备标识、登录账号、设备类型、设备能力 和业务标识中的一项或多项,且第二信息和第一信息至少部分内容不同;根据第二电子设备 的第一信息,以及查找到的第二信息,确定发现第二电子设备。
在现有技术中,第一电子设备再次发现第二电子设备的流程与第一次发现第二电子设备 的流程相同,即第二电子设备需发送两条广播报文用于响应第一电子设备发送的用于发现的 广播报文,并且,在第二电子设备在接收到第一电子设备发送的针对第一条广播报文的ACK 报文后,第二电子设备才发送第二条广播报文。然而,在本申请实施例中,第二电子设备仅 发送了一条广播报文时,第一电子设备便可以根据该广播报文和之前缓存的另一条的广播报 文进行内容拼接,确定发现第二电子设备。现有技术中,从第一电子设备接收到第二电子设 备发送的第一条广播报文后,到向第二电子设备发送针对第一条广播报文的ACK报文后,再 到接收到第二电子设备发送的第二条广播报文的过程耗时大于T2,本申请实施例中节省了该 过程。也就是说,第一电子设备再次发现第二电子设备的整个过程节省了至少T2的时长,例 如节省了至少300ms。
在一种可能的实现方式中,该方法还包括:第一电子设备发送第三广播报文,第三广播 报文用于提示第二电子设备交替发送第二电子设备的第一信息和第二电子设备的第二信息。
示例性的,当接收到第二电子设备的第一信息时,且未接收到或未存储有第二电子设备 的第二信息时,或者,当接收到第二电子设备的第二信息时,且未接收到或未存储有第二电 子设备的第一信息时,第一电子设备发送第三广播报文。
也就是说,当第一电子设备未接收到第一电子设备的全部信息时,可以向发送第三广播 报文,即下文的广播报文F,用于请求第二电子设备快速交替发送用于响应发现广播报文(即 第一广播报文,也即广播报文A)的全部报文,有利于第一电子设备快速获取到第二电子设 备的全部信息,加速发现过程。
第四方面、提供一种无线发现及连接方法,该方法包括:第一电子设备获取第一电子设 备的信息,第一电子设备的信息包括第一电子设备的业务场景、第一电子设备的状态、以及 第一电子设备配置的无线通信芯片能力中一项或多项;第一电子设备根据第一电子设备的信 息调整第一电子设备的广播参数;其中广播参数包括广播类型、扫描占空比、广播占空比、 广播通道数中一项或多项。
换言之,第一电子设备根据第一电子设备的信息动态调整发现过程中、连接过程中设置 是连接后的广播参数,以发送发现过程,提升发现成功率,加速连接过程,节省第一电子设 备的功耗。
在一种可能的实现方式中,第一电子设备根据第一电子设备的业务场景调整第一电子设 备的广播参数,包括:在第一电子设备发送发现广播报文之前,设置第一电子设备的广播类 型设置为不可连接;在第一电子设备在接收到任一电子设备针对发现广播报文回复的任一报 文之后,设置第一电子设备的广播类型设置为可连接。
由于第一电子设备的广播类型为不可连接时,第一电子设备的应用层在向底层送发现广 播报文(即下文的广播报文A)时,底层无需等待其他电子设备(如第二电子设备)连接的 广播报文,而是直接发送广播报文A。在现有技术中,第一电子设备的广播类型为可连接 (connectable)。第一电子设备的应用层在向底层发送广播报文A时,底层(例如具体是L2CAP)需等待一个连接间隔(connection interval),用于等待接收其他电子设备连接的广播 报文。其中,连接间隔是两个电子设备间交互的时间间隔,一般为20ms。可见,当第一电子 设备在发送广播报文A之前,将广播类型设置为不可连接,有利于发现过程加速一个连接间 隔的时长,例如20ms。
在一种可能的实现方式中,第一电子设备根据第一电子设备的状态调整第一电子设备的 广播参数,还包括:当第一电子设备的状态满足预设条件时,第一电子设备增大扫描占空比 和/或广播占空比:其中,预设条件为以下条件中的任一项或任几项:第一电子从灭屏状态进 入亮屏状态的第一预设时长内;第一电子设备从锁屏状态进入解锁状态的第二预设时长内; 第一电子设备启动第一应用后的第三预设时长内;第一电子设备将第二应用从后台运行切换 至前台运行的第四预设时长内;第一电子设备运行预设应用。
这是考虑到,在这些场景中第一电子设备发现其他电子设备的概率较大,因此增大第一 电子设备的广播占空比和/或扫描占空比,有利于第一电子设备快速地广播或扫描,加速与其 他电子设备发现过程。
在一种可能的实现方式中,第一电子设备根据第一电子设备的状态调整第一电子设备的 广播参数,还包括:在第一电子设备上电或开机或启动无线通信功能之后,且在检测到第一 电子设备启动预设业务之前,第一电子设备的广播过程或扫描过程处于未启动状态。
这是因为,在该场景中,第一电子设备发现其他电子设备的概率较小,甚至概率为零, 因此减小广播占空比和/或扫描占空比,甚至将广播占空比和/或扫描占空比调至零,有利于降 低第一电子设备的功耗。
在一种可能的实现方式中,在第一电子设备和第二电子设备的连接过程中,根据第一电 子设备的状态动态调整占空比(包括扫描占空比、广播占空比等)。当第一电子设备检测到用 户选择连接某个电子设备的时长T3时,第一电子设备可以增大广播占空比/扫描占空比,有 利于第一电子设备快速地广播或扫描,加速与第二电子设备的连接过程。当第一电子设备与 第二电子设备建立连接后,第一电子设备可以减小广播占空比和/或扫描占空比,降低电子设 备的功耗。
在一种可能的实现方式中,第一电子设备根据第一电子设备配置的无线通信芯片能力动 态调整第一电子设备的广播参数,包括:根据第一电子设备配置的无线通信芯片是否支持寻 呼扫描能力,设置第一电子设备的广播类型是否为可扫描。
例如,如果第一电子设备的蓝牙芯片支持寻呼扫描(page scan)能力,则具备拼接响应 包的能力,那么设置第一电子设备的广播参数scannable的属性值为true。换言之,第一电子 设备的底层在接收到多个针对发现请求的响应包(例如下文的广播报文B和广播报文C)时, 可以进行对多个响应包进行拼接,再将拼接好的数据包上报给上层的应用。
如果第一电子设备的蓝牙芯片不支持寻呼扫描能力,则不具备拼接响应包的能力,那么 设置第一电子设备的广播参数scannable的属性值为false。那么,第一电子设备的底层在接收 到多个针对发现请求的响应包(例如下文的广播报文B和广播报文C)时,则不对多个响应 包进行拼接,直接将多个响应包上报给上层的应用。如果此时第一电子设备的scannable的属 性值仍然为true,那么此时电子设备仍然会等待拼包处理的时长(例如为20ms),再将多个 响应包上报给上层的应用。因此,第一电子设备的蓝牙芯片不支持寻呼扫描能力时,设置 scannable的属性值为false,有利于节省该拼包处理的时长,加速发现过程和连接过程。
在一种可能的实现方式中,第一电子设备根据第一电子设备配置的无线通信芯片能力动 态调整第一电子设备的广播参数,包括:第一电子设备根据第一电子设备配置的无线通信芯 片能力,调整第一电子设备的扫描器的数量,其中每个扫描器对应一个扫描占空比。
在现有技术中,如果电子设备(例如第一电子设备或第二电子设备)配置的蓝牙芯片支 持单路广播通道,那么,当该电子设备的多个业务并发时,在同一个时刻电子设备只能发送 一个业务的广播报文,而延迟发送其他业务的广播报文,或者直接丢弃其他业务的广播报文, 从而影响了这些业务的发现和连接。如果电子设备配置的蓝牙芯片支持多路广播通道时,那 么在同一时刻电子设备上触发广播报文的数量大于当前可用的广播通道的数量时,也存在上 述冲突,影响其中部分业务的发现和连接。
在本申请的一些实施例中,电子设备可以合并同一业务的不同任务的广播报文和反向广 播报文。例如,用户在第一电子设备上触发了一次图片/文件/视频等的分享功能,那么第一电 子设备发送用于发现周围电子设备的广播报文(例如广播报文A)。当第一电子设备接收到第 二电子设备返回的第一个响应包(例如广播报文B)时,第一电子设备发送反向广播报文(例 如广播报文F)。如果用户在第一电子设备发送反向广播报文之前,又在第一电子设备上触发 了另一次的图片/文件/视频等的分享功能,那么第一电子设备响应于用户的触发操作,再次发 送用于发现周围电子设备的广播报文(例如广播报文A)。并且,第一电子设备发送反向广播 报文(例如广播报文F)和第二次发现用于发现周围电子设备的广播报文(例如广播报文A) 发送冲突。那么,在本申请实施例中,可以将两个广播报文进行合并,然后发送合并后的广 播报文。第二电子设备在接收到该合并后的广播报文后,解析可获得两个广播报文的内容(即 广播报文F和广播报文A)。由此可见,相较于现有技术,电子设备将两个广播报文进行合并 发送,保证了同业务的两个任务的并发,加速了该业务不同任务的发现与连接过程。
在本申请的另一些实施例中,如果电子设备配置的蓝牙芯片支持多路广播通道,可以设 置预设数量N3个广播通道用于传输广播报文,以节省芯片资源。其中,N3个广播通道可以 对应N3个业务类型。后续,当电子设备有业务有待发送的广播报文时,该业务选择自身的 业务类型对应广播通道,用于发送广播报文。如果此时有业务类型相同的多个业务需要发送 广播报文,则可以复用该业务类型对应的广播报文。即,电子设备的应用层将这多个业务的 广播报文进行合并,然后通过该业务类型对应的广播通道发送合并后的广播报文,从而保证 及时发送各个业务的广播报文,减少各个业务的等待时间,加速多个业务的发现过程和连接 过程。换言之,不同业务类型的业务选择复用业务类型对应的广播通道。
在本申请的又一些实施例中,如果电子设备配置的蓝牙芯片支持单路广播通道,或者, 虽然电子设备配置的蓝牙芯片支持多路广播通道,但芯片能力不足以提供预设数量N3个广 播通道用于传输广播报文。那么,可以合并其中部分的业务类型。换言之,多个业务类型复 用一个广播通道,那么在Sender Btype(或Receiver Btype)中可以指示两个或两个以上的业 务类型。换言之,两个或两个以上的业务类型的业务也可以合并在一条广播报文中。
在一种可能的实现方式中,第一电子设备根据第一电子设备配置的无线通信芯片能力动 态调整第一电子设备的广播参数,包括:如果第一电子设备配置的无线通信芯片能力支持多 路广播通道,则第一电子设备设置预设数量N3个广播通道,其中每个广播通道对应一个业 务类型,其中每个业务类型对应多个业务。
在本申请的一些实施例中,电子设备可以合并同一业务的不同任务的广播报文和反向广 播报文。例如,用户在第一电子设备上触发了一次图片/文件/视频等的分享功能,那么第一电 子设备发送用于发现周围电子设备的广播报文(例如广播报文A)。当第一电子设备接收到第 二电子设备返回的第一个响应包(例如广播报文B)时,第一电子设备发送反向广播报文(例 如广播报文F)。如果用户在第一电子设备发送反向广播报文之前,又在第一电子设备上触发 了另一次的图片/文件/视频等的分享功能,那么第一电子设备响应于用户的触发操作,再次发 送用于发现周围电子设备的广播报文(例如广播报文A)。并且,第一电子设备发送反向广播 报文(例如广播报文F)和第二次发现用于发现周围电子设备的广播报文(例如广播报文A) 发送冲突。那么,在本申请实施例中,可以将两个广播报文进行合并,然后发送合并后的广 播报文。第二电子设备在接收到该合并后的广播报文后,解析可获得两个广播报文的内容(即 广播报文F和广播报文A)。由此可见,相较于现有技术,电子设备将两个广播报文进行合并 发送,保证了同业务的两个任务的并发,加速了该业务不同任务的发现与连接过程。
在本申请的另一些实施例中,如果电子设备配置的蓝牙芯片支持多路广播通道,可以设 置预设数量N3个广播通道用于传输广播报文,以节省芯片资源。其中,N3个广播通道可以 对应N3个业务类型。后续,当电子设备有业务有待发送的广播报文时,该业务选择自身的 业务类型对应广播通道,用于发送广播报文。如果此时有业务类型相同的多个业务需要发送 广播报文,则可以复用该业务类型对应的广播报文。即,电子设备的应用层将这多个业务的 广播报文进行合并,然后通过该业务类型对应的广播通道发送合并后的广播报文,从而保证 及时发送各个业务的广播报文,减少各个业务的等待时间,加速多个业务的发现过程和连接 过程。换言之,不同业务类型的业务选择复用业务类型对应的广播通道。
在一种可能的实现方式中,第一电子设备根据第一电子设备配置的无线通信芯片能力动 态调整第一电子设备的广播参数,还包括:如果第一电子设备配置的无线通信芯片能力不支 持多路广播通道,则第一电子设备的多个业务类型复用一个广播通道。
在本申请的一些实施例中,电子设备可以合并同一业务的不同任务的广播报文和反向广 播报文。例如,用户在第一电子设备上触发了一次图片/文件/视频等的分享功能,那么第一电 子设备发送用于发现周围电子设备的广播报文(例如广播报文A)。当第一电子设备接收到第 二电子设备返回的第一个响应包(例如广播报文B)时,第一电子设备发送反向广播报文(例 如广播报文F)。如果用户在第一电子设备发送反向广播报文之前,又在第一电子设备上触发 了另一次的图片/文件/视频等的分享功能,那么第一电子设备响应于用户的触发操作,再次发 送用于发现周围电子设备的广播报文(例如广播报文A)。并且,第一电子设备发送反向广播 报文(例如广播报文F)和第二次发现用于发现周围电子设备的广播报文(例如广播报文A) 发送冲突。那么,在本申请实施例中,可以将两个广播报文进行合并,然后发送合并后的广 播报文。第二电子设备在接收到该合并后的广播报文后,解析可获得两个广播报文的内容(即 广播报文F和广播报文A)。由此可见,相较于现有技术,电子设备将两个广播报文进行合并 发送,保证了同业务的两个任务的并发,加速了该业务不同任务的发现与连接过程。
在一种可能的实现方式中,该方法还包括:第一电子设备根据第一电子设备的业务场景 和/或第一电子设备配置的芯片能力确定发现的电子设备的显示顺序。
一种可能的实现方式中,第一电子设备根据所述第一电子设备的业务场景确定发现的电 子设备的显示顺序,包括:如果检测到在图库应用、文件管理器、视频播放器中任一个应用 中触发发现功能,则第一电子设备优先显示被发现的电子设备中的富设备。
一种可能的实现方式中,第一电子设备根据所述第一电子设备的业务场景确定发现的电 子设备的显示顺序,还包括:如果检测到智能家居应用中触发发现功能,则第一电子设备优 先显示智能家居应用中注册的电子设备。
一种可能的实现方式中,第一电子设备根据所述第一电子设备配置的芯片能力确定发现 的电子设备的显示顺序,还包括:如果第一电子设备配置超宽带UWB芯片,则所述第一电 子设备优先显示所述第一电子设备指向的电子设备。
一种可能的实现方式中,如果第一电子设备配置蓝牙芯片或无线保真Wi-Fi芯片或邻居 感知网络NAN,则第一电子设备优先显示距离所述第一电子设备近的电子设备,或者,第一 电子设备优先显示无线信号强的电子设备。
当然,第一电子设备还可以将上述几种显示策略进行组合。例如,可以按照下述的优先 级组合上述显示策略:(1)1s内发现的电子设备按照如下的优先级进行排序:优先显示第一 电子设备当前指向的被发现的电子设备;然后显示距离第一电子设备位于一定距离范围内的 发现的电子设备;再按照用户触发发现周围电子设备功能的入口的显示策略进行排序;再按 照RSSI的数值大小进行排序。(2)1s后发现电子设备按照发现的时间顺序进行排序,且排 列在1s内发现的电子设备之后。
在一种可能的实现方式中,该方法还包括:第一电子设备根据第一电子设备的业务场景 和/或第一电子设备配置的无线通信芯片能力动态调整第一电子设备的连接参数,连接参数包 括连接间隔和/或连接通道数。
在一种可能的实现方式中,第一电子设备根据第一电子设备的业务场景动态调整第一电 子设备的连接参数,包括:第一电子设备根据缓存的发现包的大小调整第一电子设备的连接 间隔,其中,发现包用于发现周围的电子设备。
另一些实施例中,在连接过程中,根据第一电子设备的状态动态调整占空比(包括扫描 占空比、广播占空比等)。当电子设备检测到用户选择连接某个电子设备的预设时长T3时, 第一电子设备可以增大广播占空比/扫描占空比,有利于第一电子设备快速地广播或扫描,加 速与其他电子设备的连接过程。当第一电子设备与其他电子设备建立连接后,电子设备可以 减小广播占空比和/或扫描占空比,降低电子设备的功耗。
在一种可能的实现方式中,第一电子设备根据第一电子设备配置的无线通信芯片能力动 态调整第一电子设备的连接参数,包括:第一电子设备根据第一电子设备配置的无线通信芯 片的数量,在每个无线通信芯片上分别建立一个连接通道;第一电子设备的至少两个业务复 用至少一个连接通道。
在一种可能的实现方式中,在第一电子设备的至少两个业务复用一个连接通道的过程中, 一个连接通道传输的数据包包括业务标识和序列号。
在一种可能的实现方式中,一个连接通道传输的数据包还包括包头标记和/或优先级标 记。
其中,由于多个业务复用同一个套接字,因此电子设备接收到数据包后,可以根据其中 的业务标识向相应的业务返回数据包。可见,本申请实施例保证了多个业务复用连接通道时 也不会出现业务错乱的情况。
其中,序列号(seq),用于确定各个数据包的时序。例如,各个业务对应一个队列,每 个队列中,发送端发送的数据包的序列号奇数递增,接收端发送的数据包的序列号偶数递增。
其中,包头标记,用于标记该数据包是否为包头。如果为包头,该包头标记置第一值, 例如置1,如果为非包头,该包头标记置第二值,例如置0。接收端电子设备可以根据包头标 记对多个数据包进行拼接。
其中,优先级标记,用于标记同一业务中不同重要程度的数据包,例如,控制信令类的 数据包的优先级最高,高优先级的业务包,低优先级的业务包等。换言之,当连接通道的负 荷较重时,可以根据优先级标记优先发送优先级高的数据包,保证高效地数据传输。
在一种可能的实现方式中,在第一电子设备建立连接通道之前,第一电子设备广播的发 现请求中携带服务标识。
例如,不同电子设备触发的多个业务也可以复用同一个连接通道。在一些实施例中,为 避免对端的两个电子设备同时发起连接,造成连接冲突进而连接失败的情况发生。在第一电 子设备确定发起业务1(即在图14中步骤S1401)之前或之后,或者,在第一电子设备建立 连接通道(如执行图14中步骤S1405)之前或之后,第一电子设备向第二电子设备发送广播 报文,用于告知第二电子设备,第一电子设备已发起连接请求。那么,第二电子设备在预设 时长T5内不再发起连接请求。如果用户在该预设时长T5内通过第二电子设备发起连接请求, 则第二电子设备不响应该连接请求,或者延迟响应该连接请求。可选的,第二电子设备也可 以提示用户,其他电子设备正在连接第二电子设备。可选的,在其他一些实施例中,在第一 电子设备建立连接通道(如执行图14中步骤S1405)之后,第一电子设备通过已建立的套接 字(即已建立的连接通道)向第二电子设备发送报文,用于告知第二电子设备,第一电子设 备已发起连接请求。总之,本申请实施例不限定第一电子设备告知第二电子设备的方式和时 机。
一种可能的实现方式中,第二电子设备的设备标识为第二电子设备的第一标识的哈希值; 第二电子设备的第一标识为第一电子设备的序列号SN、国际移动设备识别码IMEI、媒体存 取控制地址MAC地址中的任一项。由于哈希值不易识别以及不易被反解析,因此使用哈希 值作为电子设备的唯一标识,提升了发现过程以及连接过程中的安全问题。
在本申请的另一些实施例中,用户可以通过例如重启第二电子设备的方式,重新计算得 到第二电子设备的唯一标识,即重新使用公钥对电子设备的标识(例如SN、IMEI、MAC地 址等)计算哈希值,使用哈希值中的部分字节作为新的第二电子设备的唯一标识。可见,用 户可以控制重新生成第二电子设备的唯一标识,换言之第二电子设备的唯一标识可以变化, 进一步加大被攻击的难度,进一步提升第二电子设备发现过程以及连接过程中的安全问题。
在本申请的又一些实施例中,在与第二电子设备连接过程中,还可以对发现的第二电子 设备的标识进行校验,而且保证连接的电子设备与发现时的电子设备是同一个电子设备,保 证连接第二电子设备的连接安全。第一电子设备的设备标识也可以做类似的加密处理。
一种可能的实现方式中,在第一电子设备与第二电子设备的连接过程中,第一电子设备 GATT客户端与第二电子设备GATT服务端的连接阶段(即阶段1)失败时,第一电子设备和 第二电子设备自动重试,重试次数不超过预设次数1(例如3次),并且,第一电子设备处于 阶段1的总时长控制在预设时长(例如4s)内。
一种可能的实现方式中,在第一电子设备与第二电子设备的连接过程中,第一电子设备 和第二电子设备的服务发现阶段(即阶段2)失败时,第一电子设备和第二电子设备自动重 试,重试次数不超过预设次数2(例如1次),并且,第一电子设备处于阶段2的总时长控制 在预设时长(例如4s)内。
本申请实施例提供的技术方案通过对阶段1和阶段2的可恢复的异常进行重试,提升在 本次连接的成功率。并且,通过控制第一电子设备处于阶段1和阶段2的总时长,从而使得 重试的方法相较于用户重新触发连接的方法,节省连接时间,以加速连接过程。
一种可能的实现方式中,在第一电子设备确定与第二电子设备建立连接通道之前或之后, 第一电子设备向第二电子设备发送第一消息,第一消息用于通知第二电子设备不向第一电子 设备发送连接请求。
在第一电子设备向第二电子设备发送发现请求报文(例如广播报文A)时,可以在发现 请求报文中携带的服务标识。那么,在连接过程中,在第一电子设备GATT客户端与第二电 子设备GATT服务端的建立连接后(即执行阶段1后),直接设置MTU阶段(即执行阶段3)。 换言之,在阶段1时第一电子设备和第二电子设备已实现服务发现成功,即本次连接过程中 无需执行阶段2,由此加速了连接过程。
一种可能的实现方式中,第一电子设备在发现第二电子设备后,如果在发现后的预设时 长T7(例如4s)内未接收到第二电子设备发送的广播报文时,将确定第二电子设备下线,即 在发现的电子设备的列表中不再显示第二电子设备的标识。
如此,避免当第二电子设备不满足连接条件时,仍然出现在发现列表中,误导用户选择 连接的电子设备。
在本申请的又一些实施例中,第一电子设备还可以为不同设备类型的电子设备设置不同 的预设时长T7。例如,被发现的电子设备是PC时,预设时长T7设置为6s;被发现的电子 设备是手机时,预设时长T7设置为4s。这是考虑到不同设备类型的电子设备的广播占空比 不同,有利于提高下线的准确性。
第五方面、提供一种电子设备,包括:处理器、存储器和无线通信模块,所述存储器、 所述无线通信模块与所述处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程 序代码包括计算机指令,当所述处理器从所述存储器中读取所述计算机指令,以使得所述电 子设备执行上述第二方面、第三方面、第四方面以及其中任一方面的任一种可能的实现方式 中的方法。
第六方面、提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备 上运行时,使得电子设备执行如上述第二方面、第三方面、第四方面以及其中任一方面的任 一种可能的实现方式中的方法。
第七方面、提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算 机执行如上述第二方面、第三方面、第四方面以及其中任一方面的任一种可能的实现方式中 的方法。
第八方面、提供一种芯片系统,包括处理器,当处理器执行指令时,处理器执行如上述 第二方面、第三方面、第四方面以及其中任一方面的任一种可能的实现方式中的方法。
第五方面至第八方面提供的电子设备、计算机可读存储介质、计算机程序产品以及芯片 系统所能达到的技术效果可参考第二方面、第三方面、第四方面以及其中任一方面的任一种 可能的实现方式中有关技术效果的描述。
附图说明
图1为本申请实施例提供的一种无线通信系统的结构示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3为本申请实施例提供的一种BLE协议栈的结构示意图;
图4为本申请实施例提供的一种第一电子设备发现第二电子设备的方法流程示意图;
图5为本申请实施例提供的一种广播报文的格式示意图;
图6为本申请实施例提供的一些第一电子设备的用户界面示意图;
图7为本申请实施例提供的一些第一电子设备发现第二电子设备的方法流程示意图;
图8为本申请实施例提供的一些HCI数据包的内容示意图;
图9为本申请实施例提供的一种发现窗口与连接窗口重合的解决方法的示例图;
图10为本申请实施例提供的又一些HCI数据包的内容示意图;
图11为本申请实施例提供的一种广播报文中数据域的格式示意图;
图12为本申请实施例提供的一种复用广播通道的方法流程示意图;
图13为现有技术中第一电子设备上触发多个业务时连接过程的示意图;
图14为本申请实施例提供的一种复用连接通道的方法流程示意图;
图15为本申请实施例提供的又一种无线连接方法的流程示意图;
图16为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或 B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A 和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。 另外,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述 为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方 案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
如图1所示,为本申请实施例提供的一种通信系统的结构示意图,该通信系统包括至少 第一电子设备100以及第二电子设备200。其中,其中第一电子设备100和第二电子设备200 均具备无线连接功能。其中无线连接例如为BLE连接、经典蓝牙(BR)连接、点对点(point to point,P2P)连接,邻居感知网络(neighbor awareness network,NAN)连接,约束应用协 议(Constrained Application Protocol,CoAP)连接等。本申请实施例提供的技术方案可应用 于第一电子设备100和第二电子设备200之间建立无线通信连接的场景。
示例性的,该第一电子设备100/第二电子设备200例如可以为手机、平板电脑、个人计 算机(personal computer,PC)、个人数字助理(personal digital assistant,PDA)、上网本、可 穿戴电子设备(例如智能手表)、增强现实技术(augmented reality,AR)设备、虚拟现实(virtual reality,VR)设备、车载设备、智慧屏、智能音响、智能家电等,本申请对第一电子设备100/ 第二电子设备200的具体形式不做特殊限制。并且,第一电子设备100的具体形式与第二电 子设备200的具体形式可以相同,也可以不同。
请参见图2,为本申请实施例提供的第一电子设备100的结构示意图。需要说明的是, 第二电子设备200也可以参考第一电子设备100的结构描述。并且,第二电子设备200的结 构可以与第一电子设备100相同,也可以不同。换言之,第二电子设备200可以包括比第一 电子设备100具有更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的 部件布置。
第一电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串 行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142, 天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话 器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192, 摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口 195等。
可以理解的是,本发明实施例示意的结构并不构成对第一电子设备100的具体限定。在 本申请另一些实施例中,第一电子设备100可以包括比图示更多或更少的部件,或者组合某 些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和 硬件的组合实现。另外,本发明实施例示意的各模块间的接口连接关系,只是示意性说明, 并不构成对第一电子设备100的结构限定。在本申请另一些实施例中,第一电子设备100也 可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU), 图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit, NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110 中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数 据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复 存取,减少了处理器110的等待时间,因而提高了系统的效率。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142, 充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的 输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供 电。
第一电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通 信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。第一电子设备100中的每个天线可用于覆 盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线 1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在第一电子设备100上的包括2G/3G/4G/5G等无线通信 的解决方案。
无线通信模块160可以提供应用在第一电子设备100上的包括无线局域网(wireless local area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全 球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM), 近距离无线通信技术(near fieldcommunication,NFC),红外技术(infrared,IR)等无线通信的 解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通 信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送 到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频, 放大,经天线2转为电磁波辐射出去。
第一电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展第一电子设 备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储 功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。 内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至 少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储第 一电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器 121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器 件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在 内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行第一电子设备100 的各种功能应用以及数据处理。
第一电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
本申请中以第一电子设备100与第二电子设备200建立BLE的无线连接为例,对本申请 实施例提供的无线连接方法进行详细说明。
如图3所示,为一种低功耗蓝牙协议栈的结构示意图。上述图1所示的第一电子设备100/ 第二电子设备200均可采用图3所示的低功耗蓝牙协议,以实现第一电子设备100/第二电子 设备200上的BLE应用。简单来说,BLE协议栈用于对BLE应用数据进行层层封包,以生 成一个满足BLE协议的空中数据包。也就是说,把BLE应用数据包裹在一系列的帧头(header) 和帧尾(tail)中。具体来说,BLE协议栈包括:BLE应用(application)层、BLE主机(host) 层以及BLE控制(control)层。
其中,BLE应用层包括应用程序和基于通用属性配置文件(generic attributeprofile,GATT) 的配置文件(profile)/服务(service)。其中,应用程序为具体的BLE应用,例如音乐应用、 图片应用、语音应用、视频应用等。
BLE主机层包括通用访问配置文件(generic access profile,GAP)、GATT、属性协议 (attribute protocol,ATT)、安全管理(secure manager,SM)以及逻辑链路控制和适配协议 (logic link control and adaptation protocol,L2CAP)。
其中,GAP,用来控制电子设备连接和广播。例如,从数据的发起和接收角度,GAP定义了四个角色:广播者(broadcaster)、观察者(observer)、外围设备(peripheral)和中央设 备(central)。其中,广播者,指电子设备正在发送广播事件(advertising event)。观察者,指 电子设备正在接收广播事件。外围设备,指电子设备接收链路层(link layer,LL)连接(对 应于LL层的从设备(slave)角色)。中心设备,指电子设备发起LL连接(对应于LL层的主设备(master)角色)。又例如,GAP定义了实现各种通信的操作模式和过程,包括实现单向的无连接的通信方式、实现电子设备的发现操作、实现电子设备的连接操作、实现蓝牙设备的配对操作等。又例如,GAP定义了用户接口(user interface)有关的蓝牙参数,包括蓝牙地址、蓝牙名称、蓝牙类型等。
GATT,是在ATT的基础上进行构建的,为ATT传输和存储数据建立了一些通用操作和 框架。其中GATT从数据的提供和使用的角度定义了两个角色:GATT服务器(server)和GATT客户端(client)。其中,GATT服务器,维护了ATT的查找表以及service和特性(characteristic)的定义等。GATT客户端向GATT服务器发送请求,并接收GATT服务器的 响应。
ATT,是GATT和GAP的基础,它定义了BLE协议栈上层的数据结构和组织方式。属 性(attribute)概念是ATT层的核心,ATT层定义了属性的内容,规定了访问属性的方法和 权限。属性可以理解为一个数据结构,它包括了数据类型和数据值。属性有多级,顶级为配 置文件(profile),下辖多个服务(service),服务下辖多个特征(characteristic),特征下辖多 个描述符(descriptor)。ATT定义了客户端(client)和服务器(server)之间通信的方式,包 括:请求(request)、响应(response)、命令(command)、指示(indication)、确认(confirmation) 和通知(notification)。
SM,负责BLE通信中有关安全的内容,包括配对(pairing,)、认证(authentication)和 加密(encryption)等过程。
L2CAP提供的功能包括:协议/信道多路复用;上层应用数据的分割(和重组),生成协 议数据单元(packet data unit,PDU),以满足用户数据传输对延时的要求,并便于后续的重 传、流控等机制的实现;PDU的分片(和重组),生成符合LL传输要求的数据片;支持流式 传输(如音频、视频等,不需要重传或者只需要有限重传)等。
BLE控制层包括LL和物理层(physical layer,PL)。
其中,LL实现的功能包括:具体选择哪个射频通道进行通信,怎么识别空中数据包,具 体在哪个时间点把数据包发送出去,怎么保证数据的完整性,如何进行重传,以及如何对链 路进行管理和控制等。PL用于指定BLE所用的无线频段,调制解调方式和方法等。
可选的,在BLE主机和BLE控制器之间还包括主机控制器接口(host controllerinterface, HCI)。HCI可以用于2颗蓝牙芯片实现BLE协议栈的场合,用来规范两者之间的通信协议和 通信命令等。
(一)发现流程
如图4所示,为本申请实施例提供的一种第一电子设备发现第二电子设备的方法流程示 意图,该流程包括:
S400、第一电子设备显示第一界面。
S401、响应于接收到用户在第一界面上的触发操作,第一电子设备发送广播报文A,其 中广播报文A用于发现周围的电子设备。
相应的,第二电子设备接收到广播报文A。
在步骤S400和步骤S401中,用户在第一电子设备显示的第一界面上触发第一电子设备 的BLE功能,用于发现其他电子设备。示例性的,用户的触发操作例如为用户在图库应用的 界面(即第一界面)中触发分享/转发等功能,或者,用户在视频播放界面(即第一界面)中 触发投屏等功能,又或者,用户在第一电子设备的设置应用的界面(即第一界面)中开启蓝 牙功能,又或者,用户输入语音命令触发分享/转发/投屏/开启蓝牙功能等。响应于接收到用 户在第一界面上的触发操作,第一电子设备发送广播报文A(也称为发现请求报文),用于发 现周围的电子设备。一些示例中,广播报文A中可以携带第一电子设备的设备信息(例如第 一电子设备厂商信息、第一电子设备的名称等)。可选的,广播报文A中还可以携带第一电 子设备的业务标识(例如图像分享业务、投屏业务、发现业务)。
S402、第二电子设备发送广播报文B。
相应的,第一电子设备接收到广播报文B。
第二电子设备接收广播报文A后,对广播报文A进行解析。若根据广播报文A的解析结果确认第二电子设备是第一电子设备扫描的备选电子设备,发送广播报文B,用于响应接收到的广播报文A。若根据广播报文A的解析结果确认第二电子设备不是第一电子设备扫描的备选电子设备,则忽略该广播报文A。例如:第二电子设备根据广播报文A中第一电子设备的厂商信息,确定第二电子设备与第一电子设备为同一个厂商,或者是第一电子设备的合 作厂商时,确认第二电子设备是第一电子设备扫描的备选电子设备。那么,第二电子设备发 送广播报文B,其中广播报文B中携带第二电子设备的设备标识、登录的账号、设备类型、 第二电子设备注册的业务标识等信息。
如图5所示,为一种BLE广播报文的格式。BLE广播报文包括1字节的前导、4字节的接入地址、1字节的报头、1字节的长度、0~37字节的数据以及3字节的校验。其中,报头 中包括4比特的广播报文类型、2比特的保留位、1比特的发送地址类型以及1比特的接收地 址类型。数据包括6字节的广播设备地址以及31字节的净荷(payload)。需要注意的是,电 子设备(例如第二电子设备)需要广播的内容例如包括:设备名(通常为22字节)、账号名、 设备类型、注册业务、能力等信息,这些内容通常大于31字节,而一条广播报文中包括的净 荷最多为31字节。因此,被发现的电子设备一般需要发送多条广播报文,用于响应第一电子设备发送的广播报文A。需要说明的是,图4中所示的流程是以被发现的电子设备需广播两条广播报文(分别为本步骤中的广播报文B以及步骤S404中的广播报文C)为例进行说明的。其中,广播报文B例如携带第二电子设备的设备标识(例如媒体存取控制地址(mediaaccess control address,MAC地址)、设备名称(例如SoundX)、登录账号(例如123@huawei.com)、 注册的业务标识和设备类型(例如智能音箱)等中的一项或多项。
S403、第一电子设备缓存广播报文B。
当第一电子设备接收到第二电子设备发送的广播报文B后,缓存广播报文B的内容,缓 存时长例如可以8秒。可选的,第一电子设备的缓存机制例如可以是LruCache机制,缓存最 近接收到的N4(例如为20)个广播报文B(该N4个广播报文B可以是第一电子设备周围的 任意一个或多个的电子设备发送的)。也就是说,当接收到第21个广播报文B时,如果第21 个广播报文B与前20个广播报文B中任一个相同时,则更新该相同的广播报文B的时间戳。 如果第21个广播报文B与前20个广播报文B不同(例如电子设备的标识、账号等不同)时, 用本次接收的广播报文B替换最早接收的广播报文B。
S404、第二电子设备在时长T1后发送广播报文C。
相应的,第一电子设备接收到广播报文C。
其中,广播报文C例如携带第二电子设备的设备标识(例如MAC地址)。可选的,广播报文C还可以携带第二电子设备的登录账号、注册的业务标识和设备能力等中的一项或多项。 换言之,广播报文C可以携带广播报文B中未携带的第二电子设备的信息。即,广播报文C 和广播报文B中至少部分内容不同。
在现有技术中,当第一电子设备接收到广播报文B后,对广播报文B进行解析,然后发 送针对广播报文B的确认(acknowledge,ACK)报文。第二电子设备在接收到第一电子设备 发送的ACK报文后,对ACK报文进行解析,再发送广播报文C。其中,从第二电子设备发 送广播报文B之后到第二电子设备发送广播报文C之前的整个过程耗时为时长T2,例如T2 通常为300ms。
然而,在本申请实施例中第二电子设备在发送广播报文B后的时长T1后直接发送广播 报文C,即第二电子设备无需等待接收到第一电子设备发送的针对广播报文B的ACK报文。 其中,T1小于T2(例如300ms)。在一个示例中,T1可以设置为一个固定的时长(例如60ms) 加上一个随机时长(例如40ms之内的随机时长)。对比现有技术,现有技术中从第二电子设 备发送广播报文B后,到第二电子设备发送广播报文C整个过程耗时为时长T2,T2通常为 300ms,然而本申请实施例中这个过程耗时为T1,T1可设置为不大于100ms。可见,本申请 实施例提供的技术方案相较于现有技术的技术方案节省了T0=T2-T1,T0大于200ms。
S405、第一电子设备缓存广播报文C。
第一电子设备在接收到第二电子设备发送的广播报文C后,缓存广播报文C的内容。需 要说明的是,这里第一电子设备缓存第二电子设备的广播报文C的内容,便于后续第一电子 设备再次发现周围电子设备时,能快速发现第二电子设备。当然本步骤是可选的。
S406、第一电子设备根据广播报文B和广播报文C显示第二界面,第二界面中包括第二 电子设备的信息。
在第一电子设备接收到广播报文C后,根据广播报文C的MAC地址查找到广播报文B, 其中,查找到的广播报文B的MAC地址与广播报文C的MAC地址相同,即广播报文B和 广播报文C为同一个电子设备(即第二电子设备)发送的。而后,第一电子设备将广播报文 B和广播报文C的内容进行拼接,用于确定是否在第一电子设备显示的发现列表(即第二界 面)中显示第二电子设备的信息。
示例性的,如图6中(1)所示,为第一电子设备(例如手机)显示的设置应用的界面601(即第一界面)的示例。当手机检测到用户在界面601中操作蓝牙功能的开关控件602,手机发送广播报文A,用于发现周围的电子设备。其中,第二电子设备(例如智能音箱)在 接收到广播报文A后发送广播报文B,并在发送广播报文B的时长T1后发送广播报文C。 第一电子设备根据接收到的广播报文B和广播报文C,确定发现第二电子设备,则显示如图 6中(2)所示的界面603。界面603中包括手机发现的周围的设备的列表,例如包括第二电 子设备标识604(例如智能音箱,设备名为SoundX)。由此可见,由于第二电子设备提前发 送了广播报文C,加快了第一电子设备发现第二电子设备的过程。
可以理解的是,在其他一些实施例中,第二电子设备在接收到第一电子设备发送的广播 报文A后,第二电子设备需要发送大于两条(例如N1条,N1大于2)的广播报文用于回复 第二电子设备的信息。在该实施例中,第二电子设备在发送第一条广播报文(即广播报文B) 后的每一条广播报文时,均无需等待第一电子设备针对上一条广播报文的ACK报文,便直接 在发送完上一条广播报文后的时长T1后,发送本条广播报文。相较于现有技术,现有技术中 第二电子设备在发送第一条广播报文(即广播报文B)后的每一条广播报文时,均需等待接 收到第一电子设备发送针对上一条广播报文的ACK报文后才发送本条广播报文。而本申请提 供的实施例则在发送一条广播报文后的时长T1后自动发送下一条广播报文。那么,本申请实 施例提供的技术方案中,第一电子设备发现第二电子设备的过程可节省的时长T0’=(N1-1) *(T2-T1)。由此可见,当第二电子设备需要回复的广播报文数量N1越大时,本申请实施例 提供的技术方案提升发现速率的效果越显著。
在本申请的又一些实施例中,第一电子设备在较短的时间内(例如在缓存广播报文C的 缓存时长之内)需再次发现第二电子设备。例如,第一电子设备在该较短时间内再次触发图 片/文件/视频等的转发/分享功能,或者第一电子设备周期性(周期小于时长T1)刷新发现的 电子设备。那么,第一电子设备在执行步骤S406之后,还执行步骤S407-步骤S409。
S407、第一电子设备发送广播报文A。
相应的,第二电子设备接收到广播报文A。
其中,广播报文A用于发现第一电子设备周围的电子设备。一些示例中,广播报文A中 可以携带第一电子设备的设备信息(例如第一电子设备厂商信息、第一电子设备的名称等)。 可选的,广播报文A中还可以携带第一电子设备的业务标识(例如图像分享业务、投屏业务、 发现业务)。
例如,用户在第一电子设备上触发了一次图片分享功能后,第一电子设备通过执行上述 步骤S401-步骤S406后发现第二电子设备,第一电子设备可以与第二电子设备建立连接并传 输本次分享的图片。在较短时间内,用户再次在第一电子设备上触发另一次图片分享功能时, 第一电子设备发送广播报文A,用于再次发现周围的电子设备。
S408、第二电子设备发送广播报文B。
相应的,第一电子设备接收到广播报文B。
这里广播报文B与步骤S402中第二电子设备发送的广播报文B相同,其中广播报文B 中携带第二电子设备的设备标识(例如MAC地址)、登录的账号、设备类型等信息。
S409、第一电子设备根据广播报文B查找广播报文C,然后根据广播报文B和广播报文 C显示第三界面,其中第三界面中包括第二电子设备的信息。
需要注意的是,这里第一电子设备在接收到广播报文B后,可以根据广播报文B的MAC 地址查找到之前缓存的广播报文C,将广播报文B和广播报文C的内容进行拼接,用于确定 是否在第一电子设备刷新的发现设备的列表(即第三界面)中显示第二电子设备的信息,例 如显示第二电子设备的图标、名称等。
在现有技术中,第一电子设备再次发现第二电子设备的流程与第一次发现第二电子设备 的流程相同,即第二电子设备需发送两条广播报文用于响应第一电子设备发送的用于发现的 广播报文,并且,在第二电子设备在接收到第一电子设备发送的针对第一条广播报文的ACK 报文后,第二电子设备才发送第二条广播报文。然而,在本申请实施例中,第二电子设备仅 发送了一条广播报文时,第一电子设备便可以根据该广播报文和之前缓存的另一条的广播报 文进行内容拼接,确定发现第二电子设备。现有技术中,从第一电子设备接收到第二电子设 备发送的第一条广播报文后,到向第二电子设备发送针对第一条广播报文的ACK报文后,再 到接收到第二电子设备发送的第二条广播报文的过程耗时大于T2,本申请实施例中节省了该 过程。也就是说,第一电子设备再次发现第二电子设备的整个过程节省了至少T2的时长,例 如节省了至少300ms。
可以理解的是,在其他一些实施例中,第二电子设备在接收到第一电子设备发送的广播 报文A后,第二电子设备需要发送大于两条(例如N1条,N1大于2)的广播报文用于回复 第二电子设备的信息。类似的,第一电子设备接收到第二电子设备发送的第一条广播报文后, 可以根据自身缓存的其他广播报文(一条或多条广播报文)提前确定发现第二电子设备,加 速第二电子设备的发现过程。
在本申请的又一些实施例中,第一电子设备在接收到第二电子设备发送的用于响应广播 报文A的任一广播报文,但未接收到第二电子设备发送的用于响应广播报文A的全部广播报 文时,可以发送反向广播报文。该反向广播报文用于请求第二电子设备交替发送用于响应广 播报文A的全部广播报文。
例如,请参见图7中(1)所示流程:在执行步骤S402之后,第一电子设备接收到广播报文B,但此时仍缺少用于响应广播报文A的其他广播报文,例如广播报文C。那么,第一 电子设备执行步骤S501,即发送广播报文F,广播报文F用于请求第二电子设备交替发送用 于响应广播报文A的全部广播报文。那么,存在两种情况,一种情况是:第二电子设备在发 送广播报文B后时长T1之前,接收到广播报文F,那么第二电子设备交替性发送用于响应广 播报文A的全部报文(即第二电子设备发送各个广播报文的时间间隔较短,小于时长T1)。 另一种情况是:第二电子设备在发送广播报文B后时长T1之后,接收到广播报文F,那么, 第二电子设备仍然在发送广播报文B后时长T1之后发送广播报文C(即执行步骤S404)。而 后,在接收到广播报文F之后,交替性发送用于响应广播报文A的全部报文。可以注意到, 第一电子设备发送广播报文F,可用于触发第二电子设备快速交替发送用于响应广播报文A 的全部广播报文,有利于第一电子设备快速收集到响应广播报文A的全部广播报文,快速发 现第二电子设备。
本流程中其他步骤的描述可参考图4中相应内容的描述,这里不再赘述。
又例如,请参见图7中(2)所示流程:在执行步骤S402时,若广播报文B发生丢包时,第一电子设备未接收到广播报文B。第二电子设备继续在发送广播报文B后的时长T1后发送广播报文C,即执行步骤S404。在第一电子设备接收广播报文C时,确定此时仍然缺少响应广播报文A的其他广播报文,例如广播报文B,则发送反向广播报文(即执行步骤S502)。当第二电子设备接收到广播报文F,则交替性发送用于响应广播报文A的全部报文。当第二电子设备发送了缺少的广播报文(例如广播报文B)(即执行步骤S503)后,第一电子设备 接收到缺少的广播报文(例如广播报文B)后,再根据之前缓存的广播报文(例如广播报文 C),执行步骤S406。可选的,第一电子设备缓存接收到的广播报文B(即执行步骤S504)。
在现有技术中,如果发生丢包,则第一电子设备需要在重新发送广播报文A,并且,第 二电子设备也需要重新发送用于响应广播报文A的全部广播报文(即广播报文B和广播报文 C),并且第二电子设备发的广播报文之间间隔时长T1。然而,在申请实施例中提供的技术方 案中,在发生丢包的情况下,第一电子设备发送反向广播报文,即广播报文F,有利于触发 第二电子设备快速交替发送用于响应广播报文A的全部广播报文(即第二电子设备发送各个 广播报文的时间间隔较短,小于时长T1),有利于第一电子设备快速收集到响应广播报文A 的全部广播报文,快速发现第二电子设备。
在本申请的又一些实施例中,第二电子设备可以在接收到广播报文A或者反向广播报文 (即广播报文F)后,才广播自身的信息(即发送广播报文B和广播报文C),以便被其他电 子设备(例如第一电子设备)发现。在其他情况下,第二电子设备可以不用广播第二电子设 备的信息,即第二电子设备无需频繁发送广播报文,有利于节省第二电子设备的功耗。
还需要说明的是,上述以第一电子设备和第二电子设备的发现过程为例进行说明的,本 申请实施例也可以适用于其他场景(例如组网场景、发送心跳报文的场景)中。例如,在其 他需要在一段时间内固定发送两个或两个以上数据包的场景中,发送方的电子设备可以不用 等待接收方的电子设备回复ACK报文,在发送上一个数据包后的时长T1后,自动发送后续 的数据包等。
在本申请的又一些实施例,在电子设备的发现过程中,还可以根据业务场景(例如业务 阶段、缓存的业务数据量大小)、电子设备的状态、蓝牙芯片能力等调整电子设备的广播参数 (如广播类型、扫描占空比、广播占空比、广播通道数等)、连接参数(如连接间隔、连接通 道数等)等,以加速发现过程,提升发现成功率,加速连接过程等。
(二)电子设备在不同的业务阶段下设置不同的广播参数(例如广播类型)。
示例性的,在第一电子设备第一次发送广播报文A用于发现周围电子设备(即执行图4 中步骤S401)之前,设置第一电子设备的广播类型(advertisement type)设置不可连接 (non-connectable)。由于第一电子设备的广播类型为不可连接时,第一电子设备的应用层在 向底层送广播报文A时,底层无需等待其他电子设备(如第二电子设备)连接的广播报文, 而是直接发送广播报文A。在现有技术中,第一电子设备的广播类型为可连接(connectable)。 第一电子设备的应用层在向底层发送广播报文A时,底层(例如具体是L2CAP)需等待一个 连接间隔(connection interval),用于等待接收其他电子设备连接的广播报文。其中,连接间 隔是两个电子设备间交互的时间间隔,一般为20ms。可见,当第一电子设备在发送广播报文 A之前,将广播类型设置为不可连接,有利于发现过程加速一个连接间隔的时长,例如20ms。
后续,在第一电子设备接收到第二电子设备的任一广播报文后,将第一电子设备的广播 类型设置为可连接(connectable)。也就是说,当第一电子设备后续发送反向广播(例如图7 中(1)中的步骤S501、图7中(2)中的步骤S502)或者再次发送广播报文A(例如图4中步骤S407)时,第一电子设备的广播类型为可连接。这是因为,当第一电子设备接收到第二电子设备的任一广播报文后,第一电子设备的底层在发送应用层的广播报文时,可以等待 一个连接间隔的时长,用于接收其他电子设备(如第二电子设备)是否有连接的广播报文, 提升连接其他电子设备的成功率。
对于第二电子设备,在第二电子设备接收到第一电子设备发送的任一广播报文后,例如, 第二电子设备接受到第一电子设备的广播报文A(即如图4中的步骤S401)后,第二电子设 备的广播类型可设置为可连接。那么,第二电子设备的底层在发送应用层的广播报文时,可 以等待一个连接间隔的时长,用于接收其他电子设备(如第一电子设备)连接请求。
在一个具体实现方式中,以安卓(Android)系统为例,第一电子设备或第二电子设备的 应用层可以调用AdvertiseSettings.Builder setConnectable(booleanconnectable)的应用程序接 口(application programming interface,API)设置广播类型是否为可连接或者不可连接。例如, 如图8中(1)为利用蓝牙抓包工具抓取的一个HCI层的数据包的内容。其中,标记801示 出了该电子设备的广播类型被设置为可连接。如图8中(2)为利用蓝牙抓包工具抓取的另一 个HCI层的数据包的内容。其中,标记802示出了该电子设备的广播类型被设置为不可连接。
(三)电子设备根据缓存的业务数据量动态调整连接间隔。
在一些场景中,第一电子设备和第二电子设备之间存在两个或两个以上的任务(可以是 同一业务的不同任务,也可以是不同业务的任务)时,两个或两个以上的任务之间可能存在 冲突的情况。例如,其中一个任务需发送发现过程的数据包(简称为发现包,例如图4中的 第一电子设备发送的广播报文A和广播报文F,第二电子设备发送的广播报文B和广播报文 C),另一个任务需发送建立连接后的数据包(简称为连接包)。如果电子设备同时需要发送 发现包和连接包时,发生冲突。
比如,用户在第一电子设备上触发了图片/文件/视频等的分享功能(简称分享任务),那 么第一电子设备与第二电子设备建立BLE连接,并传输本次分享的图片/文件/视频等的数据 包。如果在传输连接包的过程中,第一电子设备的其他任务(例如组网任务)也需要第一电 子设备和第二电子设备交互发现包,那么第一电子设备与第二电子设备交互的发现包,可能 与第一电子设备和第二电子设备正在传输的连接包发生冲突。也就是说,如图9中(1)所示, 第一电子设备和第二电子设备在组网任务中发送发现包的时间窗口(简称为发现窗口),与分 享任务中用于发送连接包的时间窗口(简称为连接窗口)出现重合。在现有技术中,由于在 同一时刻蓝牙芯片的硬件层(也称为芯片层)仅能发送一个数据包,因此当接收到来自蓝牙 芯片的软件层的发现包与连接包时,硬件层会认为连接包优先级高于发现包,优先发送连接 包,丢弃发现包。可见,现有技术中延长了组网任务中两个电子设备的发现过程,甚至可能 造成两个电子设备未成功发现对方,即降低了发现的成功率。然而,在本申请实施例中,当 电子设备(例如第一电子设备/第二电子设备)的L2CAP层接收到应用层发送的发现包和连 接包时,电子设备的L2CAP层缓存待发送的发现包,发送连接包。当检测到连接间隔时,电 子设备的L2CAP层再发送缓存的发现包。其中,连接间隔是指第一电子设备向第二电子设备 建立连接后,第一电子设备和第二电子设备交互间的时间间隔。也就是说,如图9中(2)所 示,本申请实施例通过缓存组网任务中的发现包,并在检测到分享任务中的连接间隔时,再 发送组网任务中的发现包,从而达到将分享任务的发现窗口与组网任务的连接间隔对齐的作 用,从而相对现有技术缩短了组网任务中两个电子设备的发现过程。
需要说明的是,当存在多个发现包与连接包冲突的情况下,电子设备(第一电子设备/第 二电子设备)的L2CAP层在缓存多个业务的发现包时,可以按照一定的优先级(例如根据业 务的重要性、或者发现包的重要性等)建立缓存队列。当检测到连接间隔时,电子设备的 L2CAP层按照优先级的顺序优先发送优先级高的发现包,从而优先保证优先级高的业务的发 现速度和发现成功率。
可选的,在其他一些示例中,还可以根据缓存的发现包的数据量动态地调整第一电子设 备和第二电子设备之间的连接间隔。在具体实现时,可以为缓存的发现包的数据量设置一个 最大阈值,和/或,为缓存的发现包的数据量设置一个最小阈值。当电子设备(例如第一电子 设备/第二电子设备)的L2CAP层的缓存的发现包的数据量大于或等于最大阈值时,增大第 一电子设备和第二电子设备之间的连接间隔。当电子设备的L2CAP层的缓存的发现包的数据 量小于或等于最小阈值时,减小第一电子设备和第二电子设备之间的连接间隔。例如,如图 9中(3)所示,当第一电子设备和第二电子设备之间的连接间隔增大后,相当于第一电子设 备和第二电子设备用于发送其他业务的发现包的发现窗口也增大了,有利于快速发送第一电 子设备和第二电子设备之间较多的发现包,缩短其他业务的发现过程以及提高发现成功率。 又例如,如图9中(4)所示,当第一电子设备和第二电子设备之间的连接间隔减小后,相当 于第一电子设备和第二电子设备的连接窗口增多了,第一电子设备和第二电子设备用于发送 其他业务的发现包的发现窗口也减小了。那么,既加快了第一电子设备和第二电子设备之间 已建立连接的业务的连接包的传输速率,又能满足发送第一电子设备和第二电子设备之间较 少的发现包,合理地分配了芯片资源。
当缓存的发现数据包的数据量恢复到一定范围内(大于最小阈值,且小于最大阈值)时, 第一电子设备和第二电子设备之间的连接参数也可以恢复到调整之前的数值或者恢复默认值 等。
在一个具体实现中,当第一电子设备或第二电子设备的L2CAP层在检测到缓存的发现包 的数据量大于或等于最大阈值时,可以调用gap_conn_params.min_conn_interval=MIN_CONN_INTERVAL的方式增大连接间隔的最小值,以及调用 gap_conn_params.max_conn_interval=MAX_CONN_INTERVAL的方式增大连接间隔的最大 值。换言之,将连接间隔的范围整体增大。或者,当第一电子设备或第二电子设备的L2CAP 层在检测到缓存的发现包的数据量小于或等于最小阈值时,可以调用 gap_conn_params.min_conn_interval=MIN_CONN_INTERVAL的方式减小连接间隔的最小值, 以及调用gap_conn_params.max_conn_interval=MAX_CONN_INTERVAL的方式减小连接间 隔的最大值。换言之,将连接间隔的范围整体减小。
在某个电子设备(例如第一电子设备/第二电子设备)增大/减小连接间隔后,需向对端的 电子设备(例如第二电子设备/第一电子设备)发送L2CAP连接参数(即连接间隔)更新请 求,以告知对端的电子设备已更新L2CAP连接参数。
需要说明的是,上述实施例是以BLE为例进行说明的,其他的无线连接方式(例如Wi-Fi) 也可以采用上述实施例提供的方案动态调整连接间隔,不再一一赘述。
(四)电子设备根据电子设备的状态动态调整占空比(包括扫描占空比、广播占空比等)。
其中,占空比是指电子设备处理时长除以空闲的间隔时长。广播占空比,是指电子设备 广播的时长除以空闲的间隔时长。可以理解的,广播占空比越大,电子设备广播得越频繁, 那么电子设备被发现得越快,连接越快。扫描占空比,是指电子设备扫描的时长除以空闲的 间隔时长,其中,扫描是指监听广播。可以理解的,扫描占空比越大,电子设备扫描得越频 繁,发现其他电子设备越快,连接越快。
在本申请的一些实施例中,在电子设备的发现过程中,根据电子设备的状态动态调整占 空比(包括扫描占空比、广播占空比等)。当电子设备(例如第一电子设备/第二电子设备) 从灭屏状态进入亮屏状态的预设时长T3(例如1分钟)内时,或者从锁屏状态进入解锁状态 的预设时长T3内时,或者开启新的应用的预设时长T3内,或者将某个应用从后台切换至前 台运行的预设时长T3内,又或者电子设备运行特定的应用时,电子设备可以增大广播占空比 /扫描占空比。这是考虑到,在这些场景中电子设备发现其他电子设备的概率较大,因此增大 电子设备的广播占空比和/或扫描占空比,有利于电子设备快速地广播或扫描,加速与其他电 子设备发现过程。
当电子设备(例如第一电子设备/第二电子设备)灭屏时,或者某个应用切换后台运行时, 电子设备可以减小广播占空比和/或扫描占空比。这是因为,在该场景中,电子设备发现其他 电子设备的概率较小,甚至概率为零,因此减小广播占空比和/或扫描占空比,甚至将广播占 空比和/或扫描占空比调至零,有利于降低电子设备的功耗。
在其他场景中,电子设备的广播占空比/扫描占空比可以设置为其他值,例如默认值。
在一个具体实现中,以安卓系统为例,当电子设备的应用层检测到电子设备从灭屏状态 进入亮屏状态时,或者从锁屏状态进入解锁状态时,或者开启新的应用(application,APP) 时,或者将某个应用从后台切换至前台运行时,又或者电子设备运行特定的应用时,电子设 备的应用层可以调用setScanWindowMillis(intscanWindowMillis)的API,设置较大的扫描窗口 (相较于默认的扫描窗口,或者扫描窗口的中间值);调用setScanIntervalMillis(int scanIntervalMillis)的API,设置较小的扫描间隔(相较于默认的扫描间隔,或者扫描间隔的中 间值),从而增大扫描占空比。还可以调用AdvertisingSetParameters.Builder setInterval(int interval)的API设置较小的广播间隔(相较于默认的广播间隔,或者广播间隔的中间值),相 对应的广播窗口较大,从而增大广播占空比。当电子设备的应用层检测到电子设备灭屏时, 可以调用setScanWindowMillis(int scanWindowMillis)的API,设置较小的扫描窗口;调用setScanIntervalMillis(int scanIntervalMillis)的API,设置较大的扫描间隔,从而减小扫描占空 比。还可以调用AdvertisingSetParameters.Builder setInterval(intinterval)的API设置较大的广播 间隔,相对应的广播窗口较小,从而减小广播占空比。
在本申请的另一些实施例中,在连接过程中,根据电子设备的状态动态调整占空比(包 括扫描占空比、广播占空比等)。当电子设备检测到用户选择连接某个电子设备的预设时长 T3时,电子设备可以增大广播占空比/扫描占空比,有利于电子设备快速地广播或扫描,加速 与其他电子设备的连接过程。当电子设备与其他电子设备建立连接后,电子设备可以减小广 播占空比和/或扫描占空比,降低电子设备的功耗。在一个具体实现中,电子设备可以通过减 小寻呼间隔(page interval),增大寻呼窗口(page windows)的方式增大广播占空比。反之, 调小广播占空比。通过减小寻呼扫描间隔(page scan interval),增大寻呼扫描窗口(page scan windows)的方式增大扫描占空比。反之,调小扫描占空比。
需要说明的是,上述预设时长T3在不同的电子设备状态时的取值可以相同,也可以不同, 本申请实施例对此不做限定。
还需要说明的是,上述实施例是以BLE为例进行说明的,其他的无线连接方式(例如 Wi-Fi)也可以采用上述实施例提供的方案动态调整连接间隔的方式调整广播/扫描占空比,不 再一一赘述。
(五)电子设备根据芯片能力设置广播参数。
电子设备(如第一电子设备或第二电子设备)具备的蓝牙芯片能力不同时,设置不同的 广播参数。例如,如果电子设备的蓝牙芯片支持寻呼扫描(page scan)能力,则具备拼接响 应包的能力,那么设置电子设备的广播参数scannable的属性值为true。换言之,电子设备的 底层在接收到多个针对发现请求的响应包(例如上述图4中的广播报文B和广播报文C)时, 可以进行对多个响应包进行拼接,再将拼接好的数据包上报给上层的应用。
如果电子设备的蓝牙芯片不支持寻呼扫描能力,则不具备拼接响应包的能力,那么设置 电子设备的广播参数scannable的属性值为false。那么,电子设备的底层在接收到多个针对发 现请求的响应包(例如上述图4中的广播报文B和广播报文C)时,则不对多个响应包进行 拼接,直接将多个响应包上报给上层的应用。如果此时电子设备的scannable的属性值仍然为 true,那么此时电子设备仍然会等待拼包处理的时长(例如为20ms),再将多个响应包上报给 上层的应用。因此,电子设备的蓝牙芯片不支持寻呼扫描能力时,设置scannable的属性值为 false,有利于节省该拼包处理的时长,加速发现过程和连接过程。
在一个具体实现方式中,以安卓系统为例,电子设备(例如第一电子设备或第二电子设 备)的应用层可以调用AdvertisingSettingsParameters.Builder setScannable(boolean scannable) 的API设置scannable的属性值。例如,如图10中(1)为利用蓝牙抓包工具抓取的一个HCI 层的数据包的内容。其中,标记1001示出了该电子设备的广播类型被设置为可扫描。如图 10中(2)为利用蓝牙抓包工具抓取的另一个HCI层的数据包的内容。其中,标记1002示出 了该电子设备的广播类型被设置为不可扫描。
(六)电子设备根据蓝牙芯片能力设置扫描占空比。
现有技术中,每个业务在使用蓝牙时都会在电子设备的(如第一电子设备或第二电子设 备)应用层注册一个L2CAP层的扫描器。换言之,一个业务对应一个扫描器。当L2CAP层 注册的扫描器达到一定数量(例如32个)后,新的业务将不能再注册扫描器,那么无法使用 该电子设备的蓝牙功能。
在本申请的一些实施例中,电子设备提供预设数量N2个的扫描器,其中每个扫描器对 应一个档位的扫描占空比。例如,电子设备提供4个扫描器(即N2=4),分别对应4个档位 的扫描占空比,分别为5%、10%、50%以及100%。后续,每个业务根据自身的业务类型、业务特征、业务需求等因素选择其中一个扫描器进行注册。换言之,每个业务选择的扫描器的扫描占空比能够满足该业务的扫描需求。可以注意到,在本申请实施例中,一个扫描器上可以注册多个业务。换言之,本申请实施例通过复用扫描器的方式解决了电子设备仅能注册 有限个(例如32个)扫描器的问题。
在本申请的另一些实施例中,电子设备还可以根据蓝牙芯片能力动态调整电子设备提供 的各个档位的扫描器。
示例性的,若电子设备配置的双蓝牙芯片,分别为蓝牙芯片A和蓝牙芯片B。并且,电 子设备配置了4个档位的扫描器。其中4个档位的扫描器的占空比从低到高的顺序为:档位 1<档位2<档位3<档位4。
如果用户偏好是省电模式,则可以在蓝牙芯片A上配置档位1和档位2的扫描器,在蓝 牙芯片B上配置档位3和档位4的扫描器。这样,当电子设备处于省电模式下或者电子设备 处于灭屏状态时,电子设备的蓝牙芯片A继续工作,蓝牙芯片B则停止工作。此时运行的业 务则选择注册档位1或档位2的扫描器。可见,蓝牙芯片A上的扫描占空比均比较低,有利于降低电子设备的整体功耗。
如果用户偏好是高性能模式,则可以在蓝牙芯片A上配置档位1和档位4的扫描器,在 蓝牙芯片B上配置档位2和档位3的扫描器。那么,运行的业务自身的业务类型、业务特征、 业务需求等因素选择其中一个扫描器进行注册。由于在一个蓝牙芯片上合理配置了高低档位 的扫描器,有利于电子设备快速找到对端电子设备,提速发现过程以及连接过程。
在其他一些实施例中,还可以在蓝牙芯片A和蓝牙芯片B分别配置4个档位的扫描器, 即档位1至档位4。这样,当其中一个蓝牙芯片(例如蓝牙芯片A)的能力不足时,可以调用该蓝牙芯片(例如蓝牙芯片A)的应用可以切换到调用另一个蓝牙芯片(例如蓝牙芯片B)。由于两个蓝牙芯片上的扫码器的档位相同,应用切换蓝牙芯片时用户无感知。
再示例性的,若电子设备配置的单个蓝牙芯片,或者,电子设备虽然配置了双蓝牙芯片, 但例如负荷较重造成芯片能力不足以提供预设数量N2的扫描器时,可以根据预设规则确定 设置特定几个档位的扫描器。例如,电子设备原本配置了4个档位的扫描器,4个档位的扫 描器的占空比从低到高的顺序为:档位1<档位2<档位3<档位4。此时,电子设备仅能支持 一个或两个扫描器时,可以按照预设规则选择配置一个或两个档位的扫描器。而后,业务则 在这一个或两个档位的扫描器上进行注册。
其中,预设规则为:(1)电子设备选择配置档位较高(如选择档位4,或者选择档位4和档位3)的扫描器。这样,当运行的业务注册在档位较高的扫描器上时,电子设备可以满足所有业务的扫描需求。
(2)电子设备选择配置较多业务对应档位的扫描器。例如,电子设备运行的业务有6个 业务,其中有1个业务对应档位1,2个业务对应档位2,3个业务对应档位3,1个业务对应档位4。那么,当电子设备的芯片能力不足时,可以选择配置档位3或者选择配置档位3和 档位2的扫描器。这样,电子设备能够保证大多数业务不受影响。
(3)电子设备选择配置优先级较高的业务对应档位的扫描器。这样,电子设备能够保证 优先级高的业务不受影响。
(4)电子设备选择配置前台运行的业务对应档位的扫描器。这样,电子设备能够保证前 台运行的业务不受影响。
(5)如果电子设备配置为省电模式,则选择配置较低档位的扫描器,以保证电子设备的 整体功耗较低。
当然,预设规则还可以是其他的规则,本申请实施例对预设规则的内容不做限定。
综上可见,在本申请实施例中,电子设备可以根据蓝牙芯片的可用数量,以及蓝牙芯片 的负荷配置不同的扫描占空比,以满足各个场景下各个业务的扫描需求。另外,即使电子设 备配置了单个蓝牙芯片,也可以为单个蓝牙芯片配置多个不同扫描占空比,以便各个业务选 择合理的扫描占空比。
(七)复用广播通道。
在现有技术中,如果电子设备(例如第一电子设备或第二电子设备)配置的蓝牙芯片支 持单路广播通道,那么,当该电子设备的多个业务并发时,在同一个时刻电子设备只能发送 一个业务的广播报文,而延迟发送其他业务的广播报文,或者直接丢弃其他业务的广播报文, 从而影响了这些业务的发现和连接。如果电子设备配置的蓝牙芯片支持多路广播通道时,那 么在同一时刻电子设备上触发广播报文的数量大于当前可用的广播通道的数量时,也存在上 述冲突,影响其中部分业务的发现和连接。
在本申请的一些实施例中,电子设备可以合并同一业务的不同任务的广播报文和反向广 播报文。例如,用户在第一电子设备上触发了一次图片/文件/视频等的分享功能,那么第一电 子设备发送用于发现周围电子设备的广播报文(例如广播报文A)。当第一电子设备接收到第 二电子设备返回的第一个响应包(例如广播报文B)时,第一电子设备发送反向广播报文(例 如广播报文F)。如果用户在第一电子设备发送反向广播报文之前,又在第一电子设备上触发 了另一次的图片/文件/视频等的分享功能,那么第一电子设备响应于用户的触发操作,再次发 送用于发现周围电子设备的广播报文(例如广播报文A)。并且,第一电子设备发送反向广播 报文(例如广播报文F)和第二次发现用于发现周围电子设备的广播报文(例如广播报文A) 发送冲突。那么,在本申请实施例中,可以将两个广播报文进行合并,然后发送合并后的广 播报文。第二电子设备在接收到该合并后的广播报文后,解析可获得两个广播报文的内容(即 广播报文F和广播报文A)。由此可见,相较于现有技术,电子设备将两个广播报文进行合并 发送,保证了同业务的两个任务的并发,加速了该业务不同任务的发现与连接过程。
在一个具体的实现方式中,如图11所示,为广播报文中数据域中有效净荷(31字节) 部分的格式。由于用于发现的广播报文(例如广播报文A)以及反向广播报文(例如广播报 文F)中只有四个字段的内容不同,分别为发送端Btype(Sender Btype)、发送端BID(Sender BID)、接收端Btype(Receiver Btype)和接收端BID(Receiver BID)。具体的,用于发现的 广播报文(例如广播报文A)中发送端Btype(Sender Btype)和发送端BID(SenderBID) 中有内容,而接收端Btype(Receiver Btype)和接收端BID(Receiver BID)的内容为空。反 向广播报文(例如广播报文F)中发送端Btype(Sender Btype)和发送端BID(SenderBID) 中的内容为空,而接收端Btype(Receiver Btype)和接收端BID(Receiver BID)中有内容。 那么,合并这两个广播报文时,可以合并发送端Btype(Sender Btype)、发送端BID(Sender BID)、接收端Btype(Receiver Btype)和接收端BID(Receiver BID)中的内容,即四个字段 中都包含有内容。
在本申请的另一些实施例中,如果电子设备配置的蓝牙芯片支持多路广播通道,可以设 置预设数量N3个广播通道用于传输广播报文,以节省芯片资源。其中,N3个广播通道可以 对应N3个业务类型。后续,当电子设备有业务有待发送的广播报文时,该业务选择自身的 业务类型对应广播通道,用于发送广播报文。如果此时有业务类型相同的多个业务需要发送 广播报文,则可以复用该业务类型对应的广播报文。即,电子设备的应用层将这多个业务的 广播报文进行合并,然后通过该业务类型对应的广播通道发送合并后的广播报文,从而保证 及时发送各个业务的广播报文,减少各个业务的等待时间,加速多个业务的发现过程和连接 过程。换言之,不同业务类型的业务选择复用业务类型对应的广播通道。
例如,电子设备设置4个广播通道用于传输广播报文,其中这4个广播通道分别对应信 令类型、文本类型、文件类型以及视频类型的业务类型。可以理解,这4个业务类型的业务 特性不同,在速率、稳定性、持续时间上都有很大的差异,因此为这个业务类型匹配相对应 的广播通道。例如,优先提供通信质量最好的广播通道给信令类型的广播报文。如表一所示, 为4个业务类型的广播通道的说明。
表一
Figure BDA0003417531970000241
Figure BDA0003417531970000251
在一个具体的实现方式中,如图11所示,电子设备可以在Sender Btype(或Receiver Btype) 中指示广播报文的业务类型。Sender Btype(或Receiver Btype)为1个字节,包含8比特。 其中每一比特对应一个业务类型,Sender Btype(或Receiver Btype)一共可以指示8个业务 类型。例如,电子设备设置了4个业务类型,分别为信令类型、文本类型、文件类型以及视 频类型。那么,Sender Btype(或Receiver Btype)中从最低位开始的4比特依次用于指示信 令类型、文本类型、文件类型和视频类型。电子设备还可以在SenderBID(或Receiver BID) 指示广播报文的业务标识。Sender BID(或Receiver BID)为2个字节,包含16比特。其中 每一比特对应一个业务标识,Sender BID(或Receiver BID)一共可以指示16个不同的业务 标识。换言之,本申请实施例可以实现最多16个业务的广播报文合并成一个广播报文。电子 设备的应用层在上述Sender Btype、Sender BID、ReceiverBtype和Receiver BID指示业务类 型以及多个业务的业务标识后,再合并多个业务的可选的TLV(Optional TLV)字段的内容。
在本申请的又一些实施例中,如果电子设备配置的蓝牙芯片支持单路广播通道,或者, 虽然电子设备配置的蓝牙芯片支持多路广播通道,但芯片能力不足以提供预设数量N3个广 播通道用于传输广播报文。那么,可以合并其中部分的业务类型。换言之,多个业务类型复 用一个广播通道,那么在Sender Btype(或Receiver Btype)中可以指示两个或两个以上的业 务类型。换言之,两个或两个以上的业务类型的业务也可以合并在一条广播报文中。其他合 并的过程参考上文相关内容的描述,这里不再赘述。
如图12所示,为本申请实施例提供的一种复用广播通道的方法流程图,该流程包括:
S1201、业务应用生成待发送的广播报文。
S1202、确定业务应用是否指定该广播报文的业务类型。如果业务应用指定该广播报文的 业务类型,则执行步骤S1203。如果业务应用未指定该广播报文的业务类型,则执行步骤 S1210。
S1203、确定该指定的业务类型对应的广播通道是否已使用。如果已使用,则执行步骤 S1204。如果未使用,则执行步骤S1205。
S1204、更新该业务类型对应的广播通道待发送的广播报文,通过该广播通道发送更新后 的广播报文。
也就是说,将当前业务应用请求发送的广播报文,和该广播通道待发送的广播报文进行 合并。例如,在Sender BID(或Receiver BID)中增加指示本次业务应用对应的业务标识, 在Optional TLV中增加本次业务应用请求的广播报文中相应的内容。
本流程结束。
S1205、确定是否有待分配的广播通道。如有,执行步骤S1206。如没有,执行步骤S1207。
即,确定该电子设备配置的蓝牙芯片支持的广播通道数量是否全部占用。如果全部占用, 则没有待分配的广播通道,如果未全部占用,则还有待分配的广播通道。
S1206、开启有新的广播通道,用于发送该业务应用请求发送的广播报文。
并且,该广播通道后续用于传输本次业务应用指定的业务类型。
本流程结束。
S1207、确定是否有其他业务对应的广播通道正在使用。若有,则执行步骤S1208。若没 有,则执行步骤S1209。
S1208、更新某个其他业务类型对应的广播通道的待发送广播报文。
也就是说,复用其他业务类型对应的广播通道发送当前业务应用请求发送的广播报文。 即,将当前业务应用请求发送的广播报文和某个其他业务类型对应的广播通道待发送的广播 报文进行合并。例如,在Sender Btype(或Receiver Btype)中增加指示本次业务应用指定的 业务类型,在Sender BID(或Receiver BID)中增加指示本次业务应用对应的业务标识,在 Optional TLV中增加本次业务应用请求的广播报文中相应的内容。
本流程结束。
S1209、确定没有可用的广播通道。
也就是说,延迟发送当前业务应用请求发送的广播报文,或者不发送当前业务应用请求 发送的广播报文。
本流程结束。
S1210、确定是否有已使用的广播通道。如有,执行步骤S1211。如没有,执行步骤S1212。
S1211、从已使用的广播通道中选择一路复用。即,更新该选择的广播通道的待发送广播 报文,并发送更新后的广播报文。
本流程结束。
S1212、开启一路新的广播通道,用于传输当前业务应用请求发送的广播报文。
本流程结束。
需要说明的是,图12仅为本申请实施例提供的一种方法流程的示例,在其他一些实施例 中部分步骤可以省略,或者部分步骤可以合并,或者部分步骤的顺序可以交换。
(八)根据电子设备的状态触发电子设备的扫描/广播过程。
在现有技术中,很多电子设备是在上电或开机后就启动扫描/广播过程,例如,一些瘦设 备(例如空调、智能灯、智能手表、耳机等)在上电或开机后就广播自身的设备信息,以便 其他电子设备能够发现自己并连接自己。或者,有些电子设备在开启蓝牙功能后就启动扫描/ 广播过程,例如,手机在开启蓝牙功能后,就开始扫描,以便发现其他电子设备,连接到其 他电子设备。由此可见,电子设备在上电后或开机后或开启蓝牙功能后就开始扫描/广播过程, 耗电极大。
在本申请的一些实施例中,可以设置电子设备由业务触发扫描/广播过程。也就是说,电 子设备在开启蓝牙功能或上电后或开机后,不进行广播/扫描。当电子设备检测启动相应的业 务功能时,才进行广播/扫描。例如,手机/平板/智能电视等在开启蓝牙功能后,不进行扫描。 当检测到用户触发图片/文件/视频等的分享功能的操作,或者,检测到用户触发投屏功能的操 作,或者,检测到用户触发发现功能的操作时,手机/平板/智能电视等开始扫描。又例如,空 调、智能灯、智能手表、耳机等在上电或开机后,不进行广播。当空调、智能灯、智能手表、 耳机等检测到用户执行特定操作(如点击特定控件、按压特定按键、输入特定语音等)后, 空调、智能灯、智能手表、耳机等开始广播。
在本申请的另一些实施例中,当电子设备处于灭屏状态时,电子设备不进行扫描。或者, 当电子设备处于灭屏状态时,降低电子设备的扫描占空比。又或者,在电子设备处于灭屏状 态时,允许预设应用(例如智能家居应用等)进行扫描,非预设应用的其他应用(例如图库 应用等)不允许进行扫描。又或者,在电子设备处于灭屏状态时,允许预设业务(例如广播 报文中携带预设的serviceData或UUID或其他字段)进行扫描,非预设业务的其他业务不允 许进行扫描。又或者,在电子设备处于灭屏状态时,在接收到预设广播类型的广播报文(例 如广播类型为connectable的广播报文)后,才进行扫描。接收到其他广播类型的广播报文时, 不进行扫描。又或者,在电子设备处于灭屏状态时,电子设备仅接收发送给自己的广播报文, 并对该广播报文进行解析。又或者,在电子设备处于灭屏状态时,电子设备仅接收指定厂商 ID的广播报文时,才进行扫描。如此,可避免接收周围其他的广播报文被频繁唤醒的情况, 达到节省功耗的作用。
在本申请的又一些实施例中,当电子设备处于灭屏状态时,电子设备在回复时,回复单 向的广播报文(即广播报文中包含目的电子设备的地址),以避免其他不相关的电子设备被唤 醒,达到节省功耗的作用。类似的,在组网场景中,电子设备之间定时更新发现的电子设备 时,也采用多播的方式发送报文,减少其他不相关的电子设备被唤醒。可选的,如果电子设 备不想被唤醒,也可以采用多播的方式告知其他电子设备。那么,其他电子设备可以在群组 广播列表中将给该电子设备设置为不活跃状态。后续其他电子设备再发送多播报文时,不再 向该不活跃状态的电子设备发送报文。总而言之,电子设备尽量缩小接收到报文的电子设备 的范围,尽量避免其他不相关的电子设备因接收到广播报文被频繁唤醒,节省功耗。又或者, 处于不活跃状态的电子设备可以在接收到n个广播报文后,回复m个广播报文,其中,m、n 为正整数,且m<n。处于不活跃状态的电子设备减少发送。
在本申请的又一些实施例中,当电子设备启动了发现功能,电子设备显示了扫描到的周 围的电子设备的列表,但用户在预设时长T4内一直未选择的电子设备或者未操作连接控件, 电子设备终止本次的发现任务,进行功耗兜底。例如,用户在第一电子设备上点击图片/文件 /视频等的分享功能,第一电子设备执行发现流程(例如,如图4中的流程)。在第一电子设 备显示扫描到的电子设备(例如包括第二电子设备)后,用户一直未选择待连接的电子设备。 换言之,从用户在第一电子设备上点击图片/文件/视频等的分享功能后的预设时长T4(例如 10分钟)内,第一电子设备未接收到用户选择连接的电子设备后,第一电子设备终止本次的 连接任务。
(九)根据电子设备的业务场景、电子设备的芯片能力确定发现的电子设备的显示顺序。
当发现的电子设备较多时,可以根据电子设备的业务场景确定发现的电子设备的显示顺 序。这是因为,电子设备可以根据电子设备的业务场景确定用户意图,确定出用户的目标电 子设备,然后在发现的电子设备列表中优先显示目标电子设备的标识,便于用户能够快速选 择目标电子设备,从而加速连接过程,提升用户体验。
在本申请的一些实施例中,触发发现周围电子设备功能入口是图库应用/文件管理器/视频 播放器等,目标电子设备通常富设备,例如,PC、手机、电视、平板等。例如,用户在电子 设备的图库应用中触发分享图片的功能,则电子设备在显示发现的电子设备时,优先显示支 持P2P传输协议的电子设备的标识,例如PC、手机、电视、平板等的标识。又例如,用户在 电子设备的视频播放器中触发投屏功能,则电子设备在显示发现的电子设备时,优先显示具 有大屏的电子设备,例如PC、电视等的标识。
在本申请的另一些实施例中,触发发现周围电子设备功能入口是智慧生活应用等时,用 户意图通常是对某个或某几个电子设备发送命令控制,则电子设备在显示发现的电子设备时, 优先显示已在智慧生活应用中注册的设备,例如空调、智能灯、电视等。
在本申请的又一些实施例中,电子设备还可以借助自身其他的能力,确定用户的意图。 例如,电子设备配置有超宽带(Ultra Wide Band,UWB)芯片时,电子设备可以测到电子设 备当前的指向,以及自身与被发现的电子设备的距离等。那么,电子设备在显示发现的电子 设备时,可以优先显示电子设备当前指向的被发现的电子设备。或者,优先显示距离电子设 备较近的被发现的电子设备。又例如,电子设备配置有NAN芯片或蓝牙芯片或Wi-Fi芯片时, 电子设备可以测到与被发现的电子设备的距离,那么,电子设备在显示发现的电子设备时, 优先显示距离电子设备较近的被发现的电子设备。
其中,电子设备指向某个被发现的电子设备,是指将该电子设备的载体坐标系中特定的 坐标轴对准某个电子设备。以电子设备是手机为例。基于大部分用户使用手机的习惯,可定 义手机朝向(或者手机指向)为:平行于手机的长边,且沿手机的尾部指向顶部的方向。因 此,可以将手机的朝向称为手机的顶部朝向。通常情况下,手机的顶部为安装有前置摄像头、 红外发射器、听筒、光传感器、或者距离传感器等硬件的机身部分。手机的尾部为安装有麦 克风和扬声器的机身部分。
在本申请的又一些实施例中,一般在电子设备能在1秒内发现周围的电子设备,故在1s 内发现的电子设备可以按照接收的信号强度指示(Received Signal StrengthIndication,RSSI) 进行排序。RSSI越大,表示信号越强,越有利于加快传输速率。
当然,电子设备还可以将上述几种显示策略进行组合。例如,可以按照下述的优先级组 合上述显示策略:(1)1s内发现的电子设备按照如下的优先级进行排序:优先显示电子设备 当前指向的被发现的电子设备;然后显示距离电子设备位于一定距离范围内的发现的电子设 备;再按照用户触发发现周围电子设备功能的入口的显示策略进行排序;再按照RSSI的数值 大小进行排序。(2)1s后发现电子设备按照发现的时间顺序进行排序,且排列在1s内发现的 电子设备之后。
(十)复用连接通道。
如图13所示,为现有技术中多个业务复用连接通道的方法流程图,该流程包括:
S1301、第一电子设备发起业务1。
结合图3所示的蓝牙协议栈,第一电子设备的BLE应用层的应用程序接收到用户触发业 务1(例如为文件分享)的操作,应用程序向底层发起业务1的请求,并通过底层向第二电 子设备发起业务1的请求,
S1302、第一电子设备的GATT客户端1(简称为客户端1)与第二电子设备的GATT服务端(简称为服务端)连接成功。
BLE主机层接收到应用程序发起的业务1的请求,创建GATT客户端1,并与第二电子设备创建的GATT服务端(简称为服务端)连接成功。图中以步骤S1302a和步骤S1302b示 出。
S1303、服务发现成功。
客户端1可能给提供多个服务,第一电子设备从客户端1提供的服务中查找业务1对应 的服务。
需要说明的是,第一电子设备和第二电子设备执行发现过程,具体的发现流程可参考图 4所示流程,这里不再赘述。图13简化了该发现过程。当服务发现成功后,第一电子设备显 示发现的电子设备(包括第二电子设备)。用户在第一电子设备上选择连接第二电子设备,第 一电子设备和第二电子设备建立连接。
S1304、第一电子设备设置最大传输单元(maximum transmission unit,MTU)为32字节。
也就是说,业务1的数据包(也称为分享数据包)最大为32字节。
S1305、第一电子设备建立一个套接字(socket)。
S1306a第一电子设备自动生成序列号,向第二电子设备发送分享数据包。
S1306b、第二电子设备自动生成序列包,向第一电子设备回复相应的分享数据包。
S1307、第一电子设备发起业务2。
在第一电子设备和第二电子设备传输业务1的数据包的过程中,用户在第一电子设备上 还触发了业务2。其他内容参见步骤S1301中相关内容。
S1308、第一电子设备的GATT客户端2(简称为客户端2)与第二电子设备的GATT服务端(简称为服务端)连接成功。
BLE主机层接收到应用程序发起的业务2的请求,创建GATT客户端2,并与第二电子设备创建的GATT服务端(简称为服务端)连接成功。图中以步骤S1308a和步骤S1308b示 出。
S1309、服务发现成功。
客户端2可能给提供多个服务,第一电子设备从客户端2提供的服务中查找业务2对应 的服务。
S1310、第一电子设备设置最大传输单元(maximum transmission unit,MTU)为512字 节。
也就是说,业务2的数据包(也称为为投屏数据包)最大为512字节。
S1311、第一电子设备建立第二个套接字。
业务1和业务2的数据包大小不同,即MTU不同,需另外建立一个套接字,用于传输业务2的数据包。
S1312、第一电子设备向第二电子设备发送分享数据包(32字节)。
S1313、第二电子设备向第一电子设备发送投屏数据包(512字节)。
S1314、第二电子设备使用最新设置的MTU(512字节)向第一电子设备的客户端1回复了分享数据包。
由于第二电子设备仅能通过第一电子设备的MAC地址来区分数据包的发送方,无法区 分数据包是来自第一电子设备的哪个客户端。换言之,对于第二电子设备的服务端来说,第 一电子设备的客户端的标识为第一电子设备的MAC地址。由于第一电子设备的客户端1和 客户端2对应的是相同的第一电子设备的MAC地址,故第二电子设备的服务端无法区分第 一电子设备的客户端1和客户端2。因此,第二电子设备向第一电子设备回复数据包时,会 存在发错客户端的问题。例如,将业务2的数据包回复给客户端1,将业务1的数据包回复 给客户端2。
另外,第二电子设备服务端的MTU仅有一个。换言之,第二电子设备与第一电子设备 新协商好的MTU会覆盖之前协商好的MTU。这里,业务2过程协商的512字节将覆盖业务 1过程协商的32字节。换言之,后续第二电子设备向第一电子设备回复的数据包为不大于512字节,因此第二电子设备服务端向第一电子设备客户端1回复数据包时常常出错。
S1315、第一电子设备的客户端1接收第二电子设备回复的分享数据包(512字节),数 据接收异常。
由于第一电子设备的客户端1只能接收不小大于32字节的数据包,那么当接收到第二电 子设备服务端回复的512字节的分享数据包,接收数据出现异常。
综上可见,现有技术中多业务复用连接通道的过程中常出现错误,复用成功率不高。
为此,本申请实施例提供一种多业务复用连接通道的方法,电子设备设置一个通用的 MTU,即多个业务都可使用的MTU,并针对该通用的MTU可设置一个套接字。这样,当触发多个业务时,直接复用该通用的MTU,以及相应的套接字即可。这样,既有利于避免服务端发错客户端的问题,还可以节省多次设置MTU,以及创建多个套接字的时间,有利于加速连接过程。
另外,在一个连接通道上发送多个业务的数据包时,发送的数据包携带业务标识、序列 号。可选的,数据包还可以携带包头标记、优先级标记等。在一个示例中,电子设备的应用 层在向下发送数据包时,可以在数据包的包头中携带业务标识、序列号、包头标记、以及优 先级标记等。
其中,由于多个业务复用同一个套接字,因此电子设备接收到数据包后,可以根据其中 的业务标识向相应的业务返回数据包。可见,本申请实施例保证了多个业务复用连接通道时 也不会出现业务错乱的情况。
其中,序列号(seq),用于确定各个数据包的时序。例如,各个业务对应一个队列,每 个队列中,发送端发送的数据包的序列号奇数递增,接收端发送的数据包的序列号偶数递增。
其中,包头标记,用于标记该数据包是否为包头。如果为包头,该包头标记置第一值, 例如置1,如果为非包头,该包头标记置第二值,例如置0。接收端电子设备可以根据包头标 记对多个数据包进行拼接。
其中,优先级标记,用于标记同一业务中不同重要程度的数据包,例如,控制信令类的 数据包的优先级最高,高优先级的业务包,低优先级的业务包等。换言之,当连接通道的负 荷较重时,可以根据优先级标记优先发送优先级高的数据包,保证高效地数据传输。
如图14所示,为本申请实施例提供的一种多个业务复用连接通道的方法流程图,该流程 包括:
S1401、第一电子设备发起业务1。
结合图3所示的蓝牙协议栈,第一电子设备的BLE应用层的应用程序接收到用户触发业 务1(例如为文件分享)的操作,应用程序向底层发起业务1的请求,并通过底层向第二电 子设备发送业务1的请求,
S1402a、第一电子设备的GATT客户端(简称为客户端)第二电子设备创建的GATT服务端(简称为服务端)连接成功。
BLE主机层接收到应用程序发起的业务1的请求,创建GATT客户端,并与第二电子设 备创建的GATT服务端(简称为服务端)连接成功。图中以步骤S1402a和步骤S1402b示出。
S1403、服务发现成功。
客户端可能给提供多个服务,第一电子设备从客户端提供的服务中查找业务1对应的服 务。
需要说明的是,第一电子设备和第二电子设备执行发现过程,具体的发现流程可参考图 4所示流程,这里不再赘述。图14简化了该发现过程。当服务发现成功后,第一电子设备显 示发现的电子设备(包括第二电子设备)。用户在第一电子设备上选择连接第二电子设备,第 一电子设备和第二电子设备建立连接。
S1404、第一电子设备设置MTU,例如设置为512字节。
也就是说,业务1的数据包最大为512字节。需要说明的是,由于本申请实施例的多个 业务均使用一个通用的MTU,故考虑多个业务设置合适的MTU数值。
S1405、第一电子设备建立一个套接字。
S1406、第一电子设备发送数据包。
其中,该数据包中携带序列号、业务标识、包头标记以及优先级标记。例如,序列号为 1、业务标识为1(对应业务1的标识)、包头标记为1(表示该数据包为包头的数据包)、优先级标记为1。
S1407、第二电子设备接收到第一电子设备发送的数据包,并同步记录序列号和业务标识。
也就是说,第二电子设备根据业务标识和序列号,实时检测该业务的数据包是否发生丢 包。如果发现出现丢包,可以向对端请求相应的业务标识和序列号的数据包。可见,本申请 实施例提供的方法还解决了丢包的问题,保证业务的数据包的正确传输。
S1408、第二电子设备向第一电子设备回复数据包。
其中,该数据包中携带序列号和业务标识。例如,序列号为2、业务标识为1(对应业务 1的标识)。
S1409、第一电子设备接收到第二电子设备发送的数据包,并同步记录序列号和业务标识。
也就是说,第一电子设备根据业务标识和序列号,实时检测该业务的数据包是否发生丢 包。如果发现出现丢包,可以向对端请求相应的业务标识和序列号的数据包。可见,本申请 实施例提供的方法还解决了丢包的问题,保证业务的数据包的正确传输。
S1410、第一电子设备发送数据包。
其中,该数据包中携带序列号、业务标识、包头标记以及优先级标记。例如,序列号为 3、业务标识为1(对应业务1的标识)、包头标记为0(表示该数据包为非包头的数据包)、优先级标记为1。
S1411、第二电子设备接收到第一电子设备发送的数据包,并同步记录序列号和业务标识。
S1412、第二电子设备向第一电子设备回复数据包。
其中,该数据包中携带序列号和业务标识。例如,序列号为4、业务标识为1(对应业务 1的标识)。
S1413、第一电子设备接收到第二电子设备发送的数据包,并同步记录序列号和业务标识。
S1414、第一电子设备发起业务2。
在第一电子设备和第二电子设备传输业务1的数据包的过程中,用户在第一电子设备上 还触发了业务2。其他内容参见步骤S1401中相关内容。
S1415、第一电子设备确定已有连接,则直接复用已有的套接字。
可见,此时第一电子设备无需再次设置MTU,也无需创建新的套接字,加速了业务2的 连接过程。
S1416、第一电子设备发送数据包。
其中,该数据包中携带序列号、业务标识、包头标记以及优先级标记。例如,序列号为 1、业务标识为2(对应业务2的标识)、包头标记为1(表示该数据包为包头的数据包)、优先级标记为1。
S1417、第二电子设备接收到第一电子设备发送的数据包,并同步记录序列号和业务标识。
S1418、第二电子设备向第一电子设备回复数据包。
其中,该数据包中携带序列号和业务标识。例如,序列号为2、业务标识为2(对应业务 1的标识)。
S1419、第一电子设备接收到第二电子设备发送的数据包,并同步记录序列号和业务标识。
由此可见,第二电子设备或第一电子设备可以根据数据包携带的业务标识区分该数据包 为哪个业务的数据包,另外可以根据序列号确定各个业务中数据包的时序。从而保证多个业 务复用同一连接通道时也不会出现错误。
需要说明的是,上述流程是以同一电子设备发起多个业务为例说明复用连接通道的过程 的。在其他一些示例中,不同电子设备触发的多个业务也可以复用同一个连接通道。在一些 实施例中,为避免对端的两个电子设备同时发起连接,造成连接冲突进而连接失败的情况发 生。在第一电子设备确定发起业务1(即在图14中步骤S1401)之前或之后,或者,在第一 电子设备建立连接通道(如执行图14中步骤S1405)之前或之后,第一电子设备向第二电子 设备发送广播报文,用于告知第二电子设备,第一电子设备已发起连接请求。那么,第二电 子设备在预设时长T5内不再发起连接请求。如果用户在该预设时长T5内通过第二电子设备 发起连接请求,则第二电子设备不响应该连接请求,或者延迟响应该连接请求。可选的,第 二电子设备也可以提示用户,其他电子设备正在连接第二电子设备。可选的,在其他一些实 施例中,在第一电子设备建立连接通道(如执行图14中步骤S1405)之后,第一电子设备通 过已建立的套接字(即已建立的连接通道)向第二电子设备发送报文,用于告知第二电子设 备,第一电子设备已发起连接请求。总之,本申请实施例不限定第一电子设备告知第二电子 设备的方式和时机。
还需要说明的是,如果电子设备配置单个蓝牙芯片,则该单个蓝牙芯片可以建立一个连 接通道,在该连接通道上可以实现多业务复用该连接通道。在其他一些示例中,电子设备配 置有多个蓝牙芯片(例如两个蓝牙芯片),则在每个蓝牙芯片上可以建立一个连接通道,在该 连接通道也可以采用上述方法实现多业务复用一个连接通道。以电子设备配置两个蓝牙芯片 为例,电子设备可以在每个蓝牙芯片上建立一个连接通道,即共建立两个连接通道。那么当 电子设备触发高优先级的业务时,可以选择其中通信质量好的连接通道。当电子设备触发低 优先级的业务时,可以选择其中通信质量较差的连接通道。或者,根据电子设备上触发业务 请求的时间顺序,奇数请求选择其中一个连接通道,偶数请求选择另一个连接通道。又或者, 根据业务的类型进行划分,控制信令类的请求选择其中通信质量好的连接通道,传输耗时的 业务包的请求选择其中通信质量较差的另一个连接通道。又或者,根据发起方进行划分,本 端发起的业务请求,选择其中一个连接通道,对端发起的业务请求选择另一个连接通道。这 样,可以避免在同一个蓝牙芯片上两侧的电子设备同时发起建立连接通道的请求,造成连接 失败的问题。又或者,为两个蓝牙芯片上分别建立的连接通道设置不同的MTU,后续根据业 务的MTU选择相应的连接通道。这样,能够解决单个蓝牙芯片需要切换MTU时,需要断开 连接通道并重新建立连接通道造成连接耗时的问题。
另外,图14仅为本申请实施例提供的一种方法流程的示例,在其他一些实施例中部分步 骤可以省略,或者部分步骤可以合并,或者部分步骤的顺序可以交换。
还需要说明的是,上述实施例是以BLE连接为例进行说明的,在其他的无线连接方式(例 Wi-Fi)也使用本申请实施例提供的技术方案。例如,在Wi-Fi连接中,同类型的协议可以复 用同一个套接字,并且复用同一套接字的多个业务的数据包可以采用上述实施例提供的数据 包格式。即,数据包携带业务标识、序列号。可选的,数据包还可以携带包头标记、优先级 标记等。例如,Wi-Fi采用的协议例如传输控制协议(transmission controlprotocol,TCP)、用 户数据报协议(user datagram protocol、UDP)、视频数据报协议(video datagram protocol、 VDP)等。采用TCP的多个业务复用一个套接字,即复用一个连接。采用UDP的多个业务 复用一个套接字,即复用一个连接。采用VDP的多个业务复用一个套接字,即复用一个连接。 在Wi-Fi场景中,图14中的步骤S1402(包括S1402a、S1402b)至S1404可以省略。
另外,针对电子设备配置有多个Wi-Fi芯片,也可以在单个Wi-Fi芯片建立一个连接通 道,使用同一协议的多个业务可以复用一个连接通道。其他内容请参见关于蓝牙芯片的描述, 不再重复赘述。
(十一)电子设备的标识的加密处理
目前使用BR MAC地址、BLE MAC地址或唯一设备识别符(unique deviceidentifier, UDID)等作为电子设备的标识。由于BR MAC地址、BLE MAC地址或UDID的格式和内容 较为固定,容易被攻击,易被伪基站仿冒,存在安全性问题。在本申请实施例中,可以采用 预设加密算法的公钥对电子设备的标识(例如电子设备的序列号(serial number,SN)、国际 移动设备识别码(international mobile equipment identity,IMEI)、MAC地址等)进行取哈希 值,以哈希值中的部分字节作为电子设备的唯一标识。即,在发现和连接等过程中,携带的 电子设备的标识为哈希值中的部分字节。其中,预设加密算法例如可以是RSA3072、 HmacSHA256等加密算法。例如,可以取公钥和公钥的前16字节作为参数,对电子设备的 SN计算哈希值(hash code),取计算得到的哈希值的前20字节作为该电子设备的唯一标识。 由于哈希值不易识别以及不易被反解析,因此使用哈希值作为电子设备的唯一标识,提升了 电子设备发现过程以及连接过程中的安全问题。
在本申请的另一些实施例中,用户可以通过例如重启电子设备的方式,重新计算得到电 子设备的唯一标识,即重新使用公钥对电子设备的标识(例如SN、IMEI、MAC地址等)计 算哈希值,使用哈希值中的部分字节作为新的电子设备的唯一标识。可见,用户可以控制重 新生成电子设备的唯一标识,换言之电子设备的唯一标识可以变化,进一步加大被攻击的难 度,进一步提升电子设备发现过程以及连接过程中的安全问题。
在本申请的又一些实施例中,在电子设备连接过程中,还可以对发现的电子设备的标识 进行校验,而且保证连接的电子设备与发现时的电子设备是同一个电子设备,保证电子设备 的连接安全。
如图15所示,为本申请实施例提供的一种对发现过程中的电子设备的标识进行验证的方 法流程图,该流程包括:
S1501、第一电子设备发送广播报文A,用于发现周围的电子设备。
S1502、第二电子设备接收到广播报文A后,发送广播报文B。
其中,广播报文B中携带电子设备的名称、账号名、设备类型等信息。
S1503、第一电子设备缓存广播报文B。
S1504、第二电子设备在发送广播报文B的时长T1后,发送广播报文C。
其中,广播报文C中携带采用本实施例提供的方法生成的电子设备的标识。例如,根据 预设加密算法的公钥对电子设备的标识(例如SN、IMEI、MAC地址等)进行取哈希值,以哈希值中的部分字节作为电子设备的唯一标识。
S1505、第一电子设备根据广播报文B和广播报文C确定发现第二电子设备。
其中,步骤S1501-步骤S1505为第一电子设备与第二电子设备发现流程,具体内容可参 考图4中的相关内容的描述,这里不再赘述。
S1506、第一电子设备与第二电子设备建立BLE连接。
S1507、第一电子设备通过建立的BLE连接向第二电子设备发起计数器模式密码块链信 息认证码协议(counter mode with cipher-block chaining messageauthentication code protocol, CCMP)连接请求。
示例性的,第一电子设备请求第二电子设备的信息,例如第二电子设备支持的CCMP版 本号、摘要、是否支持加密校验等。
S1508、第二电子设备向第一电子设备回复响应。
示例性的,响应中携带第二电子设备支持的CCMP版本号、摘要、是否支持加密校验等。
S1509、第一电子设备向第二电子设备发送第一电子设备的CCMP版本号。
如果第二电子设备支持的版本号大于或等于CCMP 4.0,则执行步骤S1509。第二电子设 备支持的版本号等于CCMP 4.0,则按照相应的逻辑建立CCMP连接。
S1510、第二电子设备协商公共的CCMP版本号。
第二电子设备根据接收到的第一电子设备支持的CCMP版本号,以及自身支持的CCMP 版本号,协商两个电子设备共同使用的CCMP版本号。
S1511、第二电子设备向第一电子设备回复支持的CCMP版本号,即第二电子设备协商 的公共的CCMP版本号。
S1512、第一电子设备协商公共的CCMP版本号。
S1513、第一电子设备向第二电子设备发送第一电子设备的公钥A。
S1514、第二电子设备向第一电子设备回复第二电子设备的公钥B。
S1515、第一电子设备根据公钥B校验发现流程中接收到的电子设备的标识,已确定此 时连接的第二电子设备是否和发现流程中发现的电子设备是同一个电子设备。
S1516、当校验通过后,第一电子设备生成随机数,并用公钥B加密随机数,即生成AES Key,并向第二电子设备发送该AES Key。
S1517、第二电子设备接收到第一电子设备发送的AES Key,进行解密得到随机数。然后, 用公钥A加密随机数,即生成回复给第一电子设备的AES Key。
S1518、第二电子设备向第一电子设备AES Key。
S1519、第一电子设备解密AES Key得到随机数。然后,第一电子设备确定解密得到的 随机数是否与自己发送的随机数相同。
如果相同,则验证通过,第一电子设备和第二电子设备建立CCMP连接,而后可以进行 通信。
需要说明的是,图15仅为本申请实施例提供的一种方法流程的示例,在其他一些实施例, 例如采用不同的协议时,上述流程中部分步骤可以省略,或者部分步骤可以合并,或者部分 步骤的顺序可以交换。
(十二)连接重试
请参考图14,第一电子设备和第二电子设备建立连接的过程包括3个阶段:阶段1、第 一电子设备GATT客户端与第二电子设备GATT服务端的连接阶段。阶段2、服务发现阶段。阶段3、设置MTU阶段。在现有技术中,阶段1至阶段3任一个阶段出现异常时,第一电子 设备都将确认连接失败。如果希望再次进行连接,则用户需要重新在第一电子设备触发连接 操作,那么第一电子设备和第二电子设备再次执行一遍建立连接过程(包括3个阶段)。其中,再次执行一遍建立连接过程一般耗时10s。
在本申请的一些实施例中,在第一电子设备和第二电子设备建立连接的过程中,针对阶 段1的连接异常的情况,第一电子设备和第二电子设备自动重试,重试次数不超过预设次数 1(例如3次),并且,第一电子设备处于阶段1的总时长控制在预设时长(例如4s)内。针 对阶段2出现异常的情况,第一电子设备和第二电子设备自动重试,重试次数不超过预设次 数2(例如1次),并且,第一电子设备处于阶段2的总时长控制在预设时长(例如4s)内。 这是因为:阶段1中第一电子设备GATT客户端与第二电子设备GATT服务端的连接超时,以及阶段2发现异常是可能通过重试进行恢复的,而阶段3是不可以恢复的。换言之,本申请实施例提供的技术方案通过对阶段1和阶段2的可恢复的异常进行重试,提升在本次连接的成功率。并且,通过控制第一电子设备处于阶段1和阶段2的总时长,从而使得重试的方法相较于用户重新触发连接的方法,节省连接时间,以加速连接过程。
在本申请的另一些实施例中,在第一电子设备向第二电子设备发送发现请求报文(例如 图4中的广播报文A)时,可以在发现请求报文中携带的服务标识。例如,第一电子设备可 以通过AdvertiseData.Builder的addServiceUuid(ParcelUuid serviceUuid)的API在请求报文 中添加服务标识。相应的,第二电子设备可以通过getServiceUuid()的API从广播的发现请 求报文中解析出业务标识。换言之,在发现过程中第一电子设备就可以向第二电子设备请求 该服务标识对应的服务。那么,在连接过程中,在第一电子设备GATT客户端与第二电子设 备GATT服务端的建立连接后(即执行阶段1后),直接设置MTU阶段(即执行阶段3)。换 言之,在阶段1时第一电子设备和第二电子设备已实现服务发现成功,即本次连接过程中无 需执行阶段2,由此加速了连接过程。
(十三)发现过程中确定下线的电子设备。
在本申请的一些实施例中,第一电子设备在发现第二电子设备后,如果在发现后的预设 时长T7(例如4s)内未接收到第二电子设备发送的广播报文时,将确定第二电子设备下线, 即在发现的电子设备的列表中不再显示第二电子设备的标识。例如,第一电子设备在发现过 程中,记录接收到的广播报文的发送方的标识,以及时间戳。其中时间戳为当前时间与接收 时间的差值。如果检测到第二电子设备发送的广播报文的时间戳大于预设时长T7(例如4s), 则第一电子设备确定第二电子设备下线,即在发现的电子设备的列表中不再显示第二电子设 备的标识。又例如,第一电子设备在接收到第二电子设备发送的广播报文后,启动预设时长 T7的定时器。在定时器未达到预设时长T7内,再次接收到第二电子设备发送的广播报文, 则定时器清零,重新开始计时。在定时器达到预设时长T7,则认为第一电子设备在预设时长 T7一直未接收到第二电子设备广播报文,确定第二电子设备下线,即在发现的电子设备的列 表中不再显示第二电子设备的标识。
如此,避免当第二电子设备不满足连接条件时,仍然出现在发现列表中,误导用户选择 连接的电子设备。
可选的,如果用户在第一电子设备上具体的业务上触发发现周围电子设备的,则第一电 子设备还可以根据接收到的广播报文的发送方的标识以及业务标识确定被发现的电子设备是 否下线。例如,用户在第一电子设备的图库应用中触发分享图片的功能,则第一电子设备记 录接收到的广播报文的发送方的标识,业务标识(例如分享图片业务的标识)以及时间戳。 其中时间戳为当前时间与接收时间的差值。如果检测到第二电子设备发送的,且业务标识为 分享图片业务的标识的广播报文的时间戳大于预设时长T7(例如4s),则确定第二电子设备 下线,即在发现的电子设备的列表中不再显示第二电子设备的标识。又例如,第一电子设备 在接收到第二电子设备发送的,且携带分享图片业务的标识的广播报文后,启动预设时长T7 的定时器。在定时器未达到预设时长T7内,再次接收到第二电子设备发送的,且携带分享图 片业务的标识的广播报文,则定时器清零,重新开始计时。在定时器达到预设时长T7,则认 为第一电子设备在预设时长T7一直未接收到第二电子设备发送的,且携带分享图片业务的标 识的广播报文,确定第二电子设备下线,即在发现的电子设备的列表中不再显示第二电子设 备的标识。
如此,避免当第二电子设备不满足连接条件时,仍然出现在发现列表中,误导用户选择 连接的电子设备。
在本申请的又一些实施例中,第一电子设备还可以为不同设备类型的电子设备设置不同 的预设时长T7。例如,被发现的电子设备是PC时,预设时长T7设置为6s;被发现的电子 设备是手机时,预设时长T7设置为4s。这是考虑到不同设备类型的电子设备的广播占空比 不同,有利于提高下线的准确性。
在本申请的又一些实施例中,第一电子设备还可以为是否为首次发现的电子设备设置不 同的预设时长T7。例如,首次被发现的电子设备对应的预设时长T7为18s,非首次发现的电 子设备对应的预设时长T7设置为6s或4s。
还需要说明的是,上述各个实施例提供的技术方案可以独立使用,也可以在方案不矛盾 的前提下进行任意的组合。
本申请实施例还提供一种芯片系统,如图16所示,该芯片系统包括至少一个处理器1601 和至少一个接口电路1602。处理器1601和接口电路1602可通过线路互联。例如,接口电路 1602可用于从其它装置(例如存储器)接收信号。又例如,接口电路1602可用于向其它装 置(例如处理器)发送信号。示例性的,接口电路1602可读取存储器中存储的指令,并将该 指令发送给处理器1601。当所述指令被处理器1601执行时,可使得电子设备执行上述实施 例中的第一电子设备或第二电子设备执行的各个步骤。当然,该芯片系统还可以包含其他分 立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种装置,该装置包含在电子设备(第一电子设备或第二电子设备) 中,该装置具有实现上述实施例中任一方法中电子设备(第一电子设备或第二电子设备)行 为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包 括至少一个与上述功能相对应的模块或单元。例如,发送模块或单元、接收模块或单元、处 理模块或单元、以及存储模块或单元等。
本申请实施例还提供一种计算机存储介质,包括计算机指令,当计算机指令在电子设备 (第一电子设备或第二电子设备)上运行时,使得电子设备(第一电子设备或第二电子设备) 执行如上述实施例中任一方法。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得 计算机执行如上述实施例中任一方法。
可以理解的是,上述第一电子设备或第二电子设备等为了实现上述功能,其包含了执行 各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所 公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软 件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于 技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法 来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。
本申请实施例可以根据上述方法示例对上述第一电子设备或第二电子设备等进行功能模 块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集 成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模 块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑 功能划分,实际实现时可以有另外的划分方式。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和 简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能 分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述 的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实 施例中的对应过程,在此不再赘述。
在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单 独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬 件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以 存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或 者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出 来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可 以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全 部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存 储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本 申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的 保护范围应以所述权利要求的保护范围为准。

Claims (8)

1.一种无线发现的通信系统,其特征在于,包括第一电子设备和第二电子设备,
所述第一电子设备,用于发送第一广播报文,所述第一广播报文用于发现所述第一电子设备周围的电子设备;
所述第二电子设备,用于响应于接收到所述第一广播报文,发送第二广播报文,所述第二广播报文包括所述第二电子设备的第一信息,其中所述第一信息包括设备标识、设备名称、登录账号、设备类型和业务标识中的一项或多项;
所述第一电子设备,还用于存储所述第二电子设备的所述第一信息;
所述第二电子设备,还用于在所述第二电子设备发送所述第二广播报文后的第一时长后,不等待针对所述第二广播报文的确认消息而发送第三广播报文,所述第三广播报文包括所述第二电子设备的第二信息,其中所述第二信息包括所述设备标识、所述登录账号、所述设备类型、设备能力和所述业务标识中的一项或多项,且所述第二信息和所述第一信息至少部分内容不同;
所述第一电子设备,还用于根据所述第二电子设备的所述第一信息和所述第二信息,确定发现所述第二电子设备。
2.根据权利要求1所述的通信系统,其特征在于,
所述第一电子设备,还用于存储所述第二电子设备的所述第二信息;
所述第一电子设备,还用于发送第四广播报文,所述第四广播报文用于发现所述第一电子设备周围的电子设备;
所述第二电子设备,还用于响应于接收到所述第四广播报文,发送第五广播报文,所述第五广播报文包括所述第二电子设备的所述第一信息;
所述第一电子设备,还用于根据所述第五广播报文中的所述第二电子设备的所述第一信息和存储的所述第二电子设备的所述第二信息,确定发现所述第二电子设备。
3.根据权利要求1或2所述的通信系统,其特征在于,
所述第一电子设备,还用于发送第六广播报文,所述第六广播报文用于提示所述第二电子设备交替发送所述第二电子设备的所述第一信息和所述第二电子设备的所述第二信息。
4.一种无线发现的方法,其特征在于,应用于第二电子设备,所述方法包括:
接收第一电子设备发送的第一广播报文,所述第一广播报文用于发现所述第一电子设备周围的电子设备;
发送第二广播报文,所述第二广播报文包括所述第二电子设备的第一信息,其中所述第一信息包括设备标识、设备名称、登录账号、设备类型和业务标识中的一项或多项;
在所述第二电子设备发送所述第二广播报文后的第一时长后,不等待针对所述第二广播报文的确认消息而发送第三广播报文,所述第三广播报文包括所述第二电子设备的第二信息,其中所述第二信息包括所述设备标识、所述登录账号、所述设备类型、设备能力和所述业务标识中的一项或多项,且所述第二信息和所述第一信息至少部分内容不同;其中,所述第二电子设备的所述第一信息和所述第二信息,用于所述第一电子设备确定发现所述第二电子设备。
5.一种无线发现的方法,其特征在于,应用于第一电子设备,所述方法包括:
发送第一广播报文,所述第一广播报文用于发现所述第一电子设备周围的电子设备;
接收第二电子设备发送的第二广播报文,所述第二广播报文包括所述第二电子设备的第一信息,其中所述第一信息包括设备标识、设备名称、登录账号、设备类型和业务标识中的一项或多项;
根据所述第二电子设备的所述第一信息查找所述第二电子设备的第二信息;其中所述第二信息包括所述设备标识、所述登录账号、所述设备类型、设备能力和所述业务标识中的一项或多项,且所述第二信息和所述第一信息至少部分内容不同;
根据所述第二电子设备的所述第一信息,以及查找到的所述第二信息,确定发现所述第二电子设备。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述第一电子设备发送第三广播报文,所述第三广播报文用于提示所述第二电子设备交替发送所述第二电子设备的所述第一信息和所述第二电子设备的所述第二信息。
7.一种电子设备,其特征在于,包括:处理器、存储器和无线通信模块,所述存储器、所述无线通信模块与所述处理器耦合,所述存储器用于存储计算机指令,所述处理器从所述存储器中读取所述计算机指令,以使得所述电子设备执行如权利要求4-6任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求4-6任一项所述的方法。
CN202111550896.7A 2021-05-14 2021-07-21 一种无线连接的方法以及电子设备 Active CN114363871B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2021105283952 2021-05-14
CN202110528395 2021-05-14
CN202110827479.6A CN115348568A (zh) 2021-05-14 2021-07-21 一种无线连接的方法以及电子设备

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN202110827479.6A Division CN115348568A (zh) 2021-05-14 2021-07-21 一种无线连接的方法以及电子设备

Publications (2)

Publication Number Publication Date
CN114363871A CN114363871A (zh) 2022-04-15
CN114363871B true CN114363871B (zh) 2023-03-03

Family

ID=81125430

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111550896.7A Active CN114363871B (zh) 2021-05-14 2021-07-21 一种无线连接的方法以及电子设备

Country Status (2)

Country Link
CN (1) CN114363871B (zh)
WO (1) WO2022237493A1 (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109618393A (zh) * 2019-02-01 2019-04-12 Oppo广东移动通信有限公司 通信控制方法、装置、移动终端及存储介质
CN110891298A (zh) * 2019-12-18 2020-03-17 惠州拓邦电气技术有限公司 一种蓝牙连接方法、装置、蓝牙设备及系统
CN111436038A (zh) * 2019-10-23 2020-07-21 珠海市杰理科技股份有限公司 蓝牙连接方法及系统、蓝牙主、从设备连接方法及蓝牙主、从设备
CN112449328A (zh) * 2019-08-30 2021-03-05 华为技术有限公司 一种蓝牙搜索方法、系统及相关装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3300304B1 (en) * 2015-09-16 2023-12-06 Guangdong Oppo Mobile Telecommunications Corp., Ltd. Method and device for adjusting communication parameters
CN111436039B (zh) * 2019-10-23 2023-05-09 珠海市杰理科技股份有限公司 蓝牙回连方法及系统、蓝牙主、从设备回连方法及蓝牙主、从设备
CN111246550A (zh) * 2020-01-07 2020-06-05 维沃移动通信有限公司 电子设备状态调整方法以及电子设备
JP7197533B2 (ja) * 2020-06-04 2022-12-27 オッポ広東移動通信有限公司 通信パラメータ調整方法及び装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109618393A (zh) * 2019-02-01 2019-04-12 Oppo广东移动通信有限公司 通信控制方法、装置、移动终端及存储介质
CN112449328A (zh) * 2019-08-30 2021-03-05 华为技术有限公司 一种蓝牙搜索方法、系统及相关装置
CN111436038A (zh) * 2019-10-23 2020-07-21 珠海市杰理科技股份有限公司 蓝牙连接方法及系统、蓝牙主、从设备连接方法及蓝牙主、从设备
CN110891298A (zh) * 2019-12-18 2020-03-17 惠州拓邦电气技术有限公司 一种蓝牙连接方法、装置、蓝牙设备及系统

Also Published As

Publication number Publication date
WO2022237493A1 (zh) 2022-11-17
CN114363871A (zh) 2022-04-15

Similar Documents

Publication Publication Date Title
US10917920B2 (en) Method and apparatus for connecting alternative communication means using bluetooth low energy (LE)
US10827334B2 (en) Method and apparatus for connecting devices using Bluetooth LE technology
US9930240B2 (en) Method and apparatus for controlling a camera by using Bluetooth communication in a wireless communication system
US10349253B2 (en) Method for transmitting and receiving data, and device therefor
US9794323B2 (en) Method and apparatus for performing object transfer service using bluetooth low energy in wireless communication system
US9781583B2 (en) Device and service discovery method, and device middleware
US10887762B2 (en) Method and apparatus for transmitting and receiving data using Bluetooth technology
US20180220335A1 (en) Method and device for connecting substitute communication means by using bluetooth low energy (le) technique
US20230345221A1 (en) Method for transmitting data in near field, device, and system
US20220286731A1 (en) Multimedia apparatus and cast method
US20170347229A1 (en) Method and apparatus for controlling a device using bluetooth technology
US20220417743A1 (en) Method, apparatus, and computer program for setting encryption key in wireless communication system, and recording medium for same
CN114363871B (zh) 一种无线连接的方法以及电子设备
US10299104B2 (en) Method for performing discovery in wireless communication system and device therefor
JP2018107680A (ja) 通信装置、通信方法、及びプログラム
CN115348568A (zh) 一种无线连接的方法以及电子设备
US20240049116A1 (en) Method for transmitting and receiving data and device for same in short-range wireless communication system
EP4270999A1 (en) Multicast/broadcast service communication method, apparatus and system
US11882533B2 (en) Method for transmitting audio data using short-range wireless communication in wireless communication system, and apparatus therefor
US20230103916A1 (en) Audio data reception method using short-range wireless communication in wireless communication system, and apparatus therefor
US20220256314A1 (en) Method, apparatus and computer program for broadcast discovery service in wireless communication system, and recording medium therefor
US10681759B2 (en) Paging schemes for peer-to-peer communications
US10349456B2 (en) Video communication system, video transmission terminal, video reception terminal, communication method, and recording medium
WO2023284862A1 (zh) 一种无线信道资源的管理方法、设备以及系统
WO2023011212A1 (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