CN107071709A - 一种与蓝牙设备的配对方法及装置 - Google Patents

一种与蓝牙设备的配对方法及装置 Download PDF

Info

Publication number
CN107071709A
CN107071709A CN201710219819.0A CN201710219819A CN107071709A CN 107071709 A CN107071709 A CN 107071709A CN 201710219819 A CN201710219819 A CN 201710219819A CN 107071709 A CN107071709 A CN 107071709A
Authority
CN
China
Prior art keywords
target bluetooth
facility information
information
bluetooth devices
mobile device
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.)
Granted
Application number
CN201710219819.0A
Other languages
English (en)
Other versions
CN107071709B (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.)
Feitian Technologies Co Ltd
Original Assignee
Feitian 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 Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201710219819.0A priority Critical patent/CN107071709B/zh
Publication of CN107071709A publication Critical patent/CN107071709A/zh
Application granted granted Critical
Publication of CN107071709B publication Critical patent/CN107071709B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种与蓝牙设备的配对方法及装置,属于通信领域。所述方法包括:扫描移动设备周围的蓝牙设备,从中选择目标蓝牙设备并连接;获取移动设备的第一设备信息及目标蓝牙设备的第二设备信息;根据第一设备信息和第二设备信息生成第一设备认证信息并发送给目标蓝牙设备,接收目标蓝牙设备返回的设备认证结果,如为配对信息,则通过移动设备显示配对信息,并获取目标蓝牙设备的按键状态信息,当获取到目标蓝牙设备的确认键被按下时,与目标蓝牙设备通信;如为认证成功,则与目标蓝牙设备通信;如为错误码,则断开连接,结束。本发明中的技术方案,不仅实现了防重放攻击,又缩短了移动设备与蓝牙设备建立通信的时间,提升了用户体验。

Description

