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

设备发现方法、装置及系统

文献发布时间:2024-04-18 19:53:33


设备发现方法、装置及系统

技术领域

本申请涉及通信领域,尤其涉及设备发现方法、装置及系统。

背景技术

随着终端技术的发展,多个终端设备可以通过分布式组网实现多设备互联,执行分布式业务,以提供多样的服务。其中,分布式组网是多个设备之间通过标准的蓝牙、无线保真(wireless fidelity,WiFi)、以太网等方式建立起通信连接。分布式组网的一个重要环节是设备发现,设备发现过程可以基于短距通信技术来快速实现,从而建立设备之间的连接。

目前的设备发现方法为:第一设备获取目标设备的连接信息,根据该连接信息确定无法与该目标设备直连后向分布式网络中的其余设备(为便于描述,本申请描述为第二设备)发送设备发现请求消息。各个第二设备响应该广播回连该第一设备,与第一设备建立安全通道。第一设备分别通过各个安全通道与对应的第二设备交换设备信息。第一设备将获取到的各个第二设备的设备信息与目标设备的连接信息(如设备标识)匹配,从这些第二设备中确定目标设备。进而第一设备从目标设备反馈的设备信息中得到目标设备的连接地址,通过该连接地址与目标设备建立连接。

随着设备发现涉及的终端设备的数量越来越多,在现有的设备发现过程中,第一设备与周围各设备逐个进行建立连接、请求其设备信息并匹配的过程,耗费的时间会越来越长。此外,该过程能耗较高,难以适应分布式组网设备的数量快速增长的现状。

发明内容

本申请实施例提供一种设备发现方法、装置及系统,用于解决设备发现过程耗时较长、能耗高的问题。

为达到上述目的,本申请的实施例采用如下技术方案:

第一方面,提供一种设备发现方法,应用于系统(本申请中也可以描述为分布式集群)中,该系统包括第一设备和至少一个第二设备。该方法包括:第一设备向至少一个第二设备发送第一请求消息;其中,该第一请求消息包括目标设备的特征值,目标设备的特征值用于收到第一请求消息的设备将本机的特征值与目标设备的特征值进行匹配。之后,第一设备接收来自目标设备的响应消息。该响应消息为目标设备在将第一请求消息中的特征值与本机的特征值匹配成功后发送;该响应消息中包括目标设备的第二设备信息。

示例性的,所述特征值为第一设备信息;所述第一设备信息包括设备标识、设备类型、设备名称、登录所述设备的用户信息和业务标识中的一项或多项。可选的,可以将第一设备信息加密作为特征值。

可选的,特征值可以为第一设备从目标设备的电子标签中获取或者用户输入,可以为目标设备的部分设备信息,比如目标的设备标识等。第二设备信息可以为目标设备的更详尽的信息,比如除了电子标签中包含的信息以外的信息,比如目标设备的连接信息等。

这样,第一设备发送的第一请求消息中携带有目标设备的特征值。收到该请求消息的设备将该目标设备的特征值与本机的特征值进行匹配,只有匹配成功的目标设备向第一设备发出响应消息,因此可以避免第一设备与非目标设备建立连接。而现有技术中,针对每个接收到发现请求广播的第二设备,第一设备都需要和其交换设备信息并进行设备信息匹配从而从这些第二设备中确定出目标设备,该过程耗时较长。本申请提供的方法可以减少设备发现的耗时。

在一种可能的设计中,第二设备的数量为多个。那么,第一设备向至少一个第二设备发送第一请求消息,可以实现为:第一设备向多个第二设备发送广播报文,该广播报文用于承载第一请求消息。

示例性的,所述广播报文为蓝牙广播报文。

在一种可能的设计中,目标设备为所述至少一个第二设备中的一个。

在一种可能的设计中,第一请求消息中包括第一设备的连接信息。示例性的,该连接信息可以为蓝牙地址、网络互联协议(Internet protocol,IP)、IP+端口号、媒体访问控制(media access control,MAC)地址等。那么目标设备收到该第一请求消息后,向第一设备回复响应消息的方式可以包括以下两种:

第一种,第一设备接收目标设备根据第一设备的连接信息发送的连接请求,并根据所述连接请求与目标设备建立第一连接。进而,第一设备通过该第一连接接收目标设备发送的第一响应消息;该第一响应消息包括目标设备的第二设备信息。

在该实现方式中,目标设备先根据第一设备的连接信息回连第一设备,然后通过该连接向第一设备发送其本机的设备信息。

第二种,第一设备接收来自目标设备的第一响应消息。其中,该第一响应消息为目标设备根据第一设备的连接信息发送的连接请求。该第一响应消息中包括目标设备的第二设备信息。

在该实现方式中,目标设备根据第一设备的连接信息回连第一设备,并在连接请求中直接携带其本机的设备信息,这样目标设备直接在连接请求中携带本机的设备信息,而无需先建立连接再通过该连接再发送本机的设备信息,能够减少第一设备和目标设备的交互,进而进一步减少时延。

在有些场景下,系统中还包括至少一个第三设备;第三设备无法和第一设置直接通信,所述第一设备通过所述第二设备与位于子网内的第三设备通信。也即,第二设备作为代理设备可以在第一设备和第三设备之间转发消息。本申请中将第二设备以及能够与第二设备直接通信的第三设备描述为一个子网。该系统中包括至少一个子网。

在该场景下,目标设备有可能为第三设备,也即第一设备无法直接与目标设备通信。

那么,在目标设备为第三设备的场景下,第一设备接收来自目标设备的响应消息,主要是指第一设备接收目标第二设备转发的目标设备的设备信息,其中,目标第二设备为目标设备所在的子网内的第二设备。因此,第一设备接收来自目标设备的响应消息,可实现为:

第一设备接收目标第二设备发送的第三响应消息;该第三响应消息中包括目标设备的第二设备信息。

在一种可能的设计中,第一设备接收目标第二设备发送的第三响应也可以有两种实现方式。可选的,在一种实现方式中,第一设备接收目标第二设备根据第一设备的连接信息发送的连接请求,并根据所述连接请求与目标第二设备建立连接。进而,第一设备通过该连接接收目标第二设备发送的第三响应消息;该第三响应消息包括目标设备的第二设备信息。在该实现方式中,目标第二设备先根据第一设备的连接信息回连第一设备,然后通过该连接向第一设备发送目标设备的设备信息。可选的,在另一种实现方式中,第一设备接收来自目标第二设备的连接请求,可将该连接请求视为第三响应信息,进而在该连接请求中包括目标设备的第二设备信息。在该实现方式中,目标第二设备根据第一设备的连接信息回连第一设备,并在连接请求中直接携带目标设备的设备信息,这样目标第二设备直接在连接请求中携带目标设备的设备信息,而无需先建立连接再通过该连接再发送目标设备的设备信息,能够减少第一设备和目标第二设备的交互,进而进一步减少时延。

针对第一设备与其要发现的目标设备无法直接通信的场景,本申请中,第一设备可通过第二设备的代理发现服务,扩大发现设备的范围,发现到与第一设备位于不同子网的目标设备,使得设备发现技术方案可以应对更加现实、复杂的组网环境,实现更加普适性的设备发现能力。

