具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面结合附图和具体实施例对本申请进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中在本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
参考图1所示,为本申请实施例提供的蓝牙连接建立方法的应用场景图。蓝牙连接建立方法应用在蓝牙设备10、电子设备20及服务器30构成的交互系统中。电子设备20接收蓝牙设备10发送的蓝牙广播数据,根据蓝牙广播数据生成密钥或从服务器30中获取密钥,并将密钥发送给蓝牙设备10进行认证。在接收到蓝牙设备10返回的认证成功信息后,电子设备20与蓝牙设备10进行通信,如此在电子设备20与蓝牙设备10通信时,实现用户对连接过程的无感知,并简化用户进行连接操作的流程。
需要说明的是,图1中蓝牙设备10以储能设备为例,电子设备20以手机为例,上述举例仅为示例性说明,实际应用中并不限于此。可以理解蓝牙设备10可以是具有蓝牙功能的物联网设备,包括但不限于例如移动储能设备、家庭储能设备、移动空调、家用空调、割草机、扫地机、智能配电面板等。电子设备20可以为平板电脑或个人电脑等终端设备。
参考图2所示,为本申请实施例提供的蓝牙连接建立方法的流程图。上述蓝牙连接建立方法可以应用于如图1所示的电子设备20中。如图2所示,蓝牙连接建立方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。如图2所示,本申请实施例中的蓝牙连接建立方法包括步骤201-206。
步骤201,接收蓝牙设备发送的蓝牙广播数据。
步骤202,显示蓝牙设备对应的图标。
步骤203,响应于用户对上述图标的操作,根据设备信息与蓝牙设备建立连接。
步骤204,若绑定标识为第一标识,则根据当前登录电子设备的目标用户的信息和设备信息向服务器发送密钥获取请求。
步骤205,接收服务器返回的密钥并将密钥发送至蓝牙设备进行认证。
步骤206,在接收到蓝牙设备返回的认证成功信息后,电子设备通过连接与蓝牙设备进行通信。
本申请实施例中图2之步骤201-206的具体实施内容请参考图3中蓝牙连接建立方法之步骤301-306的实施内容。图3描述了应用蓝牙连接建立方法的电子设备20与蓝牙设备10、服务器30的交互流程图。如图3所示,本申请实施例中的蓝牙连接建立方法包括步骤301-307。
步骤301,接收蓝牙设备发送的蓝牙广播数据。
在本申请的一实施例中,蓝牙设备10开启蓝牙功能后,蓝牙设备10广播蓝牙广播数据。蓝牙广播数据包括蓝牙设备10的设备信息及绑定标识。蓝牙设备10的设备信息用于表示蓝牙设备10的身份。例如,设备信息可以包括蓝牙设备10的产品序列号(SerialNumber, SN)、媒体存取控制位址(Media Access Control Address,MAC地址)等信息中的一种或多种。绑定标识用于表示蓝牙设备10是否被绑定。需要说明的是,绑定标识可以根据用户的需要进行设定,设定第一标识用于表示蓝牙设备已被绑定,设定第二标识用于表示蓝牙设备未被绑定。例如,协商广播数据中的预设字段为标识字段,标识字段的值可以为第一标识11或第二标识00,其中,标识字段的值为11表示蓝牙设备被绑定,标识字段的值为00表示蓝牙设备10未被绑定。
需要说明的是,此处,蓝牙设备10是否被绑定是指:蓝牙设备10之前是否已经与任意用户建立关联关系,此处的用户可以理解为用户账户。示例性的,若蓝牙设备10之前已经与某一电子设备建立过认证成功的蓝牙连接,则该电子设备可以向服务器发送上述蓝牙设备10的设备信息、密钥以及该电子设备当前登录的用户账户的信息,从而使服务器可以建立蓝牙设备10与该用户账户的关联关系。在绑定后,该蓝牙设备10发出的蓝牙广播数据中的绑定标识都将被置位为第一标识。同时,蓝牙设备10将以对应的密钥对后续建立的蓝牙连接进行认证,此时,不具有密钥的电子设备将无法连接该蓝牙设备10。
可以理解,蓝牙设备10上可以设置对应按钮,该按钮可以为实体按钮,或者,也可以为触摸屏显示的虚拟按钮。当蓝牙设备10检测到用户对该按钮执行了预设操作后,蓝牙设备10可以开启蓝牙广播功能。
相对应的,参考图4所示,图4为本申请实施例提供的用户界面40的示意图。在本申请的一实施例中,电子设备20检测到用户在用户界面40上开启蓝牙功能的选项401后,电子设备20可以监听周边蓝牙设备发送的蓝牙广播数据,从而接收蓝牙设备10发送的蓝牙广播数据。
在其他的一些实施例中,用户也可以通过其他方式触发电子设备20监听周围蓝牙设备发送的蓝牙广播数据。例如,在另一些实施例中,电子设备20也可以在检测到用户打开了特定的应用程序(Application,APP)后,开启蓝牙功能,监听周围蓝牙设备发送的蓝牙广播数据。本申请实施例对此不予限制。
步骤302,显示蓝牙设备对应的图标。
在电子设备20接收到上述蓝牙设备发送的蓝牙广播数据后,参考图4所示,电子设备20可以在用户界面40上显示蓝牙设备10的图标402。
需要说明的是,在实际的应用场景中,电子设备20可能接收不到蓝牙广播数据,也可能接收到一个或多个蓝牙设备10发送的蓝牙广播数据。
相对应的,当电子设备20接收不到蓝牙广播数据时,电子设备20可以不显示蓝牙设备10的图标。
当电子设备20接收到多个蓝牙设备10发送的蓝牙广播数据时,电子设备20可以显示多个蓝牙设备10的图标402。
步骤303,响应于用户对上述图标的操作,根据设备信息与蓝牙设备建立连接。
需要说明的是,电子设备20与蓝牙设备10当前的连接为临时连接,若后续蓝牙设备10对电子设备20的密钥验证失败后,则临时连接将被断开。
在本申请的一实施例中,电子设备20可以响应用户对图标402的点击操作(参考图4),与图标402对应的蓝牙设备20进行临时连接。
在本申请的一实施例中,电子设备20还响应用户的语音控制操作,与图标402对应的蓝牙设备20进行连接。例如,用户可以通过语音“连接XX”,操控电子设备20连接图标402对应的蓝牙设备20,或者通过语音“连接第一个”操控电子设备20连接图标402对应的蓝牙设备20。
步骤304,若绑定标识为第一标识,则根据当前登录电子设备的目标用户的信息和设备信息向服务器发送密钥获取请求。
在本申请的一实施例中,电子设备20接收到蓝牙广播数据后,从预设字段中读取到该绑定标识的值,若绑定标识为第一标识,则表明蓝牙设备已经被绑定,电子设备20需要对应的密钥才能与蓝牙设备建立稳定的蓝牙连接。此时,电子设备20根据当前登录电子设备20的目标用户的信息、和需要连接的蓝牙设备的设备信息向服务器30发送密钥获取请求。该密钥获取请求用于指示服务器30从目标用户所在的用户组对应的密钥中查询与设备信息关联的密钥。在本申请的一实施例中,用户组包括用户的信息,且用户组与密钥及设备信息关联。
目标用户是指电子设备20当前登录的用户账户对应的用户,目标用户的信息是指电子设备20当前登录的用户账户的信息,可以是用户名称、账户标识或其他信息,本申请对此不作限制。例如,用户A注册了账户XXX,服务器为该账户XXX分配了标识1,用户A在电子设备20上登录该账户XXX,则目标用户的信息可以是账户名称“XXX”,也可以是标识1。
在本申请的一实施例中,电子设备20登录有目标用户账户,电子设备可以通过目标用户账户访问服务器30,目标用户账户的信息即目标用户的信息。例如,用户A在电子设备20上登录了账户XXX,则电子设备20可以根据账户XXX的信息和前述获取到的蓝牙设备10的设备信息向服务器30发送密钥获取请求。
服务器30接收该密钥获取请求后,解析得到目标用户的信息和蓝牙设备10的设备信息,确定该目标用户所在的用户组,从用户组所对应的密钥中查询到与蓝牙设备20的设备信息对应的密钥,并将该密钥反馈给电子设备20。例如,将该密钥加密处理后,在发送给电子设备20的应答信息中,携带该加密处理后的密钥。
相对的,服务器30也可能未查询到蓝牙设备20对应的密钥。此时,服务器30可以不对电子设备20进行应答,或者,服务器30也可以向电子设备20反馈密钥获取失败的提示信息。
步骤305,接收服务器返回的密钥并将密钥发送至蓝牙设备进行认证。
在本申请的一实施例中,电子设备20接收到服务器30返回的应答信息后,对其中加密的密钥后进行解密处理得到密钥。例如,服务器30从用户组所对应的密钥中查询到与蓝牙设备20的设备信息对应的密钥后用公钥对密钥进行加密,并将经过加密处理后的加密密钥发送给电子设备20。电子设备20根据公钥对应的私钥对加密密钥进行解密处理后得到密钥。电子设备20将密钥发送给蓝牙设备10,蓝牙设备10将使用该密钥对之前建立的临时连接进行认证。
步骤306,在接收到蓝牙设备返回的认证成功信息后,电子设备通过连接与蓝牙设备进行通信。
在本申请的一实施例中,蓝牙设备10可以将接收到密钥与存储在蓝牙设备10中的预设密钥进行比对。若接收到密钥与预设密钥一致,蓝牙设备10可以将认证成功信息发送给电子设备20。若接收到密钥与预设密钥不一致,蓝牙设备10可以将认证失败信息发送给电子设备20。
电子设备20在接收到蓝牙设备10返回的认证成功信息后,临时连接成为正式连接,电子设备20后续将通过该连接与蓝牙设备10进行通信。
在一些实施例中,若接收到密钥与预设密钥不一致,蓝牙设备10可以直接断开上述临时连接,电子设备20等待预设时间后,若未收到蓝牙设备10返回的认证结果且发现临时连接已被断开,则认为认证失败。
本申请上述实施例中,电子设备20将从服务器30的用户组中查询出的密钥发送给蓝牙设备10进行验证,并在接收到蓝牙设备10返回的认证成功信息后,实现电子设备20与蓝牙设备10的通信,如此在电子设备20与蓝牙设备10建立通信连接过程中,整个连接建立过程中采用加密认证,避免了未认证设备的干扰连接,又可以实现用户对加密过程的无感知,提升了用户体验。
在本申请的一实施例中,在步骤305之后,上述蓝牙连接建立方法还包括:
步骤307,在接收到蓝牙设备返回的认证失败信息后,电子设备断开与蓝牙设备建立的连接,并继续监听其他蓝牙设备发送的蓝牙广播数据。
本申请的一实施例中,电子设备20在接收到蓝牙设备10返回的认证失败信息后断开与蓝牙设备10建立的连接,如此保证了电子设备20与蓝牙设备10之间的通信安全。
后续,电子设备20可以继续监听其他蓝牙设备发送的蓝牙广播数据。
在本申请的一实施例中,在接收到蓝牙设备10返回的认证成功信息之后,上述蓝牙连接建立方法还包括:电子设备20根据密钥、设备信息以及目标用户的信息向服务器30发送第一指令。
需要说明的是,第一指令用于指示服务器30建立密钥与设备信息和目标用户对应的用户组的关联关系。服务器30根据第一指令建立密钥与设备信息和目标用户对应的用户组的关联关系。上述实施例中在服务器30建立了密钥、设备信息及目标用户对应的用户组的关联关系后,用户组中的用户(或用户设备)可以共享密钥及设备信息,并且,整个用户组的所有用户,只要有一个用户首次绑定了蓝牙设备,其他用户都可以直接从用户组中获取到该密钥连接蓝牙设备,满足了多用户共同使用蓝牙设备的场景,无需各个用户重复执行解绑和绑定操作。在避免未认证设备干扰连接的前提下,又进一步简化了用户的操作流程,无需用户解绑又重新绑定,提升用户体验的同时加快了连接速度。
在本申请的一实施例中,上述蓝牙连接建立方法还包括:在接收到认证失败信息后,断开与蓝牙设备建立的连接;继续监听蓝牙广播数据。
需要说明的是,蓝牙设备10在确定密钥认证失败后,将返回认证失败消息至电子设备20,电子设备接收到该认证失败消息后,将断开之前与蓝牙设备10建立的连接,同时,可以继续监听周围蓝牙设备发送的蓝牙广播数据,这里也包括蓝牙设备10发送的蓝牙广播数据。
可以理解的是,在电子设备20断开该连接前,蓝牙设备10也可以根据认证结果将该连接断开。
可以理解的是,在本申请的一实施例中,蓝牙设备10确定密钥认证失败时,在第一预设时间(如2秒)后断开与蓝牙设备10的连接,并重新发送广播数据。蓝牙设备10记录对同一电子设备20连续多次发送的密钥进行认证的认证失败次数,并在认证失败次数达到预设次数时,休眠第二预设时间后重新发送广播数据。也即,此处电子设备20无法在第二预设时间内再监听到蓝牙设备10发送的蓝牙广播。
上述实施例中在电子设备20连续多次对蓝牙设备10进行恶意连接时,蓝牙设备10能够记录对电子设备20连续发送的密钥进行认证的认证失败次数,并在认证失败次数达到预设次数时,休眠第二预设时间后重新发送广播数据,如此保证了蓝牙设备10与电子设备20之间的通信安全。
在本申请的一实施例中,在断开与蓝牙设备10建立的连接后,上述蓝牙连接建立方法还包括:显示第一提示信息,第一提示信息用于提示蓝牙连接失败。在本申请的一实施例中,蓝牙设备10在确定密钥认证失败后,向电子设备20返回认证失败信息。电子设备20断开与蓝牙设备10建立的连接后,或者在该连接已经被蓝牙设备20断开后,电子设备20根据蓝牙设备10返回的认证失败信息显示第一提示信息,第一提示信息用于提示蓝牙连接失败。在本申请的一实施例中,第一提示信息包括短信通知、语音通知、图形标记中的至少一种。例如,在接收到蓝牙设备10返回的认证失败信息后,电子设备20通过显示短信通知、语音通知、图形标记中的至少一种提示蓝牙连接失败,如此用户可及时获悉蓝牙连接失败信息,以便用户进行后续的蓝牙连接操作。
在本申请的一实施例中,上述蓝牙连接建立方法还包括:响应于新建用户组的操作,获取被选中的用户的信息;根据被选中的用户的信息,生成用户组创建指令;向服务器30发送用户组创建指令,用户组创建指令用于指示服务器30根据被选中的用户的信息创建新的用户组。
可以理解,上述用户组的建立过程可以在任意时间进行,例如,在用户首次与蓝牙设备建立连接前,或者建立连接后,本申请对此不作限制。
参考图5所示,为本申请一实施例中用户组创建界面50的示意图。用户组创建界面50包括创建选项501。参考图5,用户通过点击创建选项501触发新建用户组的操作。参考图6,电子设备20响应于用户点击创建选项501的操作显示一列表502。列表502包括至少一用户的信息。电子设备20获取用户在列表502中选中的用户信息,生成用户组创建指令,并向服务器30发送用户组创建指令。服务器30根据被选中的用户的信息创建新的用户组,并将用户组与电子设备20发送的密钥、蓝牙设备10的设备信息进行关联。本申请中创建的新的用户组中的用户可以共享密钥并与蓝牙设备10进行蓝牙连接,用户组中的其他用户都可以直接从用户组中获取到该密钥连接蓝牙设备,满足了多用户共同使用蓝牙设备的场景。
在本申请的一实施例中,在接收到蓝牙设备返回的认证成功信息之后,上述蓝牙连接建立方法还包括:将密钥及设备信息进行关联并存储在电子设备20的存储器中。
本申请中,在认证成功接收到蓝牙设备返回的认证成功信息后,电子设备20将密钥及设备信息关联存储,如此,后续可以直接从本地获取密钥而无需再从服务器获取,可以加快连接速度。
在本申请的一实施例中,蓝牙设备10还可以接受重置操作,将蓝牙设备10的绑定标识设置为第二标识及将上述密钥清除。
可以理解,该重置操作可以由用户在蓝牙设备10上操作响应的重置按钮触发,例如,蓝牙设备10设置重置按钮,当蓝牙设备10检测到用户对重置按钮执行了预设操作后将蓝牙设备10的绑定标识设置为第二标识及将预设密钥清除,如此蓝牙设备10根据重置操作能够将蓝牙设备10设定为未被绑定,方便了将蓝牙设备10解绑后与其他电子设备进行绑定连接。该重置操作也可以由用户在电子设备20的应用程序上通过响应的重置操作触发,该应用程序为蓝牙设备10对应的应用程序,用于对蓝牙设备10进行操控。可以理解是,此时,该重置操作可以由电子设备20发送至服务器后,由服务器发送至蓝牙设备。或者,该重置操作也可以由电子设备20直接发送至蓝牙设备。
参考图7所示,为本申请另一实施例提供的蓝牙连接建立方法的流程图。如图7所示,本申请实施例中的蓝牙连接建立方法包括步骤601-605。
步骤601,接收蓝牙设备发送的蓝牙广播数据。
步骤602,显示蓝牙设备对应的图标。
步骤603,响应于用户对上述图标的操作,根据设备信息与蓝牙设备建立连接。
本申请实施例中图7之步骤601-603与图3之步骤301-303相同,图7之步骤601-603的具体实施内容请参考图3中蓝牙连接建立方法之步骤301-303的实施内容,这里不再重复描述。
步骤604,若广播数据的绑定标识为第二标识,电子设备生成密钥并将密钥发送给蓝牙设备。
在本申请的一实施例中,电子设备20接收到蓝牙广播数据后,从预设字段中读取到该绑定标识的值,若绑定标识为第二标识,则表明蓝牙设备10未被绑定,且电子设备20首次与蓝牙设备10进行连接。电子设备20在首次与蓝牙设备10建立连接时,自动生成密钥,并将密钥发送给蓝牙设备10。例如,电子设备20根据自身的设备信息、蓝牙设备10的设备信息、电子设备20接收到蓝牙广播数据的时间信息中的至少一种信息生成密钥。再例如,电子设备20可以依据选择的一随机数生成密钥。
步骤605,在接收到蓝牙设备返回的认证成功信息后,电子设备通过连接与蓝牙设备进行通信。
在本申请的一实施例中,蓝牙设备10接收电子设备20发送的密钥,将密钥作为预设密钥,并直接将认证成功信息发送给电子设备20。电子设备20在接收到蓝牙设备10返回的认证成功信息后,通过连接与蓝牙设备10进行通信。
本申请的上述实施例中,在确定蓝牙设备10未被绑定时,蓝牙设备10无需将密钥与预设密钥进行比较,并直接向电子设备20返回认证成功信息以实现电子设备20与蓝牙设备10的通信,从而简化蓝牙设备10首次与电子设备20的连接过程。
在本申请的另一实施例中,在蓝牙设备10未被绑定时,蓝牙设备10也可以在与电子设备10建立连接后,向电子设备10发送密钥。电子设备20在接收到密钥后,可以向蓝牙设备10反馈密钥接收信息。蓝牙设备10接收到密钥接收信息后,可以向电子设备20返回认证成功信息。电子设备20在接收到蓝牙设备10返回的认证成功信息后,通过连接与蓝牙设备10进行通信。也即是说,在本申请实施例中,并不对密钥的生成方以及密钥生成方式进行限定。
参考图8所示,为本申请实施例提供的蓝牙连接建立装置100的结构示意图。蓝牙连接建立装置100可用于实现上述蓝牙连接建立方法。
具体地,蓝牙连接建立装置100包括接收模块11,显示模块12、连接模块13、请求模块14。
接收模块11接收蓝牙设备发送的蓝牙广播数据,蓝牙广播数据包括蓝牙设备10的设备信息及绑定标识,绑定标识用于表示蓝牙设备10是否被绑定。
显示模块12显示蓝牙设备10对应的图标。
连接模块13响应于用户对图标的操作,根据设备信息与蓝牙设备10建立连接。
若绑定标识为第一标识,请求模块14根据当前登录电子设备20的目标用户的信息和设备信息向服务器30发送密钥获取请求;其中,第一标识用于表示蓝牙设备10已被绑定,密钥获取请求用于指示服务器30从目标用户所在的用户组对应的密钥中查询与设备信息关联的密钥。
接收模块11接收服务器30返回的密钥并将密钥发送至蓝牙设备10进行认证。
连接模块13在接收到蓝牙设备10返回的认证成功信息后,通过连接与蓝牙设备10进行通信。
可以理解,蓝牙连接建立装置100与上述蓝牙连接建立方法属于同一发明构思,蓝牙连接建立装置100连接实现蓝牙连接建立方法的具体过程与上述实施例过程相同,此处不再赘述。
本申请还提供了一种计算机可读存储介质。该计算机可读存储介质存储多条指令,多条指令适于由处理器加载并执行,以实现上述蓝牙连接建立方法的相应步骤,如步骤201-206,步骤301-307,步骤601-605。
请参考图9所示,为本申请实施例提供的电子设备20的结构示意图。该电子设备20可包括至少一个处理器22、存储器21以及通信单元23。存储器21包括计算机可读存储介质,该计算机可读存储介质用于存储多条逻辑指令,通信单元23用于与蓝牙设备10或服务器30进行通信,处理器22可以运行该逻辑指令,以执行上述蓝牙连接建立方法。
可以理解,在一些实施例中,通信单元23至少包括蓝牙模块、网络模块等具有通信功能的模块,本申请对此不作限制。
其中,上述的计算机可读存储介质中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。
计算机可读存储介质可设置为存储软件程序、计算机可执行程序,如本申请实施例中的蓝牙连接建立方法对应的程序指令或蓝牙连接建立装置100中的模块。处理器22通过运行存储在计算机可读存储介质中的软件程序、指令或模块,从而执行功能应用以及图像处理,即实现上述实施例中的蓝牙连接建立方法。
在本申请实施方式中,计算机可读存储介质包括非易失性计算机可读存储器,例如磁盘、内存等。可以理解,计算机可读存储介质还可以包括其他非易失性计算机可读存储器,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)、至少一个闪存器件和/或其他非易失性固态存储器件。
在本申请实施方式中,处理器22可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器22是电子设备20的控制中心,可以利用各种接口和线路连接其他设备和/或系统/模块/单元,以向其他设备和/或系统/模块/单元的应用提供蓝牙连接建立功能。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。