一种与蓝牙设备的配对方法及装置
技术领域
本发明涉及通信领域,尤其涉及一种与蓝牙设备的配对方法及装置。
背景技术
在移动设备与蓝牙设备建立通信的过程中,首先需要完成两个设备的配对过程,现有技术中的蓝牙配对方法中,只要移动设备搜索到蓝牙设备就可以直接进行配对,存在重放攻击的危险,为此提出了用户参与配对过程的方法,即在移动设备与蓝牙设备配对的过程中需要用户参与按键确认后完成配对过程,两个设备方才可以通信,该方式有效的避免了重放攻击的危险;然而,该方式也并不完善,其延长了移动设备与蓝牙设备建立通信的时间,降低了用户体验。
发明内容
为解决现有技术的不足,本发明提供了一种与蓝牙设备的配对方法及装置。
一方面,本发明提供了一种与蓝牙设备的配对方法,包括:
步骤S1:扫描移动设备周围的蓝牙设备,从中选择目标蓝牙设备,连接所述目标蓝牙设备;
步骤S2:获取所述移动设备的第一设备信息及所述目标蓝牙设备的第二设备信息;
步骤S3:根据所述第一设备信息和所述第二设备信息生成第一设备认证信息,发送所述第一设备认证信息给所述目标蓝牙设备,接收所述目标蓝牙设备返回的设备认证结果,如所述设备认证结果为配对信息,则执行步骤S4;如所述设备认证结果为认证成功,则执行步骤S5;如所述设备认证结果为错误码,则断开连接,结束;
步骤S4:通过所述移动设备显示所述配对信息,并获取所述目标蓝牙设备的按键状态信息,当获取到所述目标蓝牙设备的确认键被按下时,执行步骤S5;
步骤S5:配对成功,与所述目标蓝牙设备通信,结束。
可选地,所述步骤S2之前,还包括:
判断所述移动设备与所述目标蓝牙设备是否已绑定,是则执行步骤S2;否则与所述目标蓝牙设备绑定后,执行步骤S2。
可选地,所述步骤S2中,所述获取所述移动设备的第一设备信息,具体为:获取所述移动设备中存有的设备标识符,将所述设备标识符转换为第一预设格式后作为第一设备信息。
可选地,所述获取所述移动设备中存有的设备标识符之前,还包括:判断所述移动设备中是否存有设备标识符,是则获取所述移动设备中存有的设备标识符;否则生成设备标识符并保存至移动设备中,获取所述移动设备中存有的设备标识符。
可选地,所述步骤S2中,所述获取所述移动设备的第一设备信息,具体为:获取所述移动设备的设备标识或者系统标识或者设备序列号。
可选地,所述获取所述移动设备的设备标识或者系统标识或者设备序列号,具体包括:
步骤A1:将所述设备标识、所述系统标识和所述设备序列号作为当前待获取设备信息;
步骤A2:获取所述当前待获取设备信息中的其中一个,判断是否获取成功,是则将其作为所述移动设备的第一设备信息,继续;否则将其从所述当前待获取设备信息中移除,执行步骤A3;
步骤A3:判断是否还有待获取设备信息,是则将所述待获取设备信息作为当前待获取设备信息,返回步骤A2;否则断开连接,结束。
可选地,所述步骤S2中,获取所述目标蓝牙设备的第二设备信息,具体为:向所述目标蓝牙设备发送获取第二设备信息指令,并接收所述目标蓝牙设备返回的第二设备信息;所述第二设备信息包括MAC地址和长期密钥。
可选地,所述步骤S3中,所述根据所述第一设备信息和所述第二设备信息生成第一设备认证信息,具体为:将所述第一设备信息、所述第二设备信息及预置的厂商信息生成第二预设格式的第一设备认证信息。
可选地,所述步骤S3中,所述发送所述第一设备认证信息给所述目标蓝牙设备之后,还包括:
步骤B:所述目标蓝牙设备判断自身与所述第一设备认证信息中含有的第一设备信息对应的移动设备是否配对过,是则将认证成功信息作为认证结果返回,否则生成配对信息并作为认证结果返回。
可选地,所述步骤S2中,所述发送所述第一设备认证信息给所述目标蓝牙设备之前,还包括:发送所述第一设备信息给所述目标蓝牙设备;
所述目标蓝牙设备根据所述第一设备信息、自身的第二设备信息和预置的厂商信息生成第二设备认证信息;
所述步骤B之前,还包括:所述目标蓝牙设备判断所述第一设备认证信息与所述第二设备认证信息是否匹配,是则继续;否则返回错误码。
可选地,所述步骤S4中,还包括:判断预设时间内是否获取到所述目标蓝牙设备的确认键被按下的按键信息,是则继续;否则断开连接,结束。
可选地,所述步骤S2之前,还包括:与所述目标蓝牙设备协商会话密钥;
所述步骤S3中,所述发送所述第一设备认证信息给所述目标蓝牙设备,具体为:使用所述会话密钥对所述第一设备认证信息加密得到第一设备认证信息密文,发送所述第一设备认证信息密文给所述目标蓝牙设备。
可选地,所述方法还包括:获取所述移动设备的附加信息,发送所述附加信息给所述目标蓝牙设备;
当用户按下所述目标蓝牙设备的确认键时,所述目标蓝牙设备显示所述附加信息。
另一方面,本发明还提供了一种与蓝牙设备的配对装置,包括:
扫描连接模块,用于扫描移动设备周围的蓝牙设备,从中选择目标蓝牙设备,连接所述目标蓝牙设备;
第一获取模块,用于获取所述移动设备的第一设备信息;
第二获取模块,用于获取所述目标蓝牙设备的第二设备信息;
第一生成模块,用于根据所述第一获取模块获取到的第一设备信息和所述第二获取模块获取到的第二设备信息生成第一设备认证信息;
发送模块,用于发送所述第一生成模块生成的第一设备认证信息给所述目标蓝牙设备;
接收模块,用于在所述发送模块发送第一生成模块404生成的第一设备认证信息给目标蓝牙设备之后,接收所述目标蓝牙设备返回的设备认证结果;
显示模块,用于当所述接收模块接收到的设备认证结果为配对信息时,通过所述移动设备显示所述配对信息;
第三获取模块,用于在所述显示模块通过所述移动设备显示所述配对信息之后,获取所述目标蓝牙设备的按键状态信息;
通讯模块,用于当所述第三获取模块获取到所述目标蓝牙设备的确认键被按下时,判定配对成功,与所述目标蓝牙设备通信;还用于当所述接收模块接收到的设备认证结果为认证成功时,判定配对成功,与所述目标蓝牙设备通信;
断开模块,用于当所述接收模块接收到的设备认证结果为错误码时,断开连接。
可选地,所述装置还包括:第一判断模块和绑定模块;
所述第一判断模块,用于判断所述移动设备与所述目标蓝牙设备是否已绑定;
所述第一获取模块,具体用于:当所述第一判断模块判断出所述移动设备与所述目标蓝牙设备已绑定时,获取所述移动设备的第一设备信息;
所述绑定模块,用于当所述第一判断模块判断出所述移动设备与所述目标蓝牙设备未绑定时,与所述目标蓝牙设备绑定;
所述第一获取模块,还用于在所述绑定模块与目标蓝牙设备绑定之后,获取所述移动设备的第一设备信息。
可选地,所述第一获取模块,具体用于:获取所述移动设备中存有的设备标识符,将所述设备标识符转换为第一预设格式后作为第一设备信息。
可选地,所述装置还包括:第二判断模块和第二生成模块;
所述第二判断模块,用于判断所述移动设备中是否存有设备标识符;
所述第一获取模块,具体用于:当所述第二判断模块判断出所述移动设备中存有设备标识符时,获取所述移动设备中存有的设备标识符;
所述第二生成模块,用于当所述第二判断模块判断出所述移动设备中不存有设备标识符时,生成设备标识符并保存至移动设备中;
所述第一获取模块,还用于在所述第二生成模块生成设备标识符并保存至移动设备中之后,获取所述移动设备中存有的设备标识符。
可选地,所述第一获取模块,具体用于:获取所述移动设备的设备标识或者系统标识或者设备序列号。
可选地,所述第一获取模块,具体包括:第一作为单元、获取单元、第一判断单元、第二作为单元、移除单元和第二判断单元;
所述第一作为单元,用于将所述设备标识、所述系统标识和所述设备序列号作为当前待获取设备信息;
所述获取单元,用于获取所述当前待获取设备信息中的其中一个;
所述第一判断单元,用于判断所述获取单元是否获取成功;
所述第二作为单元,用于当所述第一判断单元判断出所述获取单元获取成功时,将所述获取单元获取到设备信息作为所述移动设备的第一设备信息;
所述第二获取模块,具体用于:在所述第二作为单元将所述获取单元获取到设备信息作为所述移动设备的第一设备信息之后,获取所述目标蓝牙设备的第二设备信息;
所述移除单元,用于当所述第一判断单元判断出所述获取单元未获取成功时,将所述获取单元获取到的设备信息从所述当前待获取设备信息中移除;
所述第二判断单元,用于在所述移除单元将所述获取单元获取到的设备信息从所述当前待获取设备信息中移除之后,判断是否还有待获取设备信息;
所述第一作为单元,还用于在所述第二判断单元判断出还有待获取设备信息时,将所述待获取设备信息作为当前待获取设备信息;
所述断开模块,还用于当所述第二判断单元判断出没有待获取设备信息时,断开连接。
可选地,所述第二获取模块,具体用于:向所述目标蓝牙设备发送获取第二设备信息指令,并接收所述目标蓝牙设备返回的第二设备信息;所述第二设备信息包括MAC地址和长期密钥。
可选地,所述第一生成模块,具体用于:根据所述第一设备信息、所述第二设备信息及预置的厂商信息生成第二预设格式的第一设备认证信息。
可选地,所述装置还包括:第三判断模块;
所述第三判断模块,用于判断所述第三获取模块在预设时间内是否获取到所述目标蓝牙设备的确认键被按下的按键信息;
所述通讯模块,具体用于:当所述第三判断模块判断出所述第三获取模块在预设时间内获取到所述目标蓝牙设备的确认键被按下的按键信息时,判定配对成功,与所述目标蓝牙设备通信;还用于当所述接收模块接收到的设备认证结果为认证成功时,判定配对成功,与所述目标蓝牙设备通信;
所述断开模块,还用于当所述第三判断模块判断出所述第三获取模块在预设时间内未获取到所述目标蓝牙设备的确认键被按下的按键信息时,断开连接。
可选地,所述装置还包括:协商模块;
所述协商模块,用于与所述目标蓝牙设备协商会话密钥;
所述第一获取模块,具体用于:在所述协商模块与所述目标蓝牙设备协商会话密钥之后,获取所述移动设备的第一设备信息;
所述发送模块,具体用于:使用所述协商模块协商的会话密钥对所述第一设备认证信息加密得到第一设备认证信息密文,发送所述第一设备认证信息密文给所述目标蓝牙设备。
可选地,所述装置还包括:第四获取模块;
所述第四获取模块,用于获取所述移动设备的附加信息;
所述发送模块,还用于将所述第四获取模块获取到的附加信息发送给所述目标蓝牙设备。
本发明与现有技术相比,具有以下优点:
本发明中,在移动设备与蓝牙设备建立通信时,在移动设备端生成含有设备信息的设备认证信息并发送给蓝牙设备供蓝牙设备认证移动设备,且在首次配对时需要用户参与按键确认来完成配对过程,不仅实现了防重放攻击,又缩短了移动设备与蓝牙设备建立通信的时间,提升了用户体验。
附图说明
图1为本发明实施例一提供的一种与蓝牙设备的配对方法流程图;
图2为本发明实施例二提供的一种iOS系统中与蓝牙设备的配对方法流程图;
图3为本发明实施例三提供的一种Android系统中与蓝牙设备的配对方法流程图;
图4为本发明实施例四提供的一种与蓝牙设备的配对装置的模块组成框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚完整的描述;显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需说明地,一方面,移动设备与蓝牙设备的配对包括两个层面,即蓝牙协议层的配对和应用层的配对。为便于区分,本发明中将蓝牙协议层的配对称为绑定,将应用层的配对称为配对,即本发明中的技术方案适用于应用层的配对。另一方面,本发明中的通信,是指移动设备与蓝牙设备进行API功能操作的数据交互,不包含配对过程中移动设备与蓝牙设备的数据交互。
实施例一
本发明实施例一提供一种与蓝牙设备配对的方法,如图1所示,包括:
步骤101:扫描移动设备周围的蓝牙设备,从中选择目标蓝牙设备,连接目标蓝牙设备;
步骤102:获取移动设备的第一设备信息及目标蓝牙设备的第二设备信息;
步骤103:根据获取到的第一设备信息和第二设备信息生成第一设备认证信息,发送第一设备认证信息给目标蓝牙设备,接收目标蓝牙设备返回的设备认证结果,如设备认证结果为配对信息,则执行步骤104;如设备认证结果为认证成功,则执行步骤105;如设备认证结果为错误码,则断开连接,结束;
步骤104:通过移动设备显示接收到的配对信息,并获取目标蓝牙设备的按键状态信息,当获取到目标蓝牙设备的确认键被按下时,执行步骤105;
步骤105:配对成功,与目标蓝牙设备通信,结束。
在本实施例中,步骤102之前,还包括:
判断移动设备与目标蓝牙设备是否已绑定,是则执行步骤102;否则与目标蓝牙设备绑定后,执行步骤102。
可选地,步骤102中,获取移动设备的第一设备信息,具体为:获取移动设备中存有的设备标识符,将获取到的设备标识符转换为第一预设格式后作为第一设备信息。
对应地,获取移动设备中存有的设备标识符之前,还包括:判断移动设备中是否存有设备标识符,是则获取移动设备中存有的设备标识符;否则生成设备标识符并保存至移动设备中,获取移动设备中存有的设备标识符。
可选地,步骤102中,获取移动设备的第一设备信息,具体为:获取移动设备的设备标识或者系统标识或者设备序列号。
其中,获取移动设备的设备标识或者系统标识或者设备序列号,具体包括:
步骤A1:将设备标识、系统标识和设备序列号作为当前待获取设备信息;
步骤A2:获取当前待获取设备信息中的其中一个,判断是否获取成功,是则将其作为移动设备的第一设备信息,继续;否则将其从当前待获取设备信息中移除,执行步骤A3;
步骤A3:判断是否还有待获取设备信息,是则将待获取设备信息作为当前待获取设备信息,返回步骤A2;否则断开连接,结束。
本实施例步骤102中,获取目标蓝牙设备的第二设备信息,具体为:向目标蓝牙设备发送获取第二设备信息指令,并接收目标蓝牙设备返回的第二设备信息;其中,第二设备信息包括MAC地址和长期密钥。
本实施例步骤103中,根据第一设备信息和第二设备信息生成第一设备认证信息,具体为:根据第一设备信息、第二设备信息及预置的厂商信息生成第二预设格式的第一设备认证信息。
进一步地,本实施例步骤103中,发送第一设备认证信息给目标蓝牙设备之后,还包括:
步骤B:目标蓝牙设备判断自身与第一设备认证信息中含有的第一设备信息对应的移动设备是否配对过,是则将认证成功信息作为认证结果返回,否则生成配对信息并作为认证结果返回。
对应地,步骤102中,发送第一设备认证信息给目标蓝牙设备之前,还包括:发送第一设备信息给目标蓝牙设备;
目标蓝牙设备根据接收到的第一设备信息、自身的第二设备信息和预置的厂商信息生成第二设备认证信息;
步骤B之前,还包括:目标蓝牙设备判断第一设备认证信息与第二设备认证信息是否匹配,是则继续;否则返回错误码。
本实施例步骤104中,还包括:判断预设时间内是否获取到目标蓝牙设备的确认键被按下的按键信息,是则继续;否则断开连接,结束。
本实施例步骤102之前,还包括:与目标蓝牙设备协商会话密钥;
对应地,步骤103中,发送第一设备认证信息给目标蓝牙设备,具体为:使用会话密钥对第一设备认证信息加密得到第一设备认证信息密文,发送第一设备认证信息密文给目标蓝牙设备。
本实施例中的方法,还包括:获取移动设备的附加信息,发送附加信息给目标蓝牙设备;
对应地,当用户按下目标蓝牙设备的确认键时,目标蓝牙设备显示所述附加信息。
实施例二
本发明实施例二提供一种IOS系统中与蓝牙设备的配对方法,如图2所示,包括:
步骤201:扫描移动设备周围的蓝牙设备,判断是否扫描到目标蓝牙设备,是则执行步骤202,否则继续执行步骤201;
具体地,扫描移动设备周围的蓝牙设备,获取扫描到的蓝牙设备的广播数据,解析获取到的广播数据得到对应的蓝牙设备的设备名称,判断得到的设备名称与目标蓝牙设备的设备名称是否相同,是则确判定扫描到目标蓝牙设备,否则判定未扫描到目标蓝牙设备。
步骤202:连接目标蓝牙设备,判断是否连接成功,是则执行步骤203,否则结束;
具体地,调用第一函数接口连接目标蓝牙设备,并判断移动设备系统回调的第二函数接口中第二个参数是否为第一预设值,第三个参数的值是否为第二预设值,如判断结果均为是,则判定目标蓝牙设备连接成功,否则判定目标蓝牙设备连接失败;
在本实施例中,第一函数接口具体为:
BluetoothDevice.connectGatt(Context context,boolean autoConnect,BluetoothGattCallback callback);
其中,参数callback具体为第二函数接口;
第二函数接口具体为:
public void onConnectionStateChange(final BluetoothGatt gatt,intstatus,int newState);
如第二函数接口中第二个参数status为BluetoothGatt.GATT_SUCCESS,且第三个参数newState为BluetoothProfile.STATE_CONNECTED时,则判定目标蓝牙设备连接成功;否则判定目标蓝牙设备连接失败。
步骤203:判断移动设备与目标蓝牙设备是否已绑定,是则执行步骤205,否则执行步骤204;
具体地,调用第三函数接口,并判断接收到的返回值的类型,如接收到的返回值为BluetoothDevice.BOND_BONDED,则判定移动设备与目标蓝牙设备已绑定;如接收到的返回值为BluetoothDevice.BOND_NONE,则判定移动设备与目标蓝牙设备未绑定;
更加具体地,调用第三函数接口获取移动设备中保存的绑定信息,并判断获取到的绑定信息中是否含有目标蓝牙设备的设备名称,是则判定移动设备与目标蓝牙设备已绑定;否则,判定移动设备与目标蓝牙设备未绑定;
在本实施例中,第三函数接口具体为:BluetoothDevice.getBondState()。
步骤204:与目标蓝牙设备绑定,判断是否绑定成功,是则执行步骤205;否则断开连接,结束;
具体地,调用第四函数接口与目标蓝牙设备绑定,并判断返回值的类型,如返回值为BluetoothDevice.BOND_BONDED,则判定绑定成功,否则判定绑定失败。
在本实施例中,第四函数接口具体为:BluetoothDevice.createBond()。
步骤205:与目标蓝牙设备协商会话密钥;
具体地,向目标蓝牙设备发送协商会话密钥指令,并接收到目标蓝牙设备返回的会话密钥;
例如,在本实施例中,接收到目标蓝牙设备返回的会话密钥为01493B99BE98505EF6278F51E68BE360BD13BF8133D93949CDC471DAE9FF359B0F1C3C600EE66CBDF2B25ADE9CFE8D984DD250752C0BA785B2510761C27903A6345C342B42BA234CA8b2EB852D08FC48FC351AB8C05BC90C58EEC7E26AECA6098422F4EC7CB2F59C232FE22B124E4B8859339056C267654A84815607693D6A99。
进一步地,在本实施例中,向目标蓝牙设备发送协商会话密钥指令之后,如未接收到目标蓝牙设备返回的会话密钥,则断开连接,结束。
步骤206:判断移动设备中是否含有设备标识符,是则执行步骤208,否则执行步骤207;
具体地,查找到移动设备的预设存储区,判断预设存储区是否为空,是则判定移动设备中不含有设备标识符,否则判定移动设备中含有设备标识符;
例如,在本实施例中,判断出预设存储区为空,判定移动设备中不含有设备标识符,执行步骤207。
步骤207:生成设备标识符并保存至移动设备中;
具体地,调用第五函数接口生成设备标识符,并将生成的设备标识符保存至移动设备的预设存储区中;
在本实施例中,第五函数接口具体为:+(NSString*)getKeychainIdentifier;
例如,在本实施例中,生成的设备标识符为4F6B94E1-033C-440D-AA79-FE743A61092F。
步骤208:从移动设备中获取设备标识符,将其转换为第一预设格式后作为移动设备的第一设备信息并保存;
在本实施例中,将其转换为第一预设格式后作为移动设备的第一设备信息并保存,具体为:将获取到的设备标识符中含有的连词符“-”移除后作为移动设备的第一设备信息并保存;
例如,在本实施例中,从移动设备的预设存储区中获取到的设备标识符为4F6B94E1-033C-440D-AA79-FE743A61092F,转换为第一预设格式后为4F6B94E1033C440DAA79FE743A61092F。
步骤209:获取移动设备的附加信息,将获取到的附加信息与第一设备信息发送给目标蓝牙设备,当接收到目标蓝牙设备返回的响应时,执行步骤210;
具体地,调用第六函数接口获取移动设备的附加信息;其中,附加信息具体为移动设备的设备名称和设备品牌;
在本实施例中,第六函数接口具体为:+(UIDevice*)currentDevice;
例如,在本实施例中,获取到移动设备的附加信息为:设备名称为iPod touch,设备品牌为Apple。
进一步地,在本实施例中,目标蓝牙设备接收到附加信息和第一设备信息时,将其保存。
步骤210:获取目标蓝牙设备的第二设备信息;
在本实施例中,第二设备信息具体为目标蓝牙设备的MAC地址和长期密钥(英文全称:Long Term Key,简称:LTK);
具体地,向目标蓝牙设备发送获取第二设备信息指令,并接收目标蓝牙设备返回的第二设备信息;
例如,在本实施例中,接收到的目标蓝牙设备返回的第二设备信息为:MAC地址为CF:D5:57:FB:22:F4,LTK信息为6634DA9B3304D68F90EDAE3D63E66BCF。
进一步地,本步骤中还包括:判断预设时间内是否接收到目标蓝牙设备返回的MAC地址和LTK信息,是则继续;否则超时,断开连接,结束;
优选地,预设时间为为2秒。
更进一步地,在本实施例中,目标蓝牙设备将自身的第二设备信息返回后,还包括:根据自身的第二设备信息、自身预置的厂商信息及保存的第一设备信息生成第二预设格式的第二设备认证信息并保存;
其中,第二预设格式具体为:移动设备的第一设备信息/目标蓝牙设备的MAC地址/目标蓝牙设备的长期密钥/目标蓝牙设备的预置厂商信息;
例如,在本实施例中,目标蓝牙设备的预置厂商信息为46545361666549444465706172746D656E74,目标蓝牙设备生成的第二设备认证信息为:4F6B94E1033C440DAA79FE743A61092F/CFD557FB22F4/6634DA9B3304D68F90EDAE3D63E66BCF/46545361666549444465706172746D656E74。
在本实施例中,设备认证信息的格式不限为上述格式,可以自行设定。
步骤211:根据获取到的第二设备信息和保存的第一设备信息生成第一设备认证信息;
具体地,根据获取到的MAC地址、长期密钥、保存的第一设备信息和预置的目标蓝牙设备的厂商信息生成上述第二预设格式的第一设备认证信息;
例如,在本实施例中,根据上述获取到的MAC地址和长期密钥、及保存的第一设备信息和预置的目标蓝牙设备的厂商信息生成的第一设备认证信息为:4F6B94E1033C440DAA79FE743A61092F/CFD557FB22F4/6634DA9B3304D68F90EDAE3D63E66BCF/46545361666549444465706172746D656E74。
步骤212:使用协商的会话密钥对生成的第一设备认证信息加密得到第一设备认证信息密文,发送第一设备认证信息密文给目标蓝牙设备;
例如,在本实施例中,使用协商的会话密钥对生成的第一设备认证信息加密得到第一设备认证信息密文为2C37A1637D14896882B29D18FB203746DC1811CCFC58912C5DAB690C0D0F2EB710CD068B7F59A154SEFEA840BD459419;
进一步地,在本实施例中,当目标蓝牙设备接收到第一设备认证信息密文时,执行以下操作:
步骤B1:使用会话密钥解密接收到的第一设备认证信息密文得到第一设备认证信息,判断得到的第一设备认证信息是否正确,是则执行步骤B2,否则返回错误码,结束;
具体地,目标蓝牙设备判断解密得到的第一设备认证信息与自身生成的第二设备认证信息是否相同,是则判定得到的第一设备认证信息正确,否则判定得到的第一设备认证信息不正确;
例如,在本实施例中,解密得到的第一设备认证信息为4F6B94E1033C440DAA79FE743A61092F/CFD557FB22F4/6634DA9B3304D68F90EDAE3D63E66BCF/46545361666549444465706172746D656E74,与自身生成的第二设备认证信息相同,判定正确。
步骤B2:目标蓝牙设备根据得到的第一设备认证信息判断是否与第一设备认证信息中含有的第一设备信息对应的移动设备已配对,是则将认证成功信息作为设备认证结果返回,并与移动设备通信;否则生成配对信息并作为设备认证结果返回;
在本实施例中,目标蓝牙设备根据得到的第一设备认证信息判断是否与第一设备认证信息中含有的第一设备信息对应的移动设备已配对,具体为:目标蓝牙设备对得到的第一设备认证信息计算摘要值并作为配对信息,并判断自身保存的配对信息中是否含有计算得到的配对信息,是则判定与第一设备认证信息中含有的第一设备信息对应的移动设备已配对,否则判定与第一设备认证信息中含有的第一设备标识对应的移动设备未配对。
在本实施例中,配对信息具体为6字节的PIN码;
进一步地,在本实施例中,目标蓝牙设备返回配对信息后,还包括:将配对信息显示给用户,即将6字节的PIN码显示给用户,当接收到来自用户的确认键按键信息时,将计算得到的配对信息保存,并显示保存的移动设备的设备名称和设备品牌。
例如,在本实施例中,认证成功信息为OK;6字节的PIN码为564823;错误码为FALSE。
步骤213:接收目标蓝牙设备返回的设备认证结果,如设备认证结果为认证成功,则执行步骤217;如设备认证结果为配对信息,则执行步骤214;如设备认证结果为错误码,则断开连接,结束;
具体地,接收目标蓝牙设备返回的设备认证结果,如接收到的设备认证结果为OK,则执行步骤217;如接收到的设备认证结果为6字节的PIN码564823,则执行步骤214;如接收到的设备认证结果为FALSE,则结束。
步骤214:通过移动设备显示目标蓝牙设备返回的配对信息给用户;
具体地,通过移动设备显示目标蓝牙设备返回的PIN码给用户;
进一步地,在本实施例中,通过移动设备显示目标蓝牙设备返回的PIN码给用户之后,用户比对移动设备显示的PIN码与目标蓝牙设备显示的PIN码是否相同,是则按下目标蓝牙设备上的确认键,否则按下目标蓝牙设备上的取消键。
步骤215:获取目标蓝牙设备的按键状态信息,判断是否获取到确认键被按下的状态信息,是则执行步骤217,否则执行步骤216;
具体地,向目标蓝牙设备发送获取按键状态指令来获取目标蓝牙设备的按键状态信息,并判断是否获取到目标蓝牙设备的确认键被按下的状态信息,是则判定配对成功,执行步骤217;否则判定配对未成功,执行步骤216。
需要说明地,在本实施例中,蓝牙设备根据与移动设备配对的先后顺序,依次保存对应的配对信息,且保存的配对信息的个数有限,当蓝牙设备保存的配对信息的个数达到最大值时,则将最先保存的配对信息移除,并将本次配对成功的配对信息保存。
步骤216:判断是否超时,是则断开连接,结束;否则返回步骤215;
优选地,在本实施例中,超时时间为60秒。
步骤217:配对成功,与目标蓝牙设备进行数据通讯,结束。
实施例三
本发明实施例三提供一种Android系统中与蓝牙设备的配对方法,如图3所示,包括:
步骤301:扫描移动设备周围的蓝牙设备,判断是否扫描到目标蓝牙设备,是则执行步骤302,否则继续执行步骤301;
具体地,扫描移动设备周围的蓝牙设备,获取扫描到的蓝牙设备的广播数据,解析获取到的广播数据得到对应的蓝牙设备的设备名称,判断得到的设备名称与目标蓝牙设备的设备名称是否相同,是则判定扫描到目标蓝牙设备,否则判定未扫描到目标蓝牙设备。
步骤302:连接目标蓝牙设备,判断是否连接成功,是则执行步骤303,否则结束;
具体地,调用第一函数接口连接目标蓝牙设备,并判断移动设备系统回调的第二函数接口中第二个参数是否为第一预设值,第三个参数的值是否为第二预设值,如判断结果均为是,则判定目标蓝牙设备连接成功,否则判定目标蓝牙设备连接失败;
在本实施例中,第一函数接口具体为:
BluetoothDevice.connectGatt(Context context,boolean autoConnect,BluetoothGattCallback callback);
其中,参数callback具体为第二函数接口;
第二函数接口具体为:
public void onConnectionStateChange(final BluetoothGatt gatt,intstatus,int newState);
如第二函数接口中第二个参数status为BluetoothGatt.GATT_SUCCESS,且第三个参数newState为BluetoothProfile.STATE_CONNECTED时,则判定目标蓝牙设备连接成功;否则判定目标蓝牙设备连接失败。
步骤303:判断移动设备与目标蓝牙设备是否已绑定,是则执行步骤305,否则执行步骤304;
具体地,调用第三函数接口,并判断接收到的返回值的类型,如接收到的返回值为BluetoothDevice.BOND_BONDED,则判定移动设备与目标蓝牙设备已绑定;如接收到的返回值为BluetoothDevice.BOND_NONE,则判定移动设备与目标蓝牙设备未绑定;
更加具体地,调用第三函数接口获取移动设备中保存的绑定信息,并判断获取到的绑定信息中是否含有目标蓝牙设备的设备名称,是则判定移动设备与目标蓝牙设备已绑定;否则,判定移动设备与目标蓝牙设备未绑定;
在本实施例中,第三函数接口具体为:BluetoothDevice.getBondState()。
步骤304:与目标蓝牙设备绑定,判断是否绑定成功,是则执行步骤305;否则断开连接,结束;
具体地,调用第四函数接口与目标蓝牙设备绑定,并判断返回值的类型,如返回值为BluetoothDevice.BOND_BONDED,则判定绑定成功,否则判定绑定失败。
在本实施例中,第四函数接口具体为:BluetoothDevice.createBond()。
步骤305:与目标蓝牙设备协商会话密钥;
具体地,向目标蓝牙设备发送协商会话密钥指令,并接收到目标蓝牙设备返回的会话密钥;
例如,在本实施例中,接收到目标蓝牙设备返回的会话密钥为62DE85E768DE784C。
进一步地,在本实施例中,向目标蓝牙设备发送协商会话密钥指令之后,如未接收到目标蓝牙设备返回的会话密钥,则断开连接,结束。
步骤306:获取移动设备的设备标识,判断是否获取成功,是则将其作为第一设备信息并保存,执行步骤309,否则执行步骤307;
在本实施例中,设备标识具体为DeviceID;
具体地,调用第七函数接口,判断是否接收到第七函数接口的返回值,是则判定获取成功,将接收到的返回值作为第一设备信息并保存,执行步骤309;否则判定获取失败,执行步骤307;
在本实施例中,第七函数接口具体为:(TelephonyManager)Context.getSystemService(Context.TELEPHONY_SERVICE).getDeviceId()。
例如,在本实施例中,获取到移动设备的设备标识为359786053398385,将其作为第一设备信息保存。
步骤307:获取移动设备的系统标识,判断是否获取成功,是则将其作为第一设备信息并保存,执行步骤309,否则执行步骤308;
在本实施例中,系统标识具体为AndroidID;
具体地,调用第八函数接口,判断是否接收到第八函数接口的返回值,是则判定获取成功,将接收到的返回值作为第一设备信息并保存,执行步骤309;否则判定获取失败,执行步骤308;
在本实施例中,第八函数接口具体为:Settings.Secure.getString(Context.getContentResolver(),Settings.Secure.ANDROID_ID)。
例如,在本实施例中,获取到移动设备的系统标识为71C48FBCC0B7B505,将其作为第一设备信息并保存。
步骤308:获取移动设备的设备序列号,判断是否获取成功,是则将其作为第一设备信息并保存,执行步骤309,否则断开连接,结束;
具体地,调用第九函数接口,判断是否接收到第八九函数接口的返回值,是则判定获取成功,将接收到的返回值作为第一设备信息并保存,执行步骤309;否则判定获取失败,断开连接,结束;
在本实施例中,第九函数接口具体为:android.os.Build.SERIAL。
例如,在本实施例中,获取到移动设备的设备序列号为9765D200,将其作为第一设备信息并保存。
需说明地,在本实施例中,步骤306至步骤308的顺序可以彼此互换,当获取到移动设备的设备标识、系统标识、设备序列号中的其中一个时,即可执行步骤309,当移动设备的设备标识、系统标识、设备序列号均未获取到时,断开连接,结束。
步骤309:获取移动设备的附加信息,将获取到的附加信息与第一设备信息发送给目标蓝牙设备,当接收到目标蓝牙设备返回的响应时,执行步骤310;
在本实施例中,附加信息具体为设备名称和设备品牌;
具体地,调用第十函数接口获取移动设备的设备名称,调用第十一函数接口获取移动设备的设备品牌;
在本实施例中,第十函数接口具体为:android.os.Build.MODEL;第十一函数接口具体为:android.os.Build.MANUFACTURER;
例如,在本实施例中,获取到移动设备的附加信息为:设备名称为Meizu,设备品牌为MX5。
进一步地,在本实施例中,当蓝牙设备接收到移动设备的第一设备信息、设备名称和设备品牌时,将其保存并返回响应。
步骤310:获取目标蓝牙设备的第二设备信息;
在本实施例中,第二设备信息具体为目标蓝牙设备的MAC地址和长期密钥(英文全称:Long Term Key,简称:LTK);
具体地,向目标蓝牙设备发送获取第二设备信息指令,并接收目标蓝牙设备返回的第二设备信息;
例如,在本实施例中,接收到的目标蓝牙设备返回的第二设备信息为:MAC地址为FA:8B:8A:A0:45:EF,LTK信息为1612AD2E3318CDF1B9845623CFD15523。
进一步地,本步骤中还包括:判断预设时间内是否接收到目标蓝牙设备返回的第二设备信息,是则继续;否则超时,结束;
优选地,预设时间为为2秒。
更进一步地,在本实施例中,目标蓝牙设备将自身的第二设备信息返回后,还包括:根据自身的第二设备信息、自身预置的厂商信息及保存的第一设备信息生成第二预设格式的第二设备认证信息并保存。
其中,第二预设格式具体为:移动设备的第一设备信息/目标蓝牙设备的MAC地址/目标蓝牙设备的长期密钥/目标蓝牙设备的预置厂商信息;
例如,在本实施例中,保存的移动设备的第一设备信息为71C48FBCC0B7B505,目标蓝牙设备的预置厂商信息为086F,目标蓝牙设备生成的第二设备认证信息为:71C48FBCC0B7B505/FA8B8AA045EF/1612AD2E3318CDF1B9845623CFD15523/086F。
在本实施例中,设备认证信息的格式不限为上述格式,可以自行设定。
步骤311:根据获取到的第二设备信息和保存的第一设备信息生成第一设备认证信息;
具体地,根据获取到的MAC地址、长期密钥、保存的移动设备的第一设备信息和预置的目标蓝牙设备的厂商信息生成上述第二预设格式的第一设备认证信息;
例如,在本实施例中,保存的移动设备的第一设备信息具体为移动设备的系统标识,生成的第一设备认证信息为71C48FBCC0B7B505/FA8B8AA045EF/1612AD2E3318CDF1B9845623CFD15523/086F。
步骤312:使用协商的会话密钥对生成的第一设备认证信息加密得到第一设备认证信息密文,发送第一设备认证信息密文给目标蓝牙设备;
例如,在本实施例中,使用协商的会话密钥对生成的第一设备认证信息加密得到第一设备认证信息密文为70B0B468218AAE020D8F61BCFB8574C504D9F90CB421D80D97362FF7A8690DE450A539F02CC2AB925A08166FE7F4874BF295A354EF46CE51094187D521CF3920;
进一步地,在本实施例中,当目标蓝牙设备接收到第一设备认证信息密文时,执行以下操作:
步骤B1:使用会话密钥解密接收到的第一设备认证信息密文得到第一设备认证信息,判断得到的第一设备认证信息是否正确,是则执行步骤B2,否则返回错误码,结束;
具体地,目标蓝牙设备判断解密得到的第一设备认证信息与自身生成的第二设备认证信息是否相同,是则判定得到的第一设备认证信息正确,否则判定得到的第一设备认证信息不正确;
例如,在本实施例中,解密得到的第一设备认证信息为71C48FBCC0B7B505/FA8B8AA045EF/1612AD2E3318CDF1B9845623CFD15523/086F,与自身生成的第二设备认证信息相同,判定正确。
步骤B2:目标蓝牙设备根据得到的第一设备认证信息判断是否与第一设备认证信息中含有的第一设备信息对应的移动设备已配对,是则将认证成功信息作为设备认证结果返回,并与移动设备通信,否则生成配对信息并作为设备认证结果返回;
在本实施例中,目标蓝牙设备根据得到的第一设备认证信息判断是否与第一设备认证信息中含有的第一设备信息对应的移动设备已配对,具体为:目标蓝牙设备对得到的第一设备认证信息计算摘要值并作为配对信息,判断自身保存的配对信息中是否含有计算得到的配对信息,是则判定与第一设备认证信息中含有的第一设备信息对应的移动设备已配对,否则判定与第一设备认证信息中含有的第一设备标识对应的移动设备未配对。
在本实施例中,配对信息具体为6字节的PIN码;
进一步地,在本实施例中,目标蓝牙设备返回配对信息后,还包括:将配对信息显示给用户,即将6字节的PIN码显示给用户,当接收到来自用户的确认键按键信息时,将计算得到的配对信息保存,并显示保存的移动设备的设备名称和设备品牌。
例如,在本实施例中,认证成功信息为OK;6字节的PIN码为564823;错误码为FALSE。
步骤313:接收目标蓝牙设备返回的设备认证结果,如设备认证结果为认证成功,则执行步骤317;如设备认证结果为配对信息,则执行步骤314;如设备认证结果为错误码,则断开连接,结束;
具体地,接收目标蓝牙设备返回的设备认证结果,如接收到的设备认证结果为OK,则执行步骤317;如接收到的设备认证结果为6字节的PIN码564823,则执行步骤314;如接收到的设备认证结果为FALSE,则结束。
步骤314:通过移动设备显示目标蓝牙设备返回的配对信息给用户;
具体地,通过移动设备显示目标蓝牙设备返回的PIN码给用户;
进一步地,在本实施例中,通过移动设备显示目标蓝牙设备返回的PIN码给用户之后,用户比对移动设备显示的PIN码与目标蓝牙设备显示的PIN码是否相同,是则按下目标蓝牙设备上的确认键,否则按下目标蓝牙设备上的取消键。
步骤315:获取目标蓝牙设备的按键状态信息,判断是否获取到确认键被按下的状态信息,是则执行步骤317,否则执行步骤316;
具体地,向目标蓝牙设备发送获取按键状态指令来获取目标蓝牙设备的按键状态信息,并判断是否获取到目标蓝牙设备的确认键被按下的状态信息,是则判定配对成功,执行步骤317;否则判定配对未成功,执行步骤316。
需要说明地,在本实施例中,蓝牙设备根据与移动设备配对的先后顺序,依次保存对应的配对信息,且保存的配对信息的个数有限,当蓝牙设备保存的配对信息的个数达到最大值时,则将最先保存的配对信息移除,并将本次配对成功的配对信息保存。
步骤316:判断是否超时,是则断开连接,结束;否则返回步骤315;
优选地,在本实施例中,超时时间为60秒。
步骤317:配对成功,与目标蓝牙设备进行数据通讯,结束。
实施例四
本发明实施例四提供一种与蓝牙设备的配对装置,如图4所示,包括:
扫描连接模块401,用于扫描移动设备周围的蓝牙设备,从中选择目标蓝牙设备,连接目标蓝牙设备;
第一获取模块402,用于获取移动设备的第一设备信息;
第二获取模块403,用于获取目标蓝牙设备的第二设备信息;
第一生成模块404,用于根据第一获取模块402获取到的第一设备信息和第二获取模块403获取到的第二设备信息生成第一设备认证信息;
发送模块405,用于发送第一生成模块404生成的第一设备认证信息给目标蓝牙设备;
接收模块406,用于在发送模块405发送第一生成模块404生成的第一设备认证信息给目标蓝牙设备之后,接收目标蓝牙设备返回的设备认证结果;
显示模块407,用于当接收模块406接收到的设备认证结果为配对信息时,通过移动设备显示配对信息;
第三获取模块408,用于在显示模块407通过移动设备显示配对信息之后,获取目标蓝牙设备的按键状态信息;
通讯模块409,用于当第三获取模块408获取到目标蓝牙设备的确认键被按下时,判定配对成功,与目标蓝牙设备通信;还用于当接收模块406接收到的设备认证结果为认证成功时,判定配对成功,与目标蓝牙设备通信;
断开模块410,用于当接收模块406接收到的设备认证结果为错误码时,断开连接。
本实施例中的装置,还包括:第一判断模块和绑定模块;
其中,第一判断模块,用于判断移动设备与目标蓝牙设备是否已绑定;
第一获取模块402,具体用于:当第一判断模块判断出移动设备与目标蓝牙设备已绑定时,获取移动设备的第一设备信息;
绑定模块,用于当第一判断模块判断出移动设备与目标蓝牙设备未绑定时,与目标蓝牙设备绑定;
第一获取模块402,还用于在绑定模块与目标蓝牙设备绑定之后,获取移动设备的第一设备信息。
可选地,在本实施例中,所述第一获取模块402,具体用于:获取移动设备中存有的设备标识符,将获取到的设备标识符转换为第一预设格式后作为第一设备信息。
对应地,本实施例中的装置还包括:第二判断模块和第二生成模块;
其中,第二判断模块,用于判断移动设备中是否存有设备标识符;
第一获取模块402,具体用于:当第二判断模块判断出移动设备中存有设备标识符时,获取移动设备中存有的设备标识符;
第二生成模块,用于当第二判断模块判断出移动设备中不存有设备标识符时,生成设备标识符并保存至移动设备中;
第一获取模块402,还用于在第二生成模块生成设备标识符并保存至移动设备中之后,获取移动设备中存有的设备标识符。
可选地,在本实施例中,第一获取模块402,具体用于:获取移动设备的设备标识或者系统标识或者设备序列号。
对应地,第一获取模块402,具体包括:第一作为单元、获取单元、第一判断单元、第二作为单元、移除单元和第二判断单元;
其中,第一作为单元,用于将设备标识、系统标识和设备序列号作为当前待获取设备信息;
获取单元,用于获取当前待获取设备信息中的其中一个;
第一判断单元,用于判断获取单元是否获取成功;
第二作为单元,用于当第一判断单元判断出获取单元获取成功时,将获取单元获取到设备信息作为移动设备的第一设备信息;
第二获取模块403,具体用于:在第二作为单元将获取单元获取到设备信息作为移动设备的第一设备信息之后,获取目标蓝牙设备的第二设备信息;
移除单元,用于当第一判断单元判断出获取单元未获取成功时,将获取单元获取到的设备信息从当前待获取设备信息中移除;
第二判断单元,用于在移除单元将获取单元获取到的设备信息从当前待获取设备信息中移除之后,判断是否还有待获取设备信息;
第一作为单元,还用于在第二判断单元判断出还有待获取设备信息时,将待获取设备信息作为当前待获取设备信息;
断开模块410,还用于当第二判断单元判断出没有待获取设备信息时,断开连接。
在本实施例中,所述第二获取模块,具体用于:向目标蓝牙设备发送获取第二设备信息指令,并接收目标蓝牙设备返回的第二设备信息;第二设备信息包括MAC地址和长期密钥。
在本实施例中,第一生成模块404,具体用于:根据第一设备信息、第二设备信息及预置的厂商信息生成第二预设格式的第一设备认证信息。
本实施例中的装置,还包括:第三判断模块;
第三判断模块,用于判断第三获取模块408在预设时间内是否获取到目标蓝牙设备的确认键被按下的按键信息;
对应地,通讯模块409,具体用于:当第三判断模块判断出第三获取模块408在预设时间内获取到目标蓝牙设备的确认键被按下的按键信息时,判定配对成功,与目标蓝牙设备通信;还用于当接收模块406接收到的设备认证结果为认证成功时,判定配对成功,与目标蓝牙设备通信;
断开模块410,还用于当第三判断模块判断出第三获取模块408在预设时间内未获取到目标蓝牙设备的确认键被按下的按键信息时,断开连接。
本实施例中的装置,还包括:协商模块;
协商模块,用于与目标蓝牙设备协商会话密钥;
对应地,第一获取模块402,具体用于:在协商模块与目标蓝牙设备协商会话密钥之后,获取移动设备的第一设备信息;
发送模块405,具体用于:使用协商模块协商的会话密钥对第一设备认证信息加密得到第一设备认证信息密文,发送第一设备认证信息密文给目标蓝牙设备。
本实施例中的装置,还包括:第四获取模块;
第四获取模块,用于获取移动设备的附加信息;
对应地,发送模块405,还用于将第四获取模块获取到的附加信息发送给目标蓝牙设备。
本发明中,在移动设备与蓝牙设备建立通信时,在移动设备端生成含有设备信息的设备认证信息并发送给蓝牙设备供蓝牙设备认证移动设备,且在首次配对时需要用户参与按键确认来完成配对过程,不仅实现了防重放攻击,又缩短了移动设备与蓝牙设备建立通信的时间,提升了用户体验。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (24)