在一种可能的设计中,为了实现上述方法,第一设备配置有第一预设协议;其中,该第一预设协议中的第一字段包括广播类型和特征码。具体的,广播类型为设备发现;特征码用于表示特征值的类型。该第一预设协议的第二字段包括特征值的取值。

第二方面,提供一种设备发现方法,应用于系统中,该系统包括第一设备和至少一个第二设备。该方法包括:第二设备接收来自第一设备的第一请求消息,该第一请求消息包括目标设备的特征值。若目标设备的特征值与本机的特征值匹配成功,则第二设备向第一设备发送第一响应消息;该第一响应消息包括目标设备的第二设备信息。

这样,第一设备发送的第一请求消息中携带有目标设备的特征值。收到该请求消息的设备将该目标设备的特征值与本机的特征值进行匹配,只有匹配成功的目标设备向第一设备发出响应消息,因此可以避免第一设备与非目标设备建立连接。而现有技术中,针对每个接收到发现请求广播的第二设备,第一设备都需要和其交换设备信息并进行设备信息匹配从而从这些第二设备中确定出目标设备,该过程耗时较长。本申请提供的方法可以减少设备发现的耗时。

在一种可能的设计中,第二设备的数量为多个。相应的,第二设备接收来自第一设备的第一请求消息,包括:第二设备接收来自第一设备的广播报文,该广播报文中携带有第一请求消息。

在一种可能的设计中,第一请求消息中包括所述第一设备的连接信息。那么,第二设备向第一设备发送第一响应消息,可以包括以下两种方式:

第一种,第二设备根据第一设备的连接信息与第一设备建立第一连接,通过该第一连接向第一设备发送所述第一响应消息。

在该实现方式中,第二设备作为目标设备先根据第一设备的连接信息回连第一设备,然后通过该连接向第一设备发送其本机的设备信息。

第二种,第二设备根据第一设备的连接信息向第一设备发送所述第一响应消息,该第一响应消息用于与所述第一设备建立第一连接。也即,该第一响应消息可以理解为回连请求。

在该实现方式中,第二设备作为目标设备根据第一设备的连接信息回连第一设备,并在连接请求中直接携带其本机的设备信息,这样目标设备直接在连接请求中携带本机的设备信息,而无需先建立连接再通过该连接再发送本机的设备信息,能够减少第一设备和目标设备的交互,进而进一步减少时延。

在有些场景下,系统中还包括至少一个第三设备;第三设备无法和第一设置直接通信,所述第一设备通过所述第二设备与位于子网内的第三设备通信。也即,第二设备作为代理设备可以在第一设备和第三设备之间转发消息。本申请中将第二设备以及能够与第二设备直接通信的第三设备描述为一个子网。该系统中包括至少一个子网。

在该场景下,目标设备有可能为第三设备,也即第一设备无法直接与目标设备通信。

那么,在一种可能的设计中,在该场景下,在第二设备接收来自第一设备的第一请求消息之后,所述方法还包括:

第二设备在确定开启代理功能的情况下,向与第二设备位于同一子网内的第三设备发送第二请求消息,该第二请求消息中包括目标设备的特征值。若获取到目标设备的第二设备信息,则第二设备向第一设备发送第三响应消息。其中,该第三响应消息中包括目标设备的第二设备信息。该目标设备的第二设备信息为与第二设备位于同一子网内的第三设备确定本机的特征值与所述目标设备的特征值匹配后由目标设备发送给第二设备。

可选的,第二设备在确定第一请求消息中携带的目标设备的特征值与本机的特征值不匹配的情况下执行该方案。

在一种可能的设计中,与第二设备位于同一子网内的第三设备的数量为多个。相应的,向与所述第二设备位于同一子网内的所述至少一个第三设备发送第二请求消息,包括:

向与第二设备位于同一子网内的所述至少一个第三设备发送广播报文,所述广播报文用于承载所述第二请求消息。

在一种可能的设计中,所述第二请求消息中包括所述第二设备的连接信息。那么,所述若获取到目标设备的第二设备信息,则第二设备向所述第一设备发送所述第三响应消息,可以实现为:

若收到来自目标设备的第二响应消息,则第二设备与第一设备建立第一连接,与目标设备建立第二连接。其中,第二响应消息为目标设备根据第二设备的连接信息发送的连接响应消息,用于与所述第二设备建立连接。

之后,第二设备通过第一连接接收第一设备的第三请求消息,该第三请求消息用于请求目标设备的信息。通过第二连接向目标设备转发所述第三请求消息以及接收目标设备发送的目标设备的第二设备信息。最后,第二设备再通过第一连接向所述第一设备发送所述第三响应消息。

在该实现方式中,在确定了目标设备后,第二设备分别与目标设备和第一设备建立连接,然后通过建立的连接传输目标设备的第二设备信息。

可选的,在其他实现方式中,目标设备可以向第二设备发送回连请求,在该回连请求中携带其设备信息;相应的,第二设备可以向第一设备发送回连请求,在该回连请求中携带目标设备的设备信息。

针对第一设备与其要发现的目标设备无法直接通信的场景,本申请中,第一设备可通过第二设备的代理发现服务,扩大发现设备的范围,发现到与第一设备位于不同子网的目标设备,使得设备发现技术方案可以应对更加现实、复杂的组网环境,实现更加普适性的设备发现能力。

在一种可能的设计中,所述第二设备中包含低功耗器件;所述低功耗器件中存储有本机的特征值。

在该实现方式中,可以实现在第二设备免唤醒处理器的情况下由低功耗器件进行特征值匹配,减少耗时,降低功耗。

在一种可能的设计中,所述特征值为第一设备信息;所述第一设备信息包括设备标识、设备类型、设备名称、登录所述设备的用户信息和业务标识中的一项或多项。

在一种可能的设计中,所述第二设备配置有第二预设协议;其中,所述第二预设协议中的第一字段包括是否开启代理功能;第二字段包括所述特征值的取值。

第三方面,提供一种设备发现方法,应用于系统中,所述系统包括第一设备、至少一个第二设备和至少一个第三设备;其中,所述系统中包括至少一个子网;每个子网中包括第二设备和第三设备;所述第一设备通过第二设备与位于子网内的第三设备通信。

该方法包括:

第三设备接收来自同一子网内的第二设备的第二请求消息;该第二请求消息包括目标设备的特征值。若目标设备的特征值与本机的特征值匹配成功,则第三设备向第二设备发送所述目标设备的第二设备信息。

在一种可能的设计中,第三设备的数量为多个。第三设备接收来自同一子网内的所述第二设备的第二请求消息,包括:第三设备接收来自同一子网内的所述第二设备的广播报文,所述广播报文用于承载所述第二请求消息;

在一种可能的设计中,第二请求消息中包括第二设备的连接信息。所述若目标设备的特征值与本机的特征值匹配成功,则第三设备向第二设备发送目标设备的第二设备信息,包括:

若目标设备的特征值与本机的特征值匹配成功,则第三设备根据第二设备的连接信息向第二设备发送第二响应消息。其中,该第二响应消息为目标设备根据第二设备的连接信息发送的连接响应消息,用于与第二设备建立连接。之后,第三设备与第二设备建立第二连接,然后,第三设备通过第二连接接收第二设备发送的第三请求消息,该第三请求消息用于获取第三设备的第二设备信息。之后,第三设备通过第二连接向第二设备发送第三设备的第二设备信息。

