CN107770762B - 一种建立蓝牙连接的方法及装置 - Google Patents
一种建立蓝牙连接的方法及装置 Download PDFInfo
- Publication number
- CN107770762B CN107770762B CN201711157271.8A CN201711157271A CN107770762B CN 107770762 B CN107770762 B CN 107770762B CN 201711157271 A CN201711157271 A CN 201711157271A CN 107770762 B CN107770762 B CN 107770762B
- Authority
- CN
- China
- Prior art keywords
- bluetooth device
- identifier
- module
- target
- bluetooth
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及通信领域,特别涉及一种建立蓝牙连接的方法及装置,该方法包括:应用程序获取目标蓝牙设备的识别符;从操作***中获取已配对的蓝牙设备信息,当已配对的蓝牙设备信息中有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时,与目标蓝牙设备建立连接并通信;当已配对的蓝牙设备信息中没有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时,扫描周围蓝牙设备,当扫描到蓝牙设备的蓝牙设备信息与所述目标蓝牙设备的识别符匹配时,与目标蓝牙设备建立连接并通信;本发明使得应用程序中进行的操作不受用户提前通过操作***进行蓝牙连接的影响。
Description
技术领域
本发明涉及通信领域,特别涉及一种建立蓝牙连接的方法及装置。
背景技术
蓝牙是一种支持设备间短距离通信的无线电技术,由于蓝牙技术传输范围大、抗干扰性强等诸多优势,使得蓝牙功能已经成为移动终端如智能手机的标配功能。
现有技术中,移动设备的应用程序中已经具有针对蓝牙设备的扫描连接功能;然而用户在使用应用程序时,习惯先通过移动设备的操作***中扫描连接蓝牙设备,再返回应用程序中进行与蓝牙设备相关的操作;由于蓝牙设备可能已与终端设备完成配对,故应用程序会出现扫描不到蓝牙设备或者连接不上蓝牙设备的问题。
发明内容
为解决现有技术中的技术缺陷,本发明提出了一种建立蓝牙连接的方法及装置。
本发明提供的一种建立蓝牙连接的方法,包括:
步骤S1、应用程序获取目标蓝牙设备的识别符;
步骤S2、应用程序从操作***中获取已配对的蓝牙设备信息,并判断已配对的蓝牙设备信息中是否有与目标蓝牙设备的识别符相匹配的蓝牙设备信息,是则执行步骤S4,否则扫描周围蓝牙设备,当扫描到蓝牙设备时,执行步骤S3;
步骤S3、应用程序获取扫描到的蓝牙设备的蓝牙设备信息,并判断获取到的蓝牙设备信息是否与目标蓝牙设备的识别符匹配,是则停止扫描,执行步骤S4,否则报错结束;
步骤S4、应用程序根据与目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束。
本发明提供的一种建立蓝牙连接的装置,包括:
第一获取模块,用于获取目标蓝牙设备的识别符;
第二获取模块,用于从操作***中获取已配对的蓝牙设备信息;
第一判断模块,用于判断第二获取模块获取到的已配对的蓝牙设备信息中是否有与第一获取模块获取到的目标蓝牙设备的识别符相匹配的蓝牙设备信息;
通信模块,用于当第一判断模块判定已配对的蓝牙设备信息中有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,根据与目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束;
扫描模块,用于当第一判断模块判定已配对的蓝牙设备信息中没有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,扫描周围蓝牙设备;
第三获取模块,用于当扫描模块扫描到蓝牙设备时,获取扫描到的蓝牙设备的蓝牙设备信息;
第二判断模块,用于判断第三获取模块获取到的蓝牙设备的蓝牙设备信息是否与第一获取模块获取到的目标蓝牙设备的识别符匹配;
结束模块,用于当第二判断模块判定蓝牙设备信息与目标蓝牙设备的识别符不匹配时,报错结束;
停止扫描模块,用于当第二判断模块判定蓝牙设备信息与目标蓝牙设备的识别符匹配时,停止扫描;
通信模块,还用于当第二判断模块判定蓝牙设备信息与目标蓝牙设备的识别符匹配时,根据与目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束。
采用上述技术方案达到的有益效果如下:终端设备在连接蓝牙设备之前增加了对操作***中的配对信息的检测和判断等操作,使得应用程序中进行的操作不受用户提前通过操作***进行蓝牙连接的影响。
附图说明
图1是本发明实施例1提供的一种建立蓝牙连接的方法的流程图;
图2是本发明实施例2提供的一种建立蓝牙连接的方法的流程图;
图3为本发明实施例3提供的一种建立蓝牙连接的装置的方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步地详细描述。
实施例1
本实施例提供了一种建立蓝牙连接的方法,该方法应用于Android操作***的移动终端上,参见图1,包括:
步骤101、应用程序检测是否已经开启蓝牙,是则执行步骤103,否则执行步骤102;
具体的,应用程序调用***接口函数BluetoothAdapter.getDefaultAdapter().isEnabled(),判断调用该函数的返回值否为true,是则应用程序判定已开启蓝牙,执行步骤103,否则应用程序判定未开启蓝牙,执行步骤102。
步骤102、应用程序开启蓝牙;
具体的,应用程序首先创建一个请求开启蓝牙的启动事件,并通过调用一个回调函数判断开启蓝牙模块是否成功,若开启成功则继续执行步骤103,否则开启失败,报错结束;
所述创建请求开启蓝牙的启动事件的具体实现为:Intent intent=new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent,CODE_TURN_ON_BT);
其中的intent是Android***的一个事件启动对象,startActivityForResult函数是向Android***回传请求的一个接口函数,CODE_TURN_ON_BT是一个用于表示向Android***请求的请求标志;
所述通过调用一个回调函数判断开启蓝牙模块是否成功具体为:重载Activity下的onActivityResult(int requestCode,int resultCode,Intent data)函数,判断重载该函数得到的返回值resultCode,如果resultCode==Activity.RESULT_OK,则启动蓝牙成功,如果resultCode==Activity.RESULT_CANCELED则说明用户取消了打开Android***蓝牙的操作,启动蓝牙失败。
步骤103、应用程序获取目标蓝牙设备的识别符;
目标蓝牙设备的识别符可以为:目标蓝牙设备的序列号或者目标蓝牙设备的名称或者其他可以标识蓝牙设备的数据;
具体的,应用程序获取预存的目标蓝牙设备的识别符;
更为详细的,应用程序获取预存的目标蓝牙设备的序列号,并根据目标蓝牙设备的序列号按照预设规则转换为目标蓝牙设备的名称,需要说明的是,蓝牙设备的名称即为目标蓝牙设备的识别符;
例如,本实施例中,应用程序获取到的目标蓝牙设备的序列号为:650230000000173,应用程序将该序列号的前三位删除,并与预设字符串FT_进行拼接得到目标蓝牙设备的名称FT_230000000173;
可选的,应用程序接收用户输入的目标蓝牙设备的识别符;
更为详细的,应用程序接收用户输入的目标蓝牙设备的序列号,并根据目标蓝牙设备的序列号按照预设规则转换为目标蓝牙设备的名称,需要说明的是,蓝牙设备的名称即为目标蓝牙设备的识别符;
可选的,应用程序接收用户输入的登录信息,并从服务器中获取与用户输入的登录信息相匹配的目标蓝牙设备的识别符;
步骤104、应用程序判断在操作***中是否可以获取到已配对的蓝牙设备信息,是则执行步骤105,否则执行步骤107;
需要说明的是,每条已配对的蓝牙设备信息中至少包括蓝牙设备的识别符和蓝牙设备的MAC地址;
具体的,应用程序调用***函数BluetoothAdapter.getDefaultAdapter().getBondedDevices();接收该调用函数返回的数据,当返回不为空时则应用程序判定操作***中可以获取到已配对的蓝牙设备信息,当返回为空时则应用程序判定操作***中没有获取到已配对的蓝牙设备信息。
本实施例中,应用程序接收到的返回的数据具体为[ABC_1000000028(CE:EB:0C:37:DF:5F),BK_FT1067(F3:24:E2:8A:2F:47),FT_230000000173(C4:5D:37:6B:F9:9F)];本实施例中应用程序获取到三条蓝牙设备信息具体如下:
蓝牙设备的识别符 | 蓝牙设备的MAC地址 | |
1 | ABC_1000000028 | CE:EB:0C:37:DF:5F |
2 | BK_FT1067 | F3:24:E2:8A:2F:47 |
3 | FT_230000000173 | C4:5D:37:6B:F9:9F |
步骤105、应用程序判断操作***中的已配对蓝牙设备信息中是否有与目标蓝牙设备的识别符相匹配的蓝牙设备信息,是则执行步骤106,否则执行步骤107;
具体的,应用程序根据目标蓝牙设备的识别符在已配对的蓝牙设备信息中查找包含目标蓝牙设备的识别符的蓝牙设备信息,若查找到则执行步骤106,若没有查找到则执行步骤107;
例如,本实施例中根据目标蓝牙设备的识别符FT_230000000173查找到的蓝牙设备信息为上述列表中的第三条。
步骤106、应用程序删除操作***中的已配对蓝牙设备信息中与目标蓝牙设备的识别符相匹配的蓝牙设备信息;
应用程序根据反射的方式通过getClass().getMethod(“removeBond”,(Class[])null)方法获取到removeBond()方法,执行removeBond()方法即可删除操作***中的已配对的蓝牙设备信息中与目标蓝牙设备的识别符相匹配的蓝牙设备信息,若该函数的返回值否为true,是则删除成功,若该函数的返回值为flase则删除失败。
步骤107、应用程序扫描周围设备;当扫描到蓝牙设备时,执行步骤108;
具体的,应用程序调用当前上下文context的getSystemService(Context.BLUETOOTH_SERVICE).getAdapter().startLenScan(mBleScanCall)方法开启扫描设备的操作,通过mBleScanCall回调返回扫描结果;扫描结果是BluetoothDevice类型的对象,扫描结果为扫描到的蓝牙设备的蓝牙设备信息;
步骤108、应用程序获取扫描到蓝牙设备的蓝牙设备信息,并判断扫描到的蓝牙设备信息是否与目标蓝牙设备的识别符匹配,是则执行步骤109,否则返回步骤107;
具体的,蓝牙设备信息至少包括蓝牙设备的识别符和蓝牙设备的MAC地址,本实施例中,应用程序获取到的蓝牙设备信息具体为蓝牙设备的名称和蓝牙设备的MAC地址。
例如,当扫描结果为[FT_230000000173(C4:5D:37:6B:F9:9F)]时判定扫描到的蓝牙设备信息与目标蓝牙设备的识别符匹配,否则判定判定扫描到的蓝牙设备信息与目标蓝牙设备的识别符不匹配;
优选的,步骤107之前还包括:应用程序设置扫描时间的初始值;
相应的,步骤108中应用程序判定扫描到的蓝牙设备的蓝牙设备信息是否与目标蓝牙设备的识别符不匹配时还包括:应用程序判断扫描时间是否超过预设时间,是则停止扫描,结束,否则返回步骤107;
步骤109、应用程序停止扫描,并从扫描到的蓝牙设备信息中获取目标蓝牙设备的MAC地址,并根据目标蓝牙设备的MAC地址向目标蓝牙设备发送连接请求;
具体的,应用程序调用当前上下文context的getSystemService(Context.BLUETOOTH_SERVICE).getAdapter().stopLenScan(mBleScanCall)方法停止扫描设备的操作。
步骤110、应用程序判断连接是否成功;是则执行步骤111;否则报错结束;
具体的,应用程序调用connectGatt()方法开始连接,通过mGattCallback回调返回连接状态,当返回的status为BluetoothGatt.GATT_SUCCESS即为连接成功,否则连接失败。
优选的,步骤110之前还包括:应用程序设置连接请求的次数的初始值;步骤110之后还包括:应用程序更新发送连接请求的次数;
相应的,步骤110中具体为:判定连接失败时还包括:应用程序判断连接次数是否大于预设值,是则连接失败,结束,否则返回步骤110;
步骤111、应用程序与目标蓝牙设备进行通信。
优选的,步骤109中还包括:应用程序保存扫描到的蓝牙设备信息;
相应的,步骤103与步骤104之间还包括:应用程序判断自身保存的蓝牙设备信息中是否有与目标蓝牙设备的识别符相匹配的蓝牙设备信息,是则应用程序从与目标蓝牙设备信息相匹配的蓝牙设备信息中获取目标蓝牙设备的MAC地址,并根据目标蓝牙设备的MAC地址向目标蓝牙设备发送连接请求,执行步骤110;否则执行步骤104。
实施例2
本实施例提供一种建立蓝牙连接的方法,参见图2,包括:
步骤201、应用程序检查蓝牙是否开启,是则执行步骤203,否则执行步骤202;
具体的,应用程序调用***接口函数BluetoothAdapter.getDefaultAdapter().isEnabled(),判断调用该函数的返回值否为true,是则应用程序判定已开启蓝牙模块,执行步骤203,否则应用程序判定未开启蓝牙模块,执行步骤202。
步骤202、应用程序开启蓝牙;
具体的,应用程序首先创建一个请求开启蓝牙的启动事件,显示并通过调用一个回调函数判断开启蓝牙模块是否成功,若开启成功则继续执行步骤203,否则开启失败,报错结束;
所述创建请求开启蓝牙的启动事件的具体实现为:Intent intent=newIntent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(intent,CODE_TURN_ON_BT);
其中的intent是Android***的一个事件启动对象,startActivityForResult函数是向Android***回传请求的一个接口函数,CODE_TURN_ON_BT是一个用于表示向Android***请求的请求标志;
所述通过调用一个回调函数判断开启蓝牙模块是否成功具体为:重载Activity下的onActivityResult(int requestCode,int resultCode,Intentdata)函数,判断重载该函数得到的返回值resultCode,如果resultCode==Activity.RESULT_OK,则启动蓝牙成功,如果resultCode==Activity.RESULT_CANCELED则说明用户取消了打开Android***蓝牙的操作,启动蓝牙失败。
步骤203、应用程序获取目标蓝牙设备的识别符;
目标蓝牙设备的识别符可以为:目标蓝牙设备的序列号或者目标蓝牙设备的名称或者其他可以标识蓝牙设备的数据;
具体的,应用程序获取预存的目标蓝牙设备的识别符;
更为详细的,应用程序获取预存的目标蓝牙设备的序列号,并根据目标蓝牙设备的序列号按照预设规则转换为目标蓝牙设备的名称,需要说明的是,蓝牙设备的名称即为目标蓝牙设备的识别符;
例如,本实施例中,应用程序获取到的目标蓝牙设备的序列号为:650230000000173,应用程序将该序列号的前三位删除,并与预设字符串FT_进行拼接得到目标蓝牙设备的名称FT_230000000173;
可选的,应用程序接收用户输入的目标蓝牙设备的识别符;
更为详细的,应用程序接收用户输入的目标蓝牙设备的序列号,并根据目标蓝牙设备的序列号按照预设规则转换为目标蓝牙设备的名称,需要说明的是,蓝牙设备的名称即为目标蓝牙设备的识别符;
可选的,应用程序接收用户输入的登录信息,并从服务器中获取与用户输入的登录信息相匹配的目标蓝牙设备的识别符;
步骤204、应用程序判断在操作***中是否可以获取到已配对的蓝牙设备信息,是则执行步骤205,否则执行步骤207;
具体的,应用程序调用***函数BluetoothAdapter.getDefaultAdapter().getBondedDevices();接收该调用函数返回的数据,当返回不为空时则应用程序判定操作***中可以获取到已配对的蓝牙设备信息,当返回为空时则应用程序判定操作***中没有获取到已配对的蓝牙设备信息。
需要说明的是,每条已配对的蓝牙设备信息中至少包括蓝牙设备标识和蓝牙设备的MAC地址;
本实施例中,应用程序接收到的返回的数据具体为[ABC_1000000028(CE:EB:0C:37:DF:5F),BK_FT1067(F3:24:E2:8A:2F:47),FT_230000000173(C4:5D:37:6B:F9:9F)];本实施例中应用程序获取到三条蓝牙设备信息具体如下:
例如,应用程序获取到的已配对的蓝牙设备信息具体为:
蓝牙设备的名称 | 蓝牙设备的MAC地址 | |
1 | ABC_1000000028 | CE:EB:0C:37:DF:5F |
2 | BK_FT1067 | F3:24:E2:8A:2F:47 |
3 | FT_230000000173 | C4:5D:37:6B:F9:9F |
步骤205、应用程序判断已配对的蓝牙设备信息中是否有与目标蓝牙设备的识别符相匹配的蓝牙设备信息,是则执行步骤206,否则执行步骤207;
步骤206、应用程序从与目标蓝牙设备的识别符相匹配的蓝牙设备信息中获取目标蓝牙设备的MAC地址;执行步骤210;
步骤207、应用程序扫描周围蓝牙设备;当扫描到蓝牙设备后,执行步骤208;
具体的,应用程序调用当前上下文context的getSystemService(Context.BLUETOOTH_SERVICE).getAdapter().startLenScan(mBleScanCall)方法开启扫描设备的操作,通过mBleScanCall回调返回扫描结果,当返回true表示成功进行扫描操作,执行步骤208;
步骤208、应用程序获取扫描到的蓝牙设备信息;并判断扫描到的蓝牙设备的蓝牙设备信息是否与目标蓝牙设备的识别符匹配,是则执行步骤209,否则返回步骤207;
优选的,步骤207之前还包括:应用程序设置扫描时间的初始值;
相应的,步骤208中应用程序判定扫描到的蓝牙设备的蓝牙设备信息是否与目标蓝牙设备的识别符不匹配时还包括:应用程序判断扫描时间是否超过预设时间,是则停止扫描,结束,否则返回步骤207;
步骤209、应用程序停止扫描;并从目标蓝牙设备的识别符相匹配的蓝牙设备信息中获取目标蓝牙设备的MAC地址;
具体的,应用程序调用当前上下文context的getSystemService(Context.BLUETOOTH_SERVICE).getAdapter().stopLenScan(mBleScanCall)方法停止扫描设备的操作。
步骤210、应用程序根据目标蓝牙设备的MAC地址向目标蓝牙设备发起连接请求;
步骤211、应用程序判断连接是否成功,是则执行步骤212,否则报错结束;
具体的,应用程序调用connectGatt()方法开始连接,通过mGattCallback回调返回连接状态,当返回的status为BluetoothGatt.GATT_SUCCESS即为连接成功,否则连接失败。
优选的,步骤211之前还包括:应用程序设置连接请求的次数的初始值;步骤211之后还包括:应用程序更新发送连接请求的次数;
相应的,步骤211中具体为:判定连接失败时还包括:应用程序判断连接次数是否大于预设值,是则连接失败,结束,否则返回步骤211;
步骤212、应用程序与目标蓝牙设备进行通信。
优选的,步骤209还包括:应用程序保存扫描到的蓝牙设备信息;
相应的,步骤203与步骤204之间还包括:应用程序判断自身保存的蓝牙设备信息中是否有与目标蓝牙设备的识别符相匹配的蓝牙设备信息,是则应用程序从与目标蓝牙设备信息相匹配的蓝牙设备信息中获取目标蓝牙设备的MAC地址,并根据目标蓝牙设备的MAC地址向目标蓝牙设备发送连接请求,执行步骤211;否则执行步骤204。
实施例3
本实施例提供一种建立蓝牙连接的装置,如图3所示,包括:
第一获取模块11,用于获取目标蓝牙设备的识别符;
可选的,第一获取模块11,具体用于获取预存的或者用户输入的目标蓝牙设备的识别符。
可选的,第一获取模块11,具体用于根据用户输入的登录信息从服务器获取与登录信息相匹配的目标蓝牙设备的识别符。
第二获取模块12,用于从操作***中获取已配对的蓝牙设备信息;
第一判断模块13,用于判断第二获取模块12获取到的已配对的蓝牙设备信息中是否有与第一获取模块11获取到的目标蓝牙设备的识别符相匹配的蓝牙设备信息;
通信模块14,用于当第一判断模块13判定已配对的蓝牙设备信息中有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,根据与目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束;
具体的,通信模块14,具体用于当第一判断模块13判定已配对的蓝牙设备信息中有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,从与目标蓝牙设备的识别符相匹配的蓝牙设备信息中获取MAC地址,根据MAC地址向目标蓝牙设备发送连接请求,当连接成功后进行通信,结束;
扫描模块15,用于当第一判断模块13判定已配对的蓝牙设备信息中没有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,扫描周围蓝牙设备;
第三获取模块16,用于当扫描模块15扫描到蓝牙设备时,获取扫描到的蓝牙设备的蓝牙设备信息;
第二判断模块17,用于判断第三获取模块16获取到的蓝牙设备的蓝牙设备信息是否与第一获取模块11获取到的目标蓝牙设备的识别符匹配;
结束模块18,用于当第二判断模块17判定蓝牙设备信息与目标蓝牙设备的识别符不匹配时,报错结束;
停止扫描模块19,用于当第二判断模块17判定蓝牙设备信息与目标蓝牙设备的识别符匹配时,停止扫描;
通信模块14,还用于当第二判断模17块判定蓝牙设备信息与目标蓝牙设备的识别符匹配时,根据与目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束。
具体的,通信模块14,具体用于当第二判断模块判定蓝牙设备信息与目标蓝牙设备的识别符匹配时,从与目标蓝牙设备的识别符相匹配的蓝牙设备信息中获取MAC地址,根据MAC地址向目标蓝牙设备发送连接请求,当连接成功后进行通信,结束。
优选的,该装置还包括:删除模块;
删除模块具体包括:删除单元、扫描单元和判断单元;
删除单元,用于当第一判断模块13判定已配对的蓝牙设备信息中有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,从操作***中将与目标蓝牙设备的识别符相匹配的蓝牙设备信息删除;触发扫描单元;
扫描单元,用于扫描周围蓝牙设备;
判断单元,用于当扫描单元扫描到蓝牙设备时,获取扫描到的蓝牙设备的蓝牙设备信息,并判断获取到的蓝牙设备信息是否与第一获取模块11获取到的目标蓝牙设备的识别符匹配;
相应的,通信模块14,用于当判断单元判定获取到的蓝牙设备信息与目标蓝牙设备的识别符匹配时,根据与目标蓝牙设备匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束;还用于当第二判断模块17判定蓝牙设备信息与目标蓝牙设备的识别符匹配时,根据与目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束。
优选的,该装置还包括:检测模块和开启蓝牙模块;
检测模块,用于检查是否已经开启蓝牙;
开启蓝牙模块,用于当检测模块未开启蓝牙时,开启蓝牙;
相应的,第一获取模块11,用于当检测模块检测到已经开启蓝牙时获取目标蓝牙设备的识别符;还用于当开启蓝牙模块开启蓝牙之后,获取目标蓝牙设备的识别符。
优选的,该装置还包括:设置模块和第三判断模块;
设置模块,用于设置扫描时间的初始值;
第三判断模块,用于当第二判断模块17判定蓝牙设备信息与目标蓝牙设备的识别符不匹配时,判断扫描时间是否超过预设时间;
相应的,结束模块18,还用于当第三判断模块判定扫描时间超过预设时间时,结束;
扫描模块15,还用于当第三判断模块判定扫描时间没有超过预设时间时扫描周围蓝牙设备。
优选的,该装置还包括:存储模块和第四判断模块;
存储模块,用于当第二判断模块17判定获取到的蓝牙设备信息与目标蓝牙设备的识别符匹配后保存获取到蓝牙设备信息;
第四判断模块,用于从存储模块中获取保存的蓝牙设备信息,并判定获取到的蓝牙设备信息中是否有与第一获取模块11获取到的目标蓝牙设备的识别符相匹配的蓝牙设备信息;
相应的,第二获取模块12,具体用于当第四判断模块判定获取到的蓝牙设备信息中没有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,从操作***中获取已配对的蓝牙设备信息;
通信模块14,还用于当第四判断模块判定获取到的蓝牙设备信息中有与目标蓝牙设备的识别符相匹配的蓝牙设备信息时,根据与目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束。
需要说明的是,蓝牙设备信息具体包括:蓝牙设备的识别符和蓝牙设备的MAC地址;与目标蓝牙设备的识别符相匹配的蓝牙设备信息具体包括:目标蓝牙设备的识别符和目标蓝牙设备的MAC地址;目标蓝牙设备的识别符具体为目标蓝牙设备的名称或者目标蓝牙设备的序列号。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (15)
1.一种建立蓝牙连接的方法,其特征在于,包括:
步骤S1、应用程序获取目标蓝牙设备的识别符;
步骤S2、所述应用程序从操作***中获取已配对的蓝牙设备信息,并判断所述已配对的蓝牙设备信息中是否有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息,是则执行步骤S4,否则扫描周围蓝牙设备,当扫描到蓝牙设备时,执行步骤S3;
步骤S3、所述应用程序获取扫描到的蓝牙设备的蓝牙设备信息,并判断获取到的蓝牙设备信息是否与所述目标蓝牙设备的识别符匹配,是则停止扫描,执行步骤S4,否则报错结束;
步骤S4、所述应用程序根据与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束;
所述步骤S2中,当所述应用程序判定所述已配对的蓝牙设备信息中有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息之后,执行步骤S4之前还包括:
步骤101、所述应用程序从操作***中将与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息删除,扫描周围蓝牙设备,当扫描到蓝牙设备时,执行步骤102;
步骤102、所述应用程序获取扫描到的蓝牙设备的蓝牙设备信息,并判断获取到的蓝牙设备信息是否与所述目标蓝牙设备的识别符匹配,是则停止扫描,继续执行步骤S4,否则报错结束。
2.如权利要求1所述的方法,其特征在于,所述步骤S1之前还包括:应用程序检查是否已经开启蓝牙,是则执行步骤S1,否则开启蓝牙,执行步骤S1。
3.如权利要求1所述的方法,其特征在于,所述蓝牙设备信息具体包括:蓝牙设备的识别符和蓝牙设备的MAC地址;与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息具体包括:目标蓝牙设备的识别符和目标蓝牙设备的MAC地址;所述目标蓝牙设备的识别符具体为目标蓝牙设备的名称或者目标蓝牙设备的序列号。
4.如权利要求1所述的方法,其特征在于,所述步骤S1具体包括:应用程序获取预存的或者用户输入的目标蓝牙设备的识别符。
5.如权利要求1所述的方法,其特征在于,所述步骤S1具体包括:应用程序根据用户输入的登录信息从服务器获取与所述登录信息相匹配的目标蓝牙设备的识别符。
6.如权利要求1所述的方法,其特征在于,所述扫描周围蓝牙设备之前还包括:应用程序设置扫描时间的初始值;
所述步骤S3中所述应用程序判定获取到的蓝牙设备信息与所述目标蓝牙设备的识别符不匹配时判断所述扫描时间是否超过预设时间,是则结束,否则继续执行所述扫描周围蓝牙设备。
7.如权利要求1所述的方法,其特征在于,所述步骤S4具体为:所述应用程序从与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息中获取MAC地址,根据MAC地址向目标蓝牙设备发送连接请求,当连接成功后进行通信,结束。
8.如权利要求1所述的方法,其特征在于,所述步骤S3中,当所述应用程序判定获取到的蓝牙设备信息与所述目标蓝牙设备的识别符匹配之后还包括:所述应用程序保存获取到的蓝牙设备信息;
所述步骤S1之后,所述步骤S2之前还包括:所述应用程序判断自身保存的蓝牙设备信息中是否有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息,是则执行步骤S4,否则执行步骤S2。
9.一种建立蓝牙连接的装置,其特征在于,包括:
第一获取模块,用于获取目标蓝牙设备的识别符;
第二获取模块,用于从操作***中获取已配对的蓝牙设备信息;
第一判断模块,用于判断所述第二获取模块获取到的所述已配对的蓝牙设备信息中是否有与所述第一获取模块获取到的所述目标蓝牙设备的识别符相匹配的蓝牙设备信息;
通信模块,用于当所述第一判断模块判定所述已配对的蓝牙设备信息中有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时,根据所述与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束;
扫描模块,用于当所述第一判断模块判定所述已配对的蓝牙设备信息中没有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时,扫描周围蓝牙设备;
第三获取模块,用于当所述扫描模块扫描到蓝牙设备时,获取扫描到的蓝牙设备的蓝牙设备信息;
第二判断模块,用于判断所述第三获取模块获取到的所述蓝牙设备的蓝牙设备信息是否与所述第一获取模块获取到的目标蓝牙设备的识别符匹配;
结束模块,用于当所述第二判断模块判定所述蓝牙设备信息与所述目标蓝牙设备的识别符不匹配时,报错结束;
停止扫描模块,用于当所述第二判断模块判定所述蓝牙设备信息与所述目标蓝牙设备的识别符匹配时,停止扫描;
所述通信模块,还用于当所述第二判断模块判定所述蓝牙设备信息与所述目标蓝牙设备的识别符匹配时,根据与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束;
所述装置还包括:删除模块;
所述删除模块具体包括:删除单元、扫描单元和判断单元;
所述删除单元,用于当所述第一判断模块判定所述已配对的蓝牙设备信息中有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时从操作***中将与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息删除;触发扫描单元;
所述扫描单元,用于扫描周围蓝牙设备;
所述判断单元,用于当所述扫描单元扫描到蓝牙设备时,获取扫描到的蓝牙设备的蓝牙设备信息,并判断获取到的所述蓝牙设备信息是否与所述第一获取模块获取到的所述目标蓝牙设备的识别符匹配;
所述通信模块,用于当所述判断单元判定所述获取到的蓝牙设备信息与所述目标蓝牙设备的识别符匹配时,根据与所述目标蓝牙设备匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束;还用于当所述第二判断模块判定所述蓝牙设备信息与所述目标蓝牙设备的识别符匹配时,根据与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束。
10.如权利要求9所述的装置,其特征在于,还包括:检测模块和开启蓝牙模块;
所述检测模块,用于检查是否已经开启蓝牙;
所述开启蓝牙模块,用于当所述检测模块未开启蓝牙时,开启蓝牙;
所述第一获取模块,用于当所述检测模块检测到已经开启蓝牙时获取目标蓝牙设备的识别符;还用于当所述开启蓝牙模块开启蓝牙之后,获取目标蓝牙设备的识别符。
11.如权利要求9所述的装置,其特征在于,所述第一获取模块,具体用于获取预存的或者用户输入的目标蓝牙设备的识别符。
12.如权利要求9所述的装置,其特征在于,所述第一获取模块,具体用于根据用户输入的登录信息从服务器获取与所述登录信息相匹配的目标蓝牙设备的识别符。
13.如权利要求9所述的装置,其特征在于,还包括:设置模块和第三判断模块;
所述设置模块,用于设置扫描时间的初始值;
所述第三判断模块,用于当所述第二判断模块判定所述蓝牙设备信息与所述目标蓝牙设备的识别符不匹配时,判断所述扫描时间是否超过预设时间;
所述结束模块,还用于当所述第三判断模块判定扫描时间超过预设时间时,结束;
所述扫描模块,还用于当所述第三判断模块判定扫描时间没有超过预设时间时扫描周围蓝牙设备。
14.如权利要求9所述的装置,其特征在于,所述通信模块,具体用于当所述第一判断模块判定所述已配对的蓝牙设备信息中有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时,从所述与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息中获取MAC地址,根据所述MAC地址向所述目标蓝牙设备发送连接请求,当连接成功后进行通信,结束;还用于当所述第二判断模块判定所述蓝牙设备信息与所述目标蓝牙设备的识别符匹配时,从所述与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息中获取MAC地址,根据所述MAC地址向目标蓝牙设备发送连接请求,当连接成功后进行通信,结束。
15.如权利要求9所述的装置,其特征在于,还包括:存储模块和第四判断模块;
所述存储模块,用于当所述第二判断模块判定获取到的所述蓝牙设备信息与所述目标蓝牙设备的识别符匹配后保存获取到蓝牙设备信息;
所述第四判断模块,用于从所述存储模块中获取保存的蓝牙设备信息,并判定获取到的蓝牙设备信息中是否有与所述第一获取模块获取到的目标蓝牙设备的识别符相匹配的蓝牙设备信息;
所述第二获取模块,具体用于当所述第四判断模块判定所述获取到的蓝牙设备信息中没有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时,从操作***中获取已配对的蓝牙设备信息;
所述通信模块,还用于当所述第四判断模块判定所述获取到的蓝牙设备信息中有与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息时,根据所述与所述目标蓝牙设备的识别符相匹配的蓝牙设备信息与目标蓝牙设备建立连接并通信,结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711157271.8A CN107770762B (zh) | 2017-11-20 | 2017-11-20 | 一种建立蓝牙连接的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711157271.8A CN107770762B (zh) | 2017-11-20 | 2017-11-20 | 一种建立蓝牙连接的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107770762A CN107770762A (zh) | 2018-03-06 |
CN107770762B true CN107770762B (zh) | 2020-05-19 |
Family
ID=61278264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711157271.8A Active CN107770762B (zh) | 2017-11-20 | 2017-11-20 | 一种建立蓝牙连接的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107770762B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111194097A (zh) * | 2018-11-14 | 2020-05-22 | 奇酷互联网络科技(深圳)有限公司 | 移动终端以及蓝牙连接方法和存储装置 |
CN109413629A (zh) * | 2018-11-20 | 2019-03-01 | 智车优行科技(北京)有限公司 | 蓝牙重连方法 |
CN113132962B (zh) | 2019-04-16 | 2022-12-06 | 华为技术有限公司 | 蓝牙扫描方法和电子设备 |
CN113727291A (zh) * | 2020-05-26 | 2021-11-30 | 菜鸟智能物流控股有限公司 | 设备的交互方法、装置、服务器和数据处理方法 |
CN111542040B (zh) * | 2020-07-07 | 2020-10-13 | 飞天诚信科技股份有限公司 | 一种增强蓝牙连接稳定性的方法及装置 |
CN111935694B (zh) * | 2020-10-15 | 2021-03-16 | 飞天诚信科技股份有限公司 | 蓝牙设备连接方法、装置、电子设备及可读存储介质 |
CN113490194A (zh) * | 2021-08-02 | 2021-10-08 | Oppo广东移动通信有限公司 | 基于蓝牙的设备连接方法、装置、电子设备及存储介质 |
CN113473434A (zh) * | 2021-08-17 | 2021-10-01 | 杭州涂鸦信息技术有限公司 | 蓝牙连接方法、装置、计算机设备和计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999251A (zh) * | 2012-10-31 | 2013-03-27 | 东莞宇龙通信科技有限公司 | 终端和设备连接管理方法 |
CN104967971A (zh) * | 2015-06-26 | 2015-10-07 | 飞天诚信科技股份有限公司 | 一种实现Android***下蓝牙自动回连的方法 |
EP2953387A1 (en) * | 2014-06-06 | 2015-12-09 | EM Microelectronic-Marin SA | Method and system for bidirectional communications via a bluetooth low energy advertise link |
CN105516897A (zh) * | 2015-12-07 | 2016-04-20 | 哈尔滨工业大学深圳研究生院 | 一种蓝牙设备间一键建立通信连接的方法及装置 |
-
2017
- 2017-11-20 CN CN201711157271.8A patent/CN107770762B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999251A (zh) * | 2012-10-31 | 2013-03-27 | 东莞宇龙通信科技有限公司 | 终端和设备连接管理方法 |
EP2953387A1 (en) * | 2014-06-06 | 2015-12-09 | EM Microelectronic-Marin SA | Method and system for bidirectional communications via a bluetooth low energy advertise link |
CN104967971A (zh) * | 2015-06-26 | 2015-10-07 | 飞天诚信科技股份有限公司 | 一种实现Android***下蓝牙自动回连的方法 |
CN105516897A (zh) * | 2015-12-07 | 2016-04-20 | 哈尔滨工业大学深圳研究生院 | 一种蓝牙设备间一键建立通信连接的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107770762A (zh) | 2018-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107770762B (zh) | 一种建立蓝牙连接的方法及装置 | |
CN106681774B (zh) | 蓝牙扬声器的软件升级方法及智能终端 | |
CN111464994B (zh) | 一种实现蓝牙设备众寻的方法及*** | |
CN106201574B (zh) | 一种应用界面的启动方法及装置 | |
CN109005532B (zh) | 一种蓝牙连接方法、蓝牙主设备以及蓝牙从设备 | |
CN108040329B (zh) | eSIM模块及其签约数据的加载及其管理方法 | |
CN108683556B (zh) | 检测网卡功能状态的方法、装置和计算机存储介质 | |
US10492245B2 (en) | Call termination method, application processor, and modem | |
EP2611226A1 (en) | Processing method and system for over-the-air bootstrap | |
CN105025433A (zh) | 一种蓝牙配对方法及终端 | |
US20190166552A1 (en) | Network search method and apparatus under double-card mode, and computer storage medium | |
CN106211355B (zh) | 一种控制数据交互的设备、***及其工作方法 | |
US20170318483A1 (en) | Self-recovery method and device after disconnection of base station | |
CN108541078B (zh) | 终端绑定方法、***、终端和服务器 | |
CN115065691B (zh) | 一种基于安卓平台的通讯实现方法及装置 | |
KR20170084907A (ko) | 통신 디바이스 및 그 제어 방법 | |
CN112543493A (zh) | 一种wifi连接方法、终端及计算机存储介质 | |
CN106792580B (zh) | 发送彩信的方法和装置 | |
CN107994928B (zh) | 一种实现蓝牙数据同步收发的方法及通信装置 | |
CN113543102A (zh) | 一种蓝牙连接方法 | |
CN110187905B (zh) | ***更新方法和移动终端 | |
CN113993076A (zh) | 耳机定位方法、装置、耳机设备及存储介质 | |
CN105007589B (zh) | 一种配置参数的方法、机卡一体终端设备和服务器 | |
CN108834116B (zh) | 蓝牙配对方法、电子设备及存储介质 | |
JP2013062581A (ja) | 無線通信装置、対向機器および近距離無線通信システム |
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 |