1.一种与蓝牙设备的配对方法,其特征在于,包括:
步骤S1:扫描移动设备周围的蓝牙设备,从中选择目标蓝牙设备,连接所述目标蓝牙设备;
步骤S2:获取所述移动设备的第一设备信息及所述目标蓝牙设备的第二设备信息;
步骤S3:根据所述第一设备信息和所述第二设备信息生成第一设备认证信息,发送所述第一设备认证信息给所述目标蓝牙设备,接收所述目标蓝牙设备返回的设备认证结果,如所述设备认证结果为配对信息,则执行步骤S4;如所述设备认证结果为认证成功,则执行步骤S5;如所述设备认证结果为错误码,则断开连接,结束;
步骤S4:通过所述移动设备显示所述配对信息,并获取所述目标蓝牙设备的按键状态信息,当获取到所述目标蓝牙设备的确认键被按下时,执行步骤S5;
步骤S5:配对成功,与所述目标蓝牙设备通信,结束。
2.根据权利要求1所述的方法,其特征在于,所述步骤S2之前,还包括:
判断所述移动设备与所述目标蓝牙设备是否已绑定,是则执行步骤S2;否则与所述目标蓝牙设备绑定后,执行步骤S2。
3.根据权利要求1所述的方法,其特征在于,所述步骤S2中,所述获取所述移动设备的第一设备信息,具体为:获取所述移动设备中存有的设备标识符,将所述设备标识符转换为第一预设格式后作为第一设备信息。
4.根据权利要求3所述的方法,其特征在于,所述获取所述移动设备中存有的设备标识符之前,还包括:判断所述移动设备中是否存有设备标识符,是则获取所述移动设备中存有的设备标识符;否则生成设备标识符并保存至移动设备中,获取所述移动设备中存有的设备标识符。
5.根据权利要求1所述的方法,其特征在于,所述步骤S2中,所述获取所述移动设备的第一设备信息,具体为:获取所述移动设备的设备标识或者系统标识或者设备序列号。
6.根据权利要求5所述的方法,其特征在于,所述获取所述移动设备的设备标识或者系统标识或者设备序列号,具体包括:
步骤A1:将所述设备标识、所述系统标识和所述设备序列号作为当前待获取设备信息;
步骤A2:获取所述当前待获取设备信息中的其中一个,判断是否获取成功,是则将其作为所述移动设备的第一设备信息,继续;否则将其从所述当前待获取设备信息中移除,执行步骤A3;
步骤A3:判断是否还有待获取设备信息,是则将所述待获取设备信息作为当前待获取设备信息,返回步骤A2;否则断开连接,结束。
7.根据权利要求1所述的方法,其特征在于,所述步骤S2中,获取所述目标蓝牙设备的第二设备信息,具体为:向所述目标蓝牙设备发送获取第二设备信息指令,并接收所述目标蓝牙设备返回的第二设备信息;所述第二设备信息包括MAC地址和长期密钥。
8.根据权利要求1所述的方法,其特征在于,所述步骤S3中,所述根据所述第一设备信息和所述第二设备信息生成第一设备认证信息,具体为:根据所述第一设备信息、所述第二设备信息及预置的厂商信息生成第二预设格式的第一设备认证信息。
9.根据权利要求1所述的方法,其特征在于,所述步骤S3中,所述发送所述第一设备认证信息给所述目标蓝牙设备之后,还包括:
步骤B:所述目标蓝牙设备判断自身与所述第一设备认证信息中含有的第一设备信息对应的移动设备是否配对过,是则将认证成功信息作为设备认证结果返回,否则生成配对信息并作为设备认证结果返回。
10.根据权利要求9所述的方法,其特征在于,
所述步骤S2中,所述发送所述第一设备认证信息给所述目标蓝牙设备之前,还包括:发送所述第一设备信息给所述目标蓝牙设备;
所述目标蓝牙设备根据所述第一设备信息、自身的第二设备信息和预置的厂商信息生成第二设备认证信息;
所述步骤B之前,还包括:所述目标蓝牙设备判断所述第一设备认证信息与所述第二设备认证信息是否匹配,是则继续;否则返回错误码。
11.根据权利要求1所述的方法,其特征在于,所述步骤S4中,还包括:判断预设时间内是否获取到所述目标蓝牙设备的确认键被按下的按键信息,是则继续;否则断开连接,结束。
12.根据权利要求1所述的方法,其特征在于,
所述步骤S2之前,还包括:与所述目标蓝牙设备协商会话密钥;
所述步骤S3中,所述发送所述第一设备认证信息给所述目标蓝牙设备,具体为:使用所述会话密钥对所述第一设备认证信息加密得到第一设备认证信息密文,发送所述第一设备认证信息密文给所述目标蓝牙设备。
13.根据权利要求1所述的方法,其特征在于,还包括:获取所述移动设备的附加信息,发送所述附加信息给所述目标蓝牙设备;
当用户按下所述目标蓝牙设备的确认键时,所述目标蓝牙设备显示所述附加信息。
14.一种与蓝牙设备的配对装置,其特征在于,包括:
扫描连接模块,用于扫描移动设备周围的蓝牙设备,从中选择目标蓝牙设备,连接所述目标蓝牙设备;
第一获取模块,用于获取所述移动设备的第一设备信息;
第二获取模块,用于获取所述目标蓝牙设备的第二设备信息;
第一生成模块,用于根据所述第一获取模块获取到的第一设备信息和所述第二获取模块获取到的第二设备信息生成第一设备认证信息;
发送模块,用于发送所述第一生成模块生成的第一设备认证信息给所述目标蓝牙设备;
接收模块,用于在所述发送模块发送第一生成模块生成的第一设备认证信息给目标蓝牙设备之后,接收所述目标蓝牙设备返回的设备认证结果;
显示模块,用于当所述接收模块接收到的设备认证结果为配对信息时,通过所述移动设备显示所述配对信息;
第三获取模块,用于在所述显示模块通过所述移动设备显示所述配对信息之后,获取所述目标蓝牙设备的按键状态信息;
通讯模块,用于当所述第三获取模块获取到所述目标蓝牙设备的确认键被按下时,判定配对成功,与所述目标蓝牙设备通信;还用于当所述接收模块接收到的设备认证结果为认证成功时,判定配对成功,与所述目标蓝牙设备通信;
断开模块,用于当所述接收模块接收到的设备认证结果为错误码时,断开连接。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:第一判断模块和绑定模块;
所述第一判断模块,用于判断所述移动设备与所述目标蓝牙设备是否已绑定;
所述第一获取模块,具体用于:当所述第一判断模块判断出所述移动设备与所述目标蓝牙设备已绑定时,获取所述移动设备的第一设备信息;
所述绑定模块,用于当所述第一判断模块判断出所述移动设备与所述目标蓝牙设备未绑定时,与所述目标蓝牙设备绑定;
所述第一获取模块,还用于在所述绑定模块与目标蓝牙设备绑定之后,获取所述移动设备的第一设备信息。
16.根据权利要求14所述的装置,其特征在于,所述第一获取模块,具体用于:获取所述移动设备中存有的设备标识符,将所述设备标识符转换为第一预设格式后作为第一设备信息。
17.根据权利要求16所述的装置,其特征在于,所述装置还包括:第二判断模块和第二生成模块;
所述第二判断模块,用于判断所述移动设备中是否存有设备标识符;
所述第一获取模块,具体用于:当所述第二判断模块判断出所述移动设备中存有设备标识符时,获取所述移动设备中存有的设备标识符;
所述第二生成模块,用于当所述第二判断模块判断出所述移动设备中不存有设备标识符时,生成设备标识符并保存至移动设备中;
所述第一获取模块,还用于在所述第二生成模块生成设备标识符并保存至移动设备中之后,获取所述移动设备中存有的设备标识符。
18.根据权利要求14所述的装置,其特征在于,所述第一获取模块,具体用于:获取所述移动设备的设备标识或者系统标识或者设备序列号。
19.根据权利要求18所述的装置,其特征在于,所述第一获取模块,具体包括:第一作为单元、获取单元、第一判断单元、第二作为单元、移除单元和第二判断单元;
所述第一作为单元,用于将所述设备标识、所述系统标识和所述设备序列号作为当前待获取设备信息;
所述获取单元,用于获取所述当前待获取设备信息中的其中一个;
所述第一判断单元,用于判断所述获取单元是否获取成功;
所述第二作为单元,用于当所述第一判断单元判断出所述获取单元获取成功时,将所述获取单元获取到设备信息作为所述移动设备的第一设备信息;
所述第二获取模块,具体用于:在所述第二作为单元将所述获取单元获取到设备信息作为所述移动设备的第一设备信息之后,获取所述目标蓝牙设备的第二设备信息;
所述移除单元,用于当所述第一判断单元判断出所述获取单元未获取成功时,将所述获取单元获取到的设备信息从所述当前待获取设备信息中移除;
所述第二判断单元,用于在所述移除单元将所述获取单元获取到的设备信息从所述当前待获取设备信息中移除之后,判断是否还有待获取设备信息;
所述第一作为单元,还用于在所述第二判断单元判断出还有待获取设备信息时,将所述待获取设备信息作为当前待获取设备信息;
所述断开模块,还用于当所述第二判断单元判断出没有待获取设备信息时,断开连接。
20.根据权利要求14所述的装置,其特征在于,所述第二获取模块,具体用于:向所述目标蓝牙设备发送获取第二设备信息指令,并接收所述目标蓝牙设备返回的第二设备信息;所述第二设备信息包括MAC地址和长期密钥。
21.根据权利要求14所述的装置,其特征在于,所述第一生成模块,具体用于:根据所述第一设备信息、所述第二设备信息及预置的厂商信息生成第二预设格式的第一设备认证信息。
22.根据权利要求14所述的装置,其特征在于,所述装置还包括:第三判断模块;
所述第三判断模块,用于判断所述第三获取模块在预设时间内是否获取到所述目标蓝牙设备的确认键被按下的按键信息;
所述通讯模块,具体用于:当所述第三判断模块判断出所述第三获取模块在预设时间内获取到所述目标蓝牙设备的确认键被按下的按键信息时,判定配对成功,与所述目标蓝牙设备通信;还用于当所述接收模块接收到的设备认证结果为认证成功时,判定配对成功,与所述目标蓝牙设备通信;
所述断开模块,还用于当所述第三判断模块判断出所述第三获取模块在预设时间内未获取到所述目标蓝牙设备的确认键被按下的按键信息时,断开连接。
23.根据权利要求14所述的装置,其特征在于,所述装置还包括:协商模块;
所述协商模块,用于与所述目标蓝牙设备协商会话密钥;
所述第一获取模块,具体用于:在所述协商模块与所述目标蓝牙设备协商会话密钥之后,获取所述移动设备的第一设备信息;
所述发送模块,具体用于:使用所述协商模块协商的会话密钥对所述第一设备认证信息加密得到第一设备认证信息密文,发送所述第一设备认证信息密文给所述目标蓝牙设备。
24.根据权利要求14所述的装置,其特征在于,所述装置还包括:第四获取模块;
所述第四获取模块,用于获取所述移动设备的附加信息;
所述发送模块,还用于将所述第四获取模块获取到的附加信息发送给所述目标蓝牙设备。
CN201710219819.0A 2017-04-06 2017-04-06 一种与蓝牙设备的配对方法及装置 Active CN107071709B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710219819.0A CN107071709B (zh) 2017-04-06 2017-04-06 一种与蓝牙设备的配对方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710219819.0A CN107071709B (zh) 2017-04-06 2017-04-06 一种与蓝牙设备的配对方法及装置