第四方面,提供一种电子设备。该电子设备包括:处理器和存储器,存储器与处理器耦合,存储器用于存储计算机可读指令,当处理器从存储器中读取计算机可读指令,使得电子设备执行第一方面以及第一方面任意一种可能的实现方式。

第四方面以及第四方面中任意一种实现方式所对应的技术效果,可参见上述第一方面、及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第五方面,提供一种电子设备。该电子设备包括:处理器和存储器,存储器与处理器耦合,存储器用于存储计算机可读指令,当处理器从存储器中读取计算机可读指令,使得电子设备执行第二方面以及第二方面任意一种可能的实现方式。

第五方面以及第五方面中任意一种实现方式所对应的技术效果,可参见上述第二方面及第二方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第六方面,提供一种电子设备。该电子设备包括:处理器和存储器,存储器与处理器耦合,存储器用于存储计算机可读指令,当处理器从存储器中读取计算机可读指令,使得电子设备执行第三方面以及第三方面任意一种可能的实现方式。

第六方面以及第六方面中任意一种实现方式所对应的技术效果,可参见上述第三方面及第三方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第七方面,提供一种设备发现系统,该系统包括第一设备和至少一个第二设备;其中,

所述第一设备,用于向所述至少一个第二设备发送第一请求消息;所述第一请求消息包括目标设备的特征值;所述目标设备的特征值用于收到所述第一请求消息的设备将本机的特征值与所述目标设备的特征值进行匹配。

所述第二设备,用于接收来自所述第一设备的第一请求消息;还用于若所述目标设备的特征值与本机的特征值匹配成功,则向所述第一设备发送第一响应消息;所述第一响应消息包括所述目标设备的第二设备信息。

在一种可能的设计中,所述系统中还包括至少一个第三设备;所述系统包括至少一个子网;每个子网中包括第二设备和第三设备;所述第一设备通过所述第二设备与位于子网内的第三设备通信。

第二设备,还用于在确定开启代理功能的情况下,向与所述第二设备位于同一子网内的第三设备发送第二请求消息,所述第二请求消息中包括所述目标设备的特征值;

第二设备,还用于若获取到所述目标设备的第二设备信息,则向所述第一设备发送第三响应消息;其中,所述第三响应消息中包括所述目标设备的第二设备信息;所述目标设备的第二设备信息为与所述第二设备位于同一子网内的第三设备确定本机的特征值与所述目标设备的特征值匹配后由所述目标设备发送给所述第二设备。

第七方面以及第七方面中任意一种实现方式所对应的技术效果,可参见上述第一方面、第二方面、第三方面及第一方面、第二方面、第三方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第八方面,本申请实施例提供一种电子设备,该电子设备具有实现如上述第一方面及其中任一种可能的实现方式中所述的设备发现方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应地软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

第八方面以及第八方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第九方面,本申请实施例提供一种电子设备,该电子设备具有实现如上述第二方面及其中任一种可能的实现方式中所述的设备发现方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应地软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

第九方面以及第九方面中任意一种实现方式所对应的技术效果,可参见上述第二方面及第二方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第十方面,本申请实施例提供一种电子设备,该电子设备具有实现如上述第三方面及其中任一种可能的实现方式中所述的设备发现方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应地软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。

第十方面以及第十方面中任意一种实现方式所对应的技术效果,可参见上述第三方面及第三方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第十一面,提供一种计算机可读存储介质。计算机可读存储介质存储有计算机程序(也可称为指令或代码),当该计算机程序被电子设备执行时,使得电子设备执行第一方面或第一方面中任意一种实施方式的方法;或者,使得电子设备执行第二方面或第二方面中任意一种实施方式的方法;或者,使得电子设备执行第三方面或第三方面中任意一种实施方式的方法。

第十一方面以及第十一方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,或者,参见上述第二方面及第二方面中任意一种实现方式所对应的技术效果,或者,参见上述第三方面及第三方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第十二方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行第一方面或第一方面中任意一种实施方式的方法;或者,使得电子设备执行第二方面或第二方面中任意一种实施方式的方法;或者,使得电子设备执行第三方面或第三方面中任意一种实施方式的方法。

第十二方面以及第十二方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,或者,参见上述第二方面及第二方面中任意一种实现方式所对应的技术效果,或者,参见上述第三方面及第三方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第十三方面,本申请实施例提供一种电路系统,电路系统包括处理电路,处理电路被配置为执行第一方面或第一方面中任意一种实施方式的方法;或者,处理电路被配置为执行第二方面或第二方面中任意一种实施方式的方法;或者,处理电路被配置为执行第三方面或第三方面中任意一种实施方式的方法。

第十三方面以及第十三方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,或者,参见上述第二方面及第二方面中任意一种实现方式所对应的技术效果,或者,参见上述第三方面及第三方面中任意一种实现方式所对应的技术效果,此处不再赘述。

第十四方面,本申请实施例提供一种芯片系统,包括至少一个处理器和至少一个接口电路,至少一个接口电路用于执行收发功能,并将指令发送给至少一个处理器,当至少一个处理器执行指令时,至少一个处理器执行第一方面或第一方面中任意一种实施方式的方法;或者,至少一个处理器执行第二方面或第二方面中任意一种实施方式的方法;或者,至少一个处理器执行第三方面或第三方面中任意一种实施方式的方法。

第十四方面以及第十四方面中任意一种实现方式所对应的技术效果,可参见上述第一方面及第一方面中任意一种实现方式所对应的技术效果,或者,参见上述第二方面及第二方面中任意一种实现方式所对应的技术效果,或者,参见上述第三方面及第三方面中任意一种实现方式所对应的技术效果,此处不再赘述。

附图说明

图1为本申请实施例提供的一种现有的设备发现方法的示意图;

图2为本申请实施例提供的一种设备静态标签的示意图;

图3为本申请实施例提供的一种场景示意图;

图4为本申请实施例提供的一种设备的结构示意图;

图5为本申请实施例提供的一种设备的软件系统的示意图;

图6为本申请实施例提供的一种设备发现方法的流程图;

图7为本申请实施例提供的一种设备发现方法的示意图;

图8为本申请实施例提供的另一种设备发现方法的流程图;

图9为本申请实施例提供的另一种设备发现方法的流程图;

图10为本申请实施例提供的第一设备的结构示意图;

图11为本申请实施例提供的第二设备的结构示意图;

图12为本申请实施例提供的第三设备的结构示意图。

具体实施方式

为了方便理解本申请实施例的技术方案,首先给出本申请相关技术的简要介绍或定义如下。

在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。另外,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。

随着终端技术的发展,多个终端设备可以通过分布式组网实现多设备互联,执行分布式业务,以提供多样的服务。其中,分布式组网是多个设备之间通过标准的蓝牙、无线保真(wireless fidelity,WiFi)、以太网等方式建立起通信连接。分布式组网的一个重要环节是设备发现,设备发现过程可以基于短距通信技术来快速实现,从而建立设备之间的连接。

如图1所示,现有技术提供的一种设备发现方法的流程具体包括如下步骤:

S101、第一设备预先获取目标设备的连接信息。

示例性的,目标设备上有如图2所示的静态标签,静态标签包含目标设备的连接信息。其中,该连接信息可以为第一类信息,例如:网络互联协议(Internet protocol,IP)、IP+端口号、媒体访问控制(media access control,MAC)地址等。该连接信息还可以为第二类信息,如一些属性信息,例如:设备的序列号(serial number,SN)或唯一设备识别码(unique device identifier,UDID)等。第一设备可以通过近场通讯(near fieldcommunication,NFC)碰一碰、二维码扫描、蓝牙靠近等短距通信技术读取静态标签中目标设备的连接信息。

针对上述第一类信息,第一设备可以直接根据该连接信息与目标设备连接,也即实现直连。针对上述第二类信息,第一设备无法与目标设备直连,还需要进一步进行设备信息的匹配过程,也即以下步骤:

S102、第一设备向包括目标设备的周围各设备(为便于描述本申请将这些设备描述为第二设备)发送设备发现请求消息,该设备发现请求消息用于请求发现目标设备。

S103、各个第二设备收到该广播后分别向第一设备发送第一响应消息,第一响应消息用于与第一设备建立连接。

S104、第一设备根据第一响应消息与第二设备建立连接。

S105、第一设备通过与第二设备之间建立的连接向第二设备发送请求消息,该请求消息用于请求第二设备的设备信息,如设备标识等。

S106、第二设备收到请求消息后向第一设备发出第二响应消息,第二响应消息包含第二设备本机的设备信息。

S107、第一设备将各个第二设备发送的第二响应消息中的设备信息与通过S101读取到目标设备的设备信息进行匹配,确认匹配成功的设备为目标设备。

S108、第一设备读取该目标设备发送的第二响应消息中包含的连接信息。

S109、根据该连接信息与目标设备建立直连。

需要说明的是,图1中仅示例性的以设备A作为第一设备(图中标记为第一设备A),设备B、C、D作为第二设备,以设备C作为目标设备进行说明。

在现有技术提供的上述方法中,第一设备需要与周围的各设备分别建立连接,并分别与各设备进行交互请求设备信息,将接收到的各设备的信息与目标设备的信息进行一一匹配。随着设备数量的增长,现有的设备发现方式,面临发现性能差,时延过长,功耗较大等问题。例如:随着鸿蒙操作系统(operation system,OS)生态的拓展,分布式组网作为鸿蒙分布式业务的基础底座,面临着越来越复杂的使用场景、日渐增多的设备类型和数量、以及基础通信协议的不稳定等诸多挑战。当前的方案无法满足鸿蒙分布式能力规模化部署对低功耗、低负载、高可靠可用的核心诉求。

为解决上述问题,本申请提供一种设备发现方法,该方法应用于由多个设备组成的系统中(本申请实施例也可以将该系统描述为分布式设备集群),多设备协同为用户服务的过程中。

在分布式设备集群中,多个设备之间通过WiFi、标准蓝牙、以太网、电力线通信(power line communication,PLC)等方式连接。

示例性的,分布式设备集群可以包括图3所示的智能手机、电视机、无线耳机、智能手表、智能手环、音响、个人电脑(personal computer,PC)(如笔记本电脑、台式电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)等)、平板电脑、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、物联网(internet ofthings,IoT)设备(如智能家居设备)。其中,IoT设备是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。

示例性的,IoT设备可以包括但不限于用于安防的报警器、智能门锁等设备;用于照明的智能台灯等设备;用于健康的新风系统、空调、冰箱、空气净化器、空气质量传感器等设备;用于厨电的洗碗机、消毒柜等设备;用于家装的电动窗帘等设备;或者用于清洁的扫地机器人等设备。

需要说明的是,本申请图3仅作为一种分布式设备集群架构示例,本申请并不限定分布式设备集群的具体架构。

例如,分布式设备集群中可以包括“1+8+N”终端产品。其中,“1+8+N”终端产品用于打造第五代移动通信技术(fifth-generation,5G)全场景智慧生活以及下一代等后续的移动通信技术。示例性的,“1”是指智能手机,即未来智慧生活的入口;“8”是指平板电脑、PC、可穿戴设备、高清(high-definition,HD)设备、人工智能(artificial intelligence,AI)音箱、耳机、AR/VR设备、车机设备;“N”泛指IoT设备,例如智能家居设备。

其中,在本申请实施例中,多设备协同是指多设备(如分布式设备集群中的终端设备)通过协作,提供跨平台、跨系统的服务。

例如,多设备协同可以提供多屏协作(multi-screen collaboration)的服务。示例性的,多屏协作服务可以如投屏(如视频投屏、图片投屏等)、远程屏幕控制等。作为一种示例,多屏协作的投屏方式可以包括但不限于同源投屏、异源投屏等方式,本申请实施例不限定。

又如,多设备协同可以提供文件共享。例如,通过设备共享服务可以实现多设备之间图片、视频、音频等文件的任意共享。又如,通过运动健康服务等设备共享服务可以实现可穿戴设备(如智能手表、智能手环等)与便携设备(如智能手机、平板电脑等)之间的运动数据(如速度、运动时间等)、身体指标(如心率、血压等)、睡眠指标(如入睡时刻、总睡眠时间、深度睡眠时间等)等的共享。

在本申请实施例中,多设备协同的必要环节是设备发现。例如,设备发现由发现设备发起,设备发现用于发现指定设备(即被发现设备),例如特定设备标识的设备、能提供特定服务的设备、登录同一账号的设备,以便被发现设备能够和发现设备协同,以提供投屏(如视频投屏、图片投屏等)、远程屏幕控制、投音、文件共享等服务。

其中,发现设备和被发现设备可以是分布式设备集群中的任意设备。例如,发现设备和被发现设备可以包括但不限于桌面型设备、膝上型设备、手持型设备、可穿戴设备、智能家居设备、计算设备、车载型设备、机载型设备、工业设备等。例如,智能手机、上网本、平板电脑、智能手表、智能手环、电话手表、PC、无线耳机、电视机、音响、智能相机、体感游戏机、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portablemultimedia player,PMP)、AR/VR设备、会话启动协议(session initiation protocol,SIP)电话、IOT终端设备、智慧城市(smart city)中的无线设备、智慧家庭(smart home)中的无线设备等,本申请不限定。

以图3所示分布式设备集群架构为例,发现设备和被发现设备可以是图3所示分布式设备集群中的智能手机、平板电脑、PC等任意设备。

由于分布式设备集群中,能够提供指定服务的设备可能有多个,因此以图3所示分布式设备集群架构为例,发现设备通过设备发现,能够发现的被发现设备可以包括图3所示分布式设备集群中的智能手机、平板电脑、PC等任意一个或多个设备。即,发现设备通过设备发现,能够发现一个或多个指定的被发现设备。

本申请实施例提供的设备发现方法可用于任一通信系统,该通信系统可以为短距通信系统、蜂窝通信系统(例如,长期演进(long term evolution,LTE)系统、新空口(newradio access technology,NR))、全球互联微波接入(worldwide interoperability formicrowave access,WiMAX)通信系统以及各种类型的下一代通信系统(例如,第六代(thesixth generation,6G)移动通信系统)等,不予限制。其中,短距通信系统可以为蓝牙通信系统、低功耗蓝牙通信系统、无线保真(wireless-fidelity,Wi-Fi)通信系统以及各种类型的下一代短距通信系统等,不予限制。