Publications (2)

Publication Number Publication Date
CN107071709A true CN107071709A (zh) 2017-08-18
CN107071709B CN107071709B (zh) 2021-06-08

Family

ID=59601694

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710219819.0A Active CN107071709B (zh) 2017-04-06 2017-04-06 一种与蓝牙设备的配对方法及装置

Country Status (1)

Country Link
CN (1) CN107071709B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107969001A (zh) * 2018-01-17 2018-04-27 飞天诚信科技股份有限公司 一种蓝牙配对双向认证的方法及装置
CN108184225A (zh) * 2017-12-29 2018-06-19 飞天诚信科技股份有限公司 一种蓝牙连接过程中实时取消蓝牙连接的方法及智能终端
CN108495291A (zh) * 2018-03-12 2018-09-04 北京华大智宝电子系统有限公司 一种蓝牙连接方法及装置
CN109005529A (zh) * 2018-08-01 2018-12-14 飞天诚信科技股份有限公司 一种iOS应用精确定位蓝牙配对故障的方法及通信装置
CN109246851A (zh) * 2018-10-30 2019-01-18 歌尔科技有限公司 一种蓝牙连接的处理方法、设备及存储介质
CN110163613A (zh) * 2019-04-02 2019-08-23 阿里巴巴集团控股有限公司 支付方法及装置
CN110913380A (zh) * 2019-12-19 2020-03-24 飞天诚信科技股份有限公司 一种基于小程序平台与蓝牙设备进行通信的方法及装置
CN111542031A (zh) * 2020-04-22 2020-08-14 海信视像科技股份有限公司 显示设备及蓝牙设备配对方法
CN112492569A (zh) * 2020-11-09 2021-03-12 珠海格力电器股份有限公司 智能设备控制方法及终端
CN113411249A (zh) * 2021-05-17 2021-09-17 宁波乐歌海生智家科技有限公司 一种智能邮箱的认证方法及系统
CN114007278A (zh) * 2021-10-29 2022-02-01 歌尔光学科技有限公司 多设备配对方法、系统、装置及计算机可读存储介质
WO2023020618A1 (zh) * 2021-08-19 2023-02-23 Oppo广东移动通信有限公司 基于蓝牙的设备连接方法、装置、电子设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110195665A1 (en) * 2010-02-08 2011-08-11 Daniel Friedlaender Method, apparatus, and use of presence detection
CN102420642A (zh) * 2011-12-15 2012-04-18 北京握奇数据系统有限公司 蓝牙设备及其通信方法
CN105450269A (zh) * 2015-12-21 2016-03-30 飞天诚信科技股份有限公司 一种实现蓝牙设备间安全交互配对认证的方法及装置
CN105472776A (zh) * 2015-11-17 2016-04-06 飞天诚信科技股份有限公司 一种建立蓝牙连接的方法及蓝牙智能密钥设备
CN105554693A (zh) * 2016-02-02 2016-05-04 深圳市文鼎创数据科技有限公司 蓝牙设备的配对方法和装置
CN105722013A (zh) * 2016-02-02 2016-06-29 深圳市文鼎创数据科技有限公司 蓝牙配对方法及装置
CN105933039A (zh) * 2016-06-24 2016-09-07 飞天诚信科技股份有限公司 一种蓝牙设备及其工作方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110195665A1 (en) * 2010-02-08 2011-08-11 Daniel Friedlaender Method, apparatus, and use of presence detection
CN102420642A (zh) * 2011-12-15 2012-04-18 北京握奇数据系统有限公司 蓝牙设备及其通信方法
CN105472776A (zh) * 2015-11-17 2016-04-06 飞天诚信科技股份有限公司 一种建立蓝牙连接的方法及蓝牙智能密钥设备
CN105450269A (zh) * 2015-12-21 2016-03-30 飞天诚信科技股份有限公司 一种实现蓝牙设备间安全交互配对认证的方法及装置
CN105554693A (zh) * 2016-02-02 2016-05-04 深圳市文鼎创数据科技有限公司 蓝牙设备的配对方法和装置
CN105722013A (zh) * 2016-02-02 2016-06-29 深圳市文鼎创数据科技有限公司 蓝牙配对方法及装置
CN105933039A (zh) * 2016-06-24 2016-09-07 飞天诚信科技股份有限公司 一种蓝牙设备及其工作方法

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108184225A (zh) * 2017-12-29 2018-06-19 飞天诚信科技股份有限公司 一种蓝牙连接过程中实时取消蓝牙连接的方法及智能终端
CN107969001B (zh) * 2018-01-17 2020-07-07 飞天诚信科技股份有限公司 一种蓝牙配对双向认证的方法及装置
CN107969001A (zh) * 2018-01-17 2018-04-27 飞天诚信科技股份有限公司 一种蓝牙配对双向认证的方法及装置
CN108495291A (zh) * 2018-03-12 2018-09-04 北京华大智宝电子系统有限公司 一种蓝牙连接方法及装置
CN109005529A (zh) * 2018-08-01 2018-12-14 飞天诚信科技股份有限公司 一种iOS应用精确定位蓝牙配对故障的方法及通信装置
CN109005529B (zh) * 2018-08-01 2020-11-24 飞天诚信科技股份有限公司 一种iOS应用精确定位蓝牙配对故障的方法及通信装置
CN109246851A (zh) * 2018-10-30 2019-01-18 歌尔科技有限公司 一种蓝牙连接的处理方法、设备及存储介质
CN110163613A (zh) * 2019-04-02 2019-08-23 阿里巴巴集团控股有限公司 支付方法及装置
CN110913380B (zh) * 2019-12-19 2023-09-22 飞天诚信科技股份有限公司 一种基于小程序平台与蓝牙设备进行通信的方法及装置
CN110913380A (zh) * 2019-12-19 2020-03-24 飞天诚信科技股份有限公司 一种基于小程序平台与蓝牙设备进行通信的方法及装置
CN111542031A (zh) * 2020-04-22 2020-08-14 海信视像科技股份有限公司 显示设备及蓝牙设备配对方法
CN111542031B (zh) * 2020-04-22 2022-07-12 海信视像科技股份有限公司 显示设备及蓝牙设备配对方法
CN112492569A (zh) * 2020-11-09 2021-03-12 珠海格力电器股份有限公司 智能设备控制方法及终端
CN113411249A (zh) * 2021-05-17 2021-09-17 宁波乐歌海生智家科技有限公司 一种智能邮箱的认证方法及系统
CN113411249B (zh) * 2021-05-17 2022-05-20 宁波乐歌海生智家科技有限公司 一种智能邮箱的认证方法及系统
WO2023020618A1 (zh) * 2021-08-19 2023-02-23 Oppo广东移动通信有限公司 基于蓝牙的设备连接方法、装置、电子设备及存储介质
CN114007278A (zh) * 2021-10-29 2022-02-01 歌尔光学科技有限公司 多设备配对方法、系统、装置及计算机可读存储介质
CN114007278B (zh) * 2021-10-29 2024-06-07 歌尔科技有限公司 多设备配对方法、系统、装置及计算机可读存储介质