图4为本申请实施例提供的一种设备400的组成示意图,该设备400可以为分布式设备集群中的任一设备或者该设备中的芯片或者片上系统。如图4所示,该设备400包括处理器401,收发器402以及通信线路403。

进一步的,该设备400还可以包括存储器404。其中,处理器401,存储器404以及收发器402之间可以通过通信线路403连接。

其中,处理器401是中央处理器(central processing unit,CPU)、通用处理器网络处理器(network processor,NP)、数字信号处理器(digital signal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logic device,PLD)或它们的任意组合。处理器401还可以是其它具有处理功能的装置,例如电路、器件或软件模块,不予限制。

收发器402,用于与其他设备或其它通信网络进行通信。该其它通信网络可以为以太网,无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。收发器402可以是模块、电路、收发器或者任何能够实现通信的装置。

通信线路403,用于在设备400所包括的各部件之间传送信息。

存储器404,用于存储指令。其中,指令可以是计算机程序。

其中,存储器404可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(random accessmemory,RAM)或可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或其他磁存储设备等,不予限制。

需要指出的是,存储器404可以独立于处理器401存在,也可以和处理器401集成在一起。存储器404可以用于存储指令或者程序代码或者一些数据等。存储器404可以位于设备400内,也可以位于设备400外,不予限制。处理器401,用于执行存储器404中存储的指令,以实现本申请下述实施例提供的设备发现方法。

在一种示例中,处理器401可以包括一个或多个CPU,例如图4中的CPU0和CPU1。

作为一种可选的实现方式,设备400包括多个处理器,例如,除图4中的处理器401之外,还可以包括处理器407。

作为一种可选的实现方式,设备400还包括输出设备405和输入设备406。示例性地,输入设备406是键盘、鼠标、麦克风或操作杆等设备,输出设备405是显示屏、扬声器(speaker)等设备。

需要指出的是,设备400可以是台式机、便携式电脑、网络服务器、移动手机、平板电脑、无线终端、嵌入式设备、芯片系统或有图4中类似结构的设备。此外,图4中示出的组成结构并不构成对该设备的限定,除图4所示部件之外,该设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。

此外,本申请的各实施例之间涉及的动作、术语等均可以相互参考,不予限制。本申请的实施例中各个设备之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,不予限制。

本申请实施例还提供一种软件系统架构。如图5所示,该软件系统架构包括应用程序(application,APP)层501、设备管理(device manage,DM)模块502、通信模块503和存储模块504。

其中,应用程序层501包括一系列应用程序包,例如相机,图库,日历,通话,地图,导航,蓝牙,音乐,视频,短信息等应用程序。

应用程序层501与设备管理模块502之间通过设备管理接口(device manageapplication interface,DM API)505通信。

通信模块503,设备通过该通信模块503与其他设备交互。示例性的,该通信模块503具体可以实现为分布式软总线(distributed softbus)。设备可以通过分布式软总线与其他设备交互,例如:通过分布式软总线与其他设备之间交互报文。示例性的,该报文为用户数据协议(user datagram protocol,UDP)报文。该通信模块还可以是蓝牙模块等。

存储模块504,用于存储设备的一些数据和程序。其中,数据包括设备信息和用户信息等,可以存储在特定文件中。示例性的,该设备信息包括设备标识、设备厂商、设备型号等,该设备信息可以存储在开机启动文件等文件中;使用该设备的用户信息包括登录该设备的用户账户信息等,也可以存储在特定文件中。

本申请实施例中,当设备作为发现设备(也即需要发现其他设备的设备,前文所述的第一设备)时,该设备应用程序层501的应用程序指定要发现的目标设备的信息作为特征值。如:比如某个应用可以读取静态标签的值,把SN从静态标签读出来,调用DM发现这个SN的第二设备。再比如应用也可以配置好周边设备的UDID(可由应用的管理员配置),然后由APP发起针对特定UDID的发现。之后,应用程序层的应用程序可将该特征值通过DM API发送给设备管理模块502。之后,设备管理模块502通过通信模块503(例如蓝牙)将该特征值发送给其他设备。当设备作为被发现设备(前文所述的第二设备)时,设备管理模块502能够通过通信模块接收第一设备发送的发现请求消息,从存储模块504中读取设备信息和用户信息等本机信息,进而将读取到的本机信息与发现请求消息中携带的特征值进行比较,确定自身是否为第一设备要发现的目标设备。如果确定本机为目标设备,则本机从第一设备发送的广播头(header)中提取第一设备的连接地址(该连接地址可以为蓝牙、IP、MAC地址中的任意一个),根据该连接地址与第一设备建立连接;或者,如果确定本机为目标设备,则本机向第一设备回复响应广播,在该广播中携带本机的设备信息,从而将本机的设备信息回传给第一设备。

可选的,设备中如果包含低功耗器件,该低功耗器件中可以设置有存储模块。这样,在接收到其他设备的发现请求消息后,可以无需唤醒设备管理模块502,而是由低功耗器件将发现请求消息中携带的目标设备的特征值与本机特征值进行匹配。

为了实现本申请实施例提供的方法,本申请实施例中的设备可预先配置第一预设协议和第二预设协议。其中,当某个设备作为发现设备(前文所述第一设备)时,为了支持其功能,该设备可预先配置第一预设协议。当某个设备作为被发现设备(前文所述第二设备)时,为了支持其功能,该设备可预先配置第二预设协议。实际应用中,某个设备在一些场景下为发现设备,在另一些场景下为被发现设备。因此,其一般可预先同时配置第一预设协议和第二预设协议。

可选的,本申请实施例中将第一预设协议描述为基于短路径设备发现(short-path device discovery,SPDD)协议,该协议是在现有的发现协议的基础上进行改进,对现有协议中的一些自定义字段进行设置。该现有发现协议例如可以为蓝牙低功耗(bluetooth-low-energy,BLE)或者约束应用协议(constrained application protocol,CoAP)等。其中,BLE、CoAP等协议的具体实现可参考现有技术,此处不再赘述。

在一种可能的实现方式中,所述第一预设协议中的第一字段包括广播类型和特征码;所述广播类型为设备发现;所述特征码用于表示所述特征值的类型;所述第一预设协议的第二字段包括所述特征值的取值。

示例性的,以该SPDD协议是在BLE协议基础上进行改进为例,对BLE协议的能力(capablity)字段进行如下设置:

表1

如表1所示,SPDD协议中包括capablity filter字段,该字段的高2位的取值表示在特定的extension(此时为设备发现)的广播类型下具体的广播模式,一次只能发送一个特定模式,如00表示采用默认发现方式(例如:现有技术中的发现方式),01表示采用本申请实施例提供的发现方式;该字段的低6位则表示基于哪个特征来确定要发现的设备(本申请描述为特征码),如000010表示以sn这一特征值进行设备发现,对应的spdd serial number字段为该特征值的具体取值;000100表示以udid这一特征值进行设备发现,对应的spddudid number字段为该特征值的具体取值;001000表示以account这一特征值进行设备发现,对应的spdd account number字段为该特征值的具体取值。此外,特征值还可以为设备类型、设备名称、登录账号、业务标识等,第一设备发送的广播中携带的发现请求消息满足该协议的格式要求,其中特征值表示按照该特征值进行匹配。

在本申请的一些实施例中,有些设备作为代理设备可以将第一设备发送的请求消息转发给其他设备。这些设备实现该功能前提是其具体代理功能,因此,该协议还提供用于表明该设备是否开启代理功能的字段。示例性的,如表1中所示,spdd_discovery_proxy字段的取值用于表示是否启动代理发现功能;当该字段的取值为0时代表关闭代理功能,当该字段的取值为1时代表开启代理功能。

需要说明的是,TLV字段可以是将设备类型、设备标识、设备名称、业务标识等采用哈希等加密算法加密后得到。

在一种可能的实现方式中,所述第二设备配置有第二预设协议;其中,所述第二预设协议中的第一字段包括是否开启代理功能;第二字段包括所述特征值的取值。

示例性的,仍然以该SPDD协议是在BLE协议基础上进行改进为例,第二设备需要配置以下信息:

表2

该表2中各个字段的说明参考前文所述,此处不再赘述。

需要说明的是,该表2中的各个字段为设备本地配置。

以下将结合附图,对本申请实施例提供的一种设备发现方法作具体的介绍。如图6所示,本申请实施例提供的一种设备发现方法可以包括以下S601-S603。

S601、第一设备向至少一个第二设备发送发现请求消息。相应的,第二设备接收来自第一设备的发现请求消息。

可选的,第二设备的数量为多个,那么,第一设备向所述多个第二设备发送广播报文,该广播报文用于承载所述请求消息。

其中,发现请求消息包括第一设备预先获取的目标设备的特征值。目标设备的特征值用于表示第一设备要发现的设备(目标设备)所具备的特征,例如设备标识为某个标识,登录的用户账户为某个账户,厂商为某个厂商等。收到所述请求消息的设备可以将本机的特征值与所述目标设备的特征值进行匹配。与该特征值匹配的目标设备可以为一个或多个。

在一些实施例中,所述特征值为第一设备信息;所述第一设备信息包括设备标识、设备类型、设备名称、登录所述设备的用户信息和业务标识中的一项或多项。例如设备的序列号(serial number,SN)或唯一设备识别码(unique device identifier,UDID)等。

示例性的,目标设备上有包含其特征值的静态标签。第一设备可以通过NFC碰一碰、二维码扫描、蓝牙靠近等短距通信技术读取静态标签中目标设备的特征值。

第一设备获取目标设备的特征值,还可以为用户直接在第一设备中输入等其他方式。例如:第一设备中安装有多设备协同这一应用,用户打开该应用,在该应用提供的界面中输入要发现的目标设备的特征值,例如:登录账户为账户A。本申请实施例不限定第一设备获取目标设备的特征值的具体实现方式。

需要说明的是,第一设备预先获取目标设备的特征值的方法不限于上述示例,本申请对此不作限定。

可选的,在本申请实施例中,可以采用预设加密算法对设备的特征值(例如设备的序列号(serial number,SN)、国际移动设备识别码(international mobile equipmentidentity,IMEI)等)进行加密。其中,预设加密算法例如可以是RSA3072、HmacSHA256等加密算法。例如,在采用某个加密算法进行加密时,可以以该加密算法提供的公钥和公钥的前X个字节作为参数,对设备的SN计算哈希值(hash code),取计算得到的哈希值的前Y个字节作为该设备的唯一标识。由于哈希值不易识别以及不易被反解析,因此使用哈希值作为设备的唯一标识,提升了设备发现过程以及连接过程中的安全问题。

S602、第二设备将接收到的发现请求消息中的目标设备的特征值与本机的特征值进行匹配。

其中,本机的特征值存储在本地文件中,第二设备读取本地文件中存储的本机的特征值,并将发现请求消息中的目标设备的特征值与本机的特征值进行匹配。如果匹配成功,则表明该第二设备则为第一设备想要发现的设备,也即目标设备。那么,第二设备执行下述S603。

在本申请的一些实施例中,如果匹配失败,则第二设备丢弃所述发现请求消息。

可选的,第二设备配置有低功耗器件,那么可在低功耗器件中存储本机的特征值,进而由低功耗器件执行该S602以及后续步骤。这样,可以实现在设备免唤醒处理器的情况下由低功耗器件进行特征值匹配,减少耗时,降低功耗。

需要说明的是,如前文所述,本申请实施例中的特征值可以是设备信息,也可以是将设备信息加密后得到。

S603、第二设备向第一设备发送响应消息。相应的,第一设备接收来自第二设备的响应消息。

其中,响应消息包括目标设备也即匹配成功的第二设备的第二设备信息。匹配成功的第二设备可以直接回复响应消息,在响应消息中携带本机的设备信息,设备信息可以包括设备标识、连接信息,如IP地址、MAC地址等,本申请不做限定。

在本申请的一些实施例中,第二设备作为目标设备也可以与第一设备先建立连接,之后通过该连接,第二设备和第一设备之间交换设备信息。

具体的,第一请求消息中包括第一设备的连接信息。示例性的,该连接信息可以为蓝牙地址、网络互联协议(Internet protocol,IP)、IP+端口号、媒体访问控制(mediaaccess control,MAC)地址等。那么目标设备收到该第一请求消息后,向第一设备回复响应消息的方式可以包括以下两种:

第一种,第二设备作为目标设备根据第一设备的连接信息向第一设备发送连接请求。相应的,第一设备接收目标设备发送的连接请求,并根据该连接请求与目标设备建立第一连接。进而,第一设备通过该第一连接接收目标设备发送的第一响应消息;该第一响应消息包括目标设备的第二设备信息。

在该实现方式中,目标设备先根据第一设备的连接信息回连第一设备,然后通过该连接向第一设备发送其本机的设备信息。

第二种,第二设备作为目标设备根据第一设备的连接信息向第一设备发送第一响应消息,相应的,第一设备接收来自目标设备的第一响应消息。其中,该第一响应消息为目标设备根据第一设备的连接信息发送的连接请求。该第一响应消息中包括目标设备的第二设备信息。

在该实现方式中,目标设备根据第一设备的连接信息回连第一设备,并在连接请求中直接携带其本机的设备信息,这样目标设备直接在连接请求中携带本机的设备信息,而无需先建立连接再通过该连接再发送本机的设备信息,能够减少第一设备和目标设备的交互,进而进一步减少时延。

通过上述S602和S603,在接收到来自第一设备的设备发现请求消息的一个或多个第二设备中,只有匹配成功的第二设备向第一设备发出响应消息,匹配成功的第二设备即为第一设备要发现的目标设备。

之后,第一设备可读取该响应消息中的设备信息,如连接信息,第一设备根据该连接信息与目标设备建立连接,其具体实现可参考现有技术,此处不再赘述。

需要说明的是,为便于描述,本申请中还可将S601-S603中的发现请求消息描述为第一请求消息;将其中的响应消息描述为第一响应消息。