Also Published As

Publication number Publication date
CN107071709B (zh) 2021-06-08

Similar Documents

Publication Publication Date Title
CN107071709A (zh) 一种与蓝牙设备的配对方法及装置
CN106851540B (zh) 一种蓝牙配对的实现方法及装置
CN100377607C (zh) 用于移动通信网络的直接或通过ip网络的接入服务的系统和设备
CN105050083B (zh) 一种智能设备的网络配置方法及系统
CN102547685B (zh) 直连链路的建立方法、终端及通信系统
KR100651992B1 (ko) 통신 제어 방법 및 통신 장치
CN105391858A (zh) 虚拟现实眼镜及其控制方法、装置和系统
EP1860906A1 (en) A general authentication former and a method for implementing the authentication
JPH0221758A (ja) ファクシミリ装置
CN109005530B (zh) 一种与移动终端执行配对服务的方法及蓝牙设备
CN106454713B (zh) 一种移动设备与蓝牙设备配对同步的方法及装置
CN105025475A (zh) 面向Android系统的移动保密终端实现方法
CN106060128B (zh) 一种浏览器访问智能密钥设备的方法及装置
CN107969001A (zh) 一种蓝牙配对双向认证的方法及装置
CN103312677A (zh) 终端、服务器和通信连接的建立方法
CN101207463A (zh) 无线通信系统修复协议错误的方法及其相关装置
CN106888083A (zh) 物联网下组密钥生成方法及通信节点
CN107592607A (zh) 一种蓝牙复合设备及其通信方法
CN102858028A (zh) 一种释放多方通话受控方的方法和终端
CN101174987A (zh) 无线通讯系统处理协议错误的方法及其相关装置
CN106603559A (zh) 一种无线通讯终端数据传输抗截获的方法
CN108521649A (zh) 一种智能设备的网络连接方法及网络连接系统
CN109462846A (zh) 一种实现蓝牙设备安全配对的方法、系统及蓝牙设备
CN106060824B (zh) 一种在sd组网过程中利用广播帧内嵌数据方式反馈sd状态的方法
CN107040916A (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
OL01 Intention to license declared
OL01 Intention to license declared