示例性的,如图7所示,设备A向周围设备发送设备发现请求消息(图中虚线),设备发现请求消息中携带有目标设备的特征值。设备B、设备C、设备D、设备E和设备F接收到广播后,分别将接收到的目标设备的特征值与本机的特征值进行匹配。设备B、设备C、设备D和设备F匹配不成功,则将广播丢弃。匹配成功的设备E与设备A交换设备信息(图中实线)。

示例性的,分布式集群中包括手机、智能冰箱、电视、PC、智能空调、智能音箱等设备。智能音箱上贴有静态标签,手机扫描该静态标签后,读取到智能音箱上标签中包含的设备信息,该设备信息为智能音箱的SN,不包含该智能音箱的连接地址。那么,手机无法和智能音箱直连,则手机向分布式集群中的各个设备发送广播,广播中携带智能音箱的SN。各个设备收到广播后,将广播中的SN与本机的SN进行匹配。经匹配,智能冰箱、电视、PC均匹配失败,则这些设备丢弃该广播。只有智能音箱匹配成功,那么智能音箱向手机发送响应消息,在该响应消息中携带其本机的设备信息,如连接地址等。手机收到该响应消息后仅与智能音箱建立连接,完成设备发现过程。

示例性的,分布式集群中包括手机、智能冰箱、电视、PC、智能空调、智能音箱等设备。其中,手机、PC、电视的登录账户都为账户A,智能空调的登录账户为账户B,智能音箱的登录账户为账户C。如果用户A想要通过手机与该用户所登录的其他设备交互,那么手机需要先发现PC和电视。采用本申请实施例的方法,手机向分布式集群中的所有设备发送广播,广播中携带的特征值为账户A。各个设备收到该广播后,由于智能空调和智能音箱的登录账户不是账户A,则丢弃该广播。电视和PC则向手机发送响应消息,该响应消息中包括其设备信息,手机可读取该设备信息分别与电视和PC建立连接,完成设备发现过程。

本申请实施例中,第一设备发送的设备发现请求消息中携带有目标设备的特征值,第二设备将该目标设备的特征值与本机的特征值进行匹配,只有匹配成功的第二设备向第一设备发出响应消息,因此可以避免第一设备与非目标设备建立连接。而现有技术中,针对每个接收到广播的设备,第一设备都需要和其交换设备信息、建立连接,该过程耗时较长。本申请提供的方法可以减少设备发现的耗时。

此外,如前文所述,如果第二设备具备低功耗器件,那么匹配过程可在低功耗器件上进行,免唤醒设备的处理器,能够进一步减少耗时,降低功耗。

在有些场景下,第一设备和目标设备无法直连,也即第一设备发送的发现请求消息无法直接到达目标设备,需要通过代理设备进行代理转发。在该场景下,分布式设备集群中包括第一设备、第二设备和第三设备。其中,第一设备与第三设备不能直接连接,第一设备与第二设备、第二设备与位于同一子网内的第三设备可以直接连接,连接方式包括蓝牙连接、WIFI连接、以太网连接、PLC等。在该场景下,部分或全部第二设备可以作为代理设备,作为代理设备的第二设备可以向与其位于同一子网内的第三设备转发第一设备发送的发现请求消息。例如,分布式集群中包含设备A、B、C、D、E、F、G等设备,其中设备B、C和D位于同一子网,E、F、G位于同一子网。A、B、E之间可以互相通信。那么,A作为第一设备如果想发现设备C,则A以广播方式发送的发现请求消息无法直接发送给C,而是A将该发现请求消息发送给B,由B作为代理设备将该发现请求消息转发给C和D。

基于该场景,如图8所示,本申请实施例提供的设备发现方法具体包括以下步骤:

S801、第一设备向第二设备发送第一请求消息。相应的,第二设备接收来自第一设备的第一请求消息,

其中,所述第一请求消息包括目标设备的特征值。

该步骤的具体实现可参考前述S601,此处不再赘述。

S802、第二设备将目标设备的特征值与本机设备的特征值进行匹配。

该步骤的具体实现可参考前述S602,此处不再赘述。

如果匹配成功则第二设备执行S803。

此外,如果第一请求消息中指示将该第一请求消息通过代理转发,那么第二设备开启了代理功能,则第二设备作为代理设备,将该发现请求消息转发给其他设备(本申请描述为第三设备)。第二设备收到第一设备发送的第一请求消息后,在第一请求消息指示将该请求消息通过代理转发给其他设备,且第二设备确定开启代理功能的情况下,第二设备直接将第一请求消息转发给与该第二设备位于同一子网内的第三设备。也即第二设备还要执行下述S804-S807。

S803、第二设备向所述第一设备发送第一响应消息;所述第一响应消息包括所述目标设备的第二设备信息。

该步骤的具体实现过程可参考前述S603,此处不再赘述。

S804、第二设备在确定开启代理功能的情况下,向与该第二设备位于同一子网内的第三设备发送第二请求消息。

其中,第二请求消息中同样包括目标设备的特征值。可选的,第二请求消息还可包括第二设备的连接信息等。

示例性的,第二设备可以通过广播发送所述第二请求消息。

其中,第二设备通过本地检查是否配置了代理发现配置项,以及代理发现服务是否处于开启状态。在第二设备的代理发现服务开启的状态下确定已开启代理功能。

S805、第三设备将接收到的第二请求消息中的目标设备的特征值与本机的特征值进行匹配。

该步骤的具体实现可参考前述S602,此处不再赘述。

如果匹配成功则该第三设备为目标设备,因此执行下述S806,如果匹配失败,则第三设备丢弃第二请求消息。

S806、第三设备向第二设备发送第二设备信息。相应的,第二设备接收第三设备的第二设备信息。

其中,本实施例中,该步骤所指的第二设备也可描述为目标第二设备。该目标第二设备是指与目标设备位于同一子网内的第二设备。

在接收到来自第二设备的第一请求消息中的一个或多个第三设备中,只有匹配成功的第三设备向第二设备发出响应消息,匹配成功的第三设备即为第一设备要发现的目标设备。

S807、第二设备向第一设备发送第三响应消息。相应的,第一设备接收来自第二设备的第三响应消息。

其中,第三响应消息包括目标设备的第二设备信息,例如设备标识、连接地址等。

在一些实施例中,匹配成功的第三设备可以直接回复第三响应信息(包含第三设备的第二设备信息)并由第二设备直接转发给第一设备;或者由第二设备和第一设备之间建立连接后,通过该连接转发给第一设备。

在另一些实施例中,匹配成功的第三设备作为目标设备也可以与第二设备建立连接,第二设备与第一设备建立连接。第三设备通过第二设备与第一设备交换设备信息。也即如图9所示,S806和S807可以实现为以下步骤:

S901、目标设备向第二设备发送第二响应消息,相应的,第二设备接收该第二响应消息。

其中,所述第二响应消息为所述目标设备根据所述第二设备的连接信息发送的连接响应消息,用于与所述第二设备建立连接。

S902、第二设备与第一设备建立第一连接,与目标设备建立第二连接。

S903、第二设备通过所述第一连接接收所述第一设备的第三请求消息,并通过所述第二连接向所述目标设备转发所述第三请求消息;其中,所述第二请求消息用于请求所述目标设备的信息。

S904、第二设备通过第二连接接收所述目标设备发送的第二设备信息(图中描述为设备信息)。

S905、第二设备通过所述第一连接向所述第一设备发送第三响应消息。

需要说明的是,本申请不限定第二设备执行特征值匹配和第三设备执行特征值匹配的过程的先后顺序。也即本申请不限定执行S804-S807的过程和执行S802的过程的顺序。

第二设备如果其本机的特征值匹配成功和/或与该第二设备位于同一子网内的一个或多个第三设备的特征值与目标设备的特征值匹配成功,则第二设备都会给第一设备回复响应消息。

在本申请实施例的另一些实施例中,如果特征值为设备标识等唯一标识某个特定设备的标识,则第二设备在执行S802,将本机的特征值与目标设备的特征值匹配成功后,说明该第二设备则为目标设备,无需转发给子网内的其他设备,也即S804-S807可以在第二设备将本机的特征值与目标设备的特征值匹配失败的情况下执行。

还需要说明的是,图8和图9中均以第二设备为1个,该第二设备和三个第三设备组成1个子网为例进行说明。实际应用中,第二设备可以有多个,有些第二设备可以作为代理设备与第三设备位于同一子网,有些第二设备则未与第三设备连接。作为代理设备的第二设备则都执行上述过程。

示例性的,手机、平板处于一个网络A,而平板和蓝牙耳机通过蓝牙直接连接(网络B),那么手机如果要访问蓝牙耳机,手机和蓝牙耳机之间无法直接连接,此时手机可以通过平板作为中间代理设备,即手机先和平板建立连接,平板和蓝牙耳机再建立连接,这样平板代理转发手机的发现广播,进行广播消息的转发和回传,以及连接传输的中转和回传,从而实现子网穿透,使手机可以发现不在同一子网的蓝牙耳机。

在本申请的上述实施例二提供的方法中,第一设备可通过第二设备的代理发现服务,扩大发现设备的范围,发现到与第一设备位于不同子网的目标设备,使得设备发现技术方案可以应对更加现实、复杂的组网环境,实现更加普适性的设备发现能力。

以上结合详细说明了本申请实施例提供的设备发现方法。以下详细说明本申请实施例提供的投屏装置。

在一种可能的设计中,图10为本申请实施例提供的第一设备的结构示意图。如图10所示,第一设备1000可以包括:收发单元1001和处理单元1002。

可选地,收发单元1001用于支持第一设备1000执行图6中的S601和S603;图8中的S801、S803。处理单元1002,用于支持第一设备1000执行图9中的S902。

其中,收发单元可以包括接收单元和发送单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。第一设备1000中的各个单元的操作和/或功能分别为了实现上述方法实施例中所述的设备发现方法的相应流程,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,为了简洁,在此不再赘述。

可选地,图10所示的第一设备1000还可以包括存储单元(图10中未示出),该存储单元中存储有程序或指令。当收发单元1001和处理单元1002执行该程序或指令时,使得图10所示的第一设备1000可以执行上述方法实施例中所述的设备发现方法。

图10所示的第一设备1000的技术效果可以参考上述方法实施例中所述的设备发现方法的技术效果,此处不再赘述。

除了以第一设备1000的形式以外,本申请提供的技术方案也可以为第一设备中的功能单元或者芯片,或者与第一设备匹配使用的装置。

在一种可能的设计中,图11为本申请实施例提供的第二设备的结构示意图。如图11所示,第二设备1100可以包括:收发单元1101和处理单元1102。

可选地,收发单元1101,用于支持第二设备1100执行图6中的S601和S603、图8中的S801、S803、S804、S806、S807,图9中的S901、S903、S904。

可选地,处理单元1102,用于支持第二设备1100执行图6中的S602、图8中的S802、图9中的S902。

其中,收发单元可以包括接收单元和发送单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。第二设备1100中的各个单元的操作和/或功能分别为了实现上述方法实施例中所述的设备发现方法的相应流程,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,为了简洁,在此不再赘述。

可选地,图11所示的第二设备1100还可以包括存储单元(图11中未示出),该存储单元中存储有程序或指令。当收发单元1101和处理单元1102执行该程序或指令时,使得图11所示的第二设备1100可以执行上述方法实施例中所述的设备发现方法。

图11所示的第二设备1100的技术效果可以参考上述方法实施例中所述的设备发现方法的技术效果,此处不再赘述。

除了以第二设备1100的形式以外,本申请提供的技术方案也可以为第二设备中的功能单元或者芯片,或者与第二设备匹配使用的装置。

在一种可能的设计中,图12为本申请实施例提供的第三设备的结构示意图。如图12所示,第三设备1200可以包括:收发单元1201和处理单元1202。第三设备1200可用于实现上述方法实施例中涉及的可信群组中已经与对端设备建立投屏连接的设备的功能。

可选地,收发单元1201,用于支持第三设备1200执行图8中的S804和S806,以及图9中的S901和S904。

可选地,处理单元1202,用于支持第三设备1200执行图8中的S805。

其中,收发单元可以包括接收单元和发送单元,可以由收发器或收发器相关电路组件实现,可以为收发器或收发模块。第三设备1200中的各个单元的操作和/或功能分别为了实现上述方法实施例中所述的设备发现方法的相应流程,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能单元的功能描述,为了简洁,在此不再赘述。

可选地,图12所示的第三设备1200还可以包括存储单元(图12中未示出),该存储单元中存储有程序或指令。当收发单元1201和处理单元1202执行该程序或指令时,使得图12所示的第三设备1200可以执行上述方法实施例中所述的设备发现方法。

图12所示的第三设备1200的技术效果可以参考上述方法实施例中所述的设备发现方法的技术效果,此处不再赘述。

除了以第三设备1200的形式以外,本申请提供的技术方案也可以为第三设备中的功能单元或者芯片,或者与第三设备匹配使用的装置。

本申请实施例还提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述任一方法实施例中的方法。

可选地,该芯片系统中的处理器可以为一个或多个。该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。

可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请实施例并不限定。示例性地,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型,以及存储器与处理器的设置方式不作具体限定。

示例性地,该芯片系统可以是现场可编程门阵列(field programmable gatearray,FPGA),可以是专用集成芯片(AP设备plication specific integrated circuit,ASIC),还可以是系统芯片(system on chip,SoC),还可以是中央处理器(centralprocessor unit,CPU),还可以是网络处理器(network processor,NP),还可以是数字信号处理电路(digital signal processor,DSP),还可以是微控制器(micro controllerunit,MCU),还可以是可编程控制器(programmable logic device,PLD)或其他集成芯片。

应理解,上述方法实施例中的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的设备发现方法。

本申请实施例还提供一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的设备发现方法。

另外,本申请实施例还提供一种装置。该装置具体可以是组件或模块,该装置可包括相连的一个或多个处理器和存储器。其中,存储器用于存储计算机程序。当该计算机程序被一个或多个处理器执行时,使得装置执行上述各方法实施例中的设备发现方法。

其中,本申请实施例提供的装置、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法。因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。

结合本申请实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应地软件模块组成,软件模块可以被存放于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(AP设备plication specific integrated circuit,ASIC)中。

通过以上的实施方式的描述,本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明。实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成;即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的。例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

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

计算机可读存储介质包括但不限于以下的任意一种:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

技术分类

06120116338127