CN106131810B - 一种连接蓝牙双模设备的方法及装置 - Google Patents

一种连接蓝牙双模设备的方法及装置 Download PDF

Info

Publication number
CN106131810B
CN106131810B CN201610443522.8A CN201610443522A CN106131810B CN 106131810 B CN106131810 B CN 106131810B CN 201610443522 A CN201610443522 A CN 201610443522A CN 106131810 B CN106131810 B CN 106131810B
Authority
CN
China
Prior art keywords
bluetooth
connection
equipment
name
bluetooth equipment
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
CN201610443522.8A
Other languages
English (en)
Other versions
CN106131810A (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 CN201610443522.8A priority Critical patent/CN106131810B/zh
Publication of CN106131810A publication Critical patent/CN106131810A/zh
Application granted granted Critical
Publication of CN106131810B publication Critical patent/CN106131810B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/005Discovery of network devices, e.g. terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/14Direct-mode setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/06Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
    • 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

一种连接蓝牙双模设备的方法及装置
技术领域
本发明涉及电子产品领域,尤其涉及一种连接蓝牙双模设备的方法及装置。
背景技术
蓝牙(Bluetooth)技术是一种无线数据通信的开放性全球规范,它以低成本的近距离无线连接为基础,为固定移动设备通信环境建立一个特殊的无线连接。它广泛应用于世界各地,可以无线连接手机、便携式计算机、汽车、立体声耳机、音乐播放器等多种设备,是当今市场上支持范围最广泛、功能最丰富且安全的近场无线通信标准。
截至目前为止,蓝牙技术联盟共发布八个版本的蓝牙技术标准,即蓝牙1.0、1.1、1.2、2.0、2.1、3.0、4.0和4.1。从技术性能上划分,目前的蓝牙技术主要可分为基本码率(简写BR)蓝牙技术和低功耗(简写BLE,英文全称:Bluetooth Low Energy)蓝牙技术。其中,基本码率蓝牙技术可实现增强速率蓝牙传输;而BLE蓝牙技术是对传统蓝牙BR/EDR蓝牙技术的补充,与传统的BR/EDR蓝牙技术相比,BLE蓝牙技术具有这三大特性,即缩短无线开启时间、快速建立连接、减低收发峰值功耗,从而实现低功耗。目前仅蓝牙4.0及以上标准支持BLE蓝牙技术,而蓝牙3.0及其以下标准采用BR蓝牙技术,兼容性较差。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种连接蓝牙双模设备的方法及装置。
本发明提供了一种连接蓝牙双模设备的方法,包括:
步骤S1:终端设备判断自身是否支持低功耗蓝牙设备,是则执行步骤S2,否则执行步骤S5;
步骤S2:所述终端设备设置与蓝牙设备的连接方式为低功耗连接;
步骤S3:所述终端设备搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则执行步骤S4,否则执行步骤S5;
步骤S4:所述终端设备向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则返回步骤S3;
步骤S5:所述终端设备设置与蓝牙设备的连接方式为经典蓝牙连接;
步骤S6:所述终端设备注册广播接收器,并设置所述广播接收器的过滤器的动作;
步骤S7:所述终端设备搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则执行步骤S8,否则返回步骤S2;
步骤S8:所述终端设备向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则返回步骤S7。
其中,所述步骤S1包括:
步骤S1-1:所述终端设备获取自身系统的版本号,并判断所述自身系统的版本号是否小于第一预设值,是则执行步骤S5,否则执行步骤S1-2;
步骤S1-2:所述终端设备获取低功耗硬件特征属性,并判断是否获取到,是则执行步骤S2,否则执行步骤S5。
其中,所述方法还包括:所述终端设备开机后给版本常量赋值;
所述步骤S1-1具体为:所述终端设备获取所述版本常量的值,并判断所述版本常量的值是否小于第一预设值,是则执行步骤S5,否则执行步骤S1-2。
其中,所述步骤S1-2具体为:所述终端设备通过调用第二系统函数获取低功耗硬件特征属性,如所述如第二函数返回第一字符则获取到低功耗硬件特征属性,如第二函数返回第二字符则未获取到低功耗硬件特征属性。
其中,所述步骤S3或步骤S7之前包括:所述终端设备将要连接的蓝牙设备名称设为预定名。
其中,所述判断是否搜索到与预定名对应的蓝牙设备,具体为:判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备。
其中,所述步骤S3具体为:
所述终端设备通过扫描函数采用低功耗方式搜索蓝牙设备,根据所述扫描函数的第一参数值获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则执行步骤S4,否则执行步骤S5。
其中,所述步骤S4具体为:所述终端设备根据所述蓝牙设备对象调用第三系统函数发起连接,并获得配置对象,根据所述配置对象调用回调函数判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则返回步骤S3。
其中,所述步骤S7具体包括:所述终端设备通过蓝牙扫描方法搜索蓝牙设备,当搜索到蓝牙设备时触发接收对象的接收函数,通过所述接收函数的第二参数获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则执行步骤S8,否则返回步骤S2。
其中,所述步骤S8之前还包括:所述终端设备根据获取到的所述蓝牙设备对象调用第四系统函数创建连接对象;
所述步骤S8具体为:所述终端设备根据所述连接对象调用第五系统函数对获取到的所述蓝牙设备发起连接,若所述第五函数正常返回,则连接成功,开始与所述蓝牙设备进行数据通讯,否则连接失败,返回步骤S7。
本发明又提供了一种连接蓝牙双模设备的装置,包括:
11、一种连接蓝牙双模设备的装置,其特征在于,包括:
第一判断模块,用于判断终端设备是否支持低功耗蓝牙设备,是则触发第一设置模块,否则触发第二设置模块;
所述第一设置模块,用于设置与蓝牙设备的连接方式为低功耗连接;
第一搜索判断模块,用于搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则触发第一连接判断模块,否则触发所述第二设置模块;
所述第一连接判断模块,用于向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则触发所述第一搜索判断模块;
所述第二设置模块,用于设置与蓝牙设备的连接方式为经典蓝牙连接;
注册设置模块,用于注册广播接收器,并设置所述广播接收器的过滤器的动作;
第二搜索判断模块,用于搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则触发第二连接判断模块,否则触发所述第一设置模块;
所述第二连接判断模块,用于向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则触发所述第二搜索判断模块。
其中,所述第一判断模块包括:
第一判断单元,用于获取终端设备系统的版本号,并判断所述终端设备系统的版本号是否小于第一预设值,是则触发所述第二设置模块,否则触发第二判断单元;
所述第二判断单元,用于获取低功耗硬件特征属性,并判断是否获取到,是则触发所述第一设置模块,否则触发所述第二设置模块。
其中,所述装置还包括:
赋值模块,用于在所述终端设备开机后给版本常量赋值;
所述第一判断单元具体用于获取所述版本常量的值,并判断所述版本常量的值是否小于第一预设值。
其中,所述第二判断单元具体用于通过调用第二系统函数获取低功耗硬件特征属性,如所述第二函数返回第一字符则获取到低功耗硬件特征属性,如第二函数返回第二字符则未获取到低功耗硬件特征属性。
其中,所述方法还包括:设定模块,用于将要连接的蓝牙设备名称设为预定名。
其中,所述第一搜索判断模块用于搜索蓝牙设备,并判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备;
所述第二搜索判断模块用于搜索蓝牙设备,并判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备。
其中,所述第一搜索判断模块具体用于通过扫描函数采用低功耗方式搜索蓝牙设备,根据所述扫描函数的第一参数值获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则触发第一连接判断模块,否则触发所述第二设置模块。
其中,所述第一连接判断模块具体用于根据所述蓝牙设备对象调用第三系统函数发起连接,并获得配置对象,根据所述配置对象调用回调函数判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则触发所述第一搜索判断模块。
其中,所述第二搜索判断模块具体用于通过蓝牙扫描方法搜索蓝牙设备,当搜索到蓝牙设备时触发接收对象的接收函数,通过所述接收函数的第二参数获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则触发第二连接判断模块,否则触发所述第一设置模块。
其中,所述方法还包括:创建模块,用于根据获取到的所述蓝牙设备对象调用第四系统函数创建连接对象;
所述第二连接判断模块具体用于根据所述连接对象调用第五系统函数对获取到的所述蓝牙设备发起连接,若所述第五函数正常返回,则连接成功,开始与所述蓝牙设备进行数据通讯,否则连接失败,触发所述第二搜索判断模块。
本发明与现有技术相比,具有以下优点:
本实施例的技术方案适用于支持蓝牙的终端设备(如安卓手机和苹果手机),终端设备首先使用低功耗方式与蓝牙设备进行连接,如连接不上再使用经典蓝牙方式与蓝牙设备进行连接,这样无论是IOS系统设备还是安卓设备,首先均使用低功耗方式连接,达到节电的目的,使终端设备的兼容性更好。
附图说明
图1为本发明实施例一提供的一种连接蓝牙双模设备的方法流程图;
图2为本发明实施例二提供的一种连接蓝牙双模设备的方法流程图;
图3为本发明实施例三提供的一种连接蓝牙双模设备的方法流程图;
图4为本发明实施例四提供的一种连接蓝牙双模设备的装置方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种连接蓝牙双模设备的方法,如图1所示,包括:
步骤101:终端设备判断自身的蓝牙及蓝牙权限是否打开,是则执行步骤103,否则执行步骤102;
步骤102:终端设备提示打开蓝牙及蓝牙权限信息,返回步骤101;
在本实施例中,用户看到打开信息后手动打开终端设备的蓝牙及其权限信息,优选的,如在预设时间内终端设备检测到未打开蓝牙和\或蓝牙权限信息则会报错,结束;
步骤103:终端设备扫描蓝牙设备的广播;
在本实施例中,在步骤103之前还包括:终端设备注册CBCentralManager类;CBCentralManager类用于实现BLE功能;
具体的,步骤103为:终端设备通过调用CBCentralManager类中的scanForPeripheralsWithServices函数来扫描蓝牙设备的广播;如终端设备扫描到蓝牙设备的广播,则说明终端设备可以与该蓝牙设备进行连接;
步骤104:终端设备获取扫描到的蓝牙设备并匹配预设的设备标识名;
在本实施例中,步骤104具体包括:终端设备通过CBCentralManager类的didDiscoverPeripheral代理函数获取扫描到的蓝牙设备并匹配预设的设备标识名;
步骤105:终端设备停止扫描蓝牙设备广播;
在本实施例中,步骤105具体包括:终端设备通过CBCentralManager的stopscan函数停止扫描蓝牙设备广播;
步骤106:终端设备扫描蓝牙设备中的服务,并获取扫描到的服务;
在本实施例中,步骤106之前还包括:终端设备保存蓝牙设备对象CBPeripheral实例;具体的,终端设备将系统回调函数didDiscoverPeripheral中的CBPeripheral实例保存到预设的蓝牙设备对象CBPeripheral实例中;
在本实施例中,步骤106具体包括:终端设备通过CBPeripheral类的discoverServices方法扫描设备中的服务,通过didDiscoverServices代理获取扫描到的服务;
步骤107:终端设备扫描并获取服务中的特征;
在本实施例中,步骤107具体包括:终端设备通过CBPeripheral类的discoverCharacteristics:nil forService函数扫描服务中的特征,通过didDiscoverCharacteristicsForService代理获取扫描到的特征;
步骤108:终端设备连接与特征对应的设备,并判断是否连接成功,是则保存蓝牙设备对象和扫描到的读写特征,开始与蓝牙设备进行数据通讯,否则返回步骤108;
在本实施例中,步骤108具体包括:终端设备通过CBCentralManager类的connectPeripheral方法连接与特征对应的设备,并通过CBCentralManager类的didconnectPeripheral代理获取连接成功的状态,如返回TRUE则保存蓝牙设备对象和扫描到的读写特征,否则返回步骤108;
优选的,在本实施例中,如在预设时间内终端设备与对应的蓝牙设备未连接成功,则会报错。
实施例二
本发明实施例二提供一种连接蓝牙双模设备的方法,如图2所示,包括
步骤201:终端设备将要连接的蓝牙设备名称设为预定名;
步骤202:终端设备获取自身系统的版本号,并判断自身系统的版本号是否小于第一预设值,是则执行步骤203,否则执行步骤207;
具体的,在本实施例中,终端设备获取版本常量值,并判断版本常量值是否小于第一预设值,是则执行步骤203,否则执行步骤207。终端设备开机后赋值给版本常量值;优选的,版本常量值为Build.VERION.SDK_INT;第一预设值具体为18;例如获取版本常量值具体为:Build.VERSION.SDK_INT>=Build.VERSION_CODES.JELLY_BEAN_MR2;
步骤203:终端设备获取BLE硬件特征属性,并判断是否获取到,是则执行步骤204,否则执行步骤207;
在本实施例中,终端设备通过调用第二系统函数获取BLE硬件特征属性,具体的,第二系统函数为:PackageManage类中的函数hasSystemFeature(),如第二函数返回True则获取到BLE硬件特征属性,如第二函数返回False则未获取到BLE硬件特征属性;
步骤204:终端设备设置蓝牙通讯类型为第一方式;
具体的,在本实施例中,终端设备设置蓝牙通讯类型为bt4,即终端设备支持蓝牙4.0及4.1的标准,终端设备与蓝牙设备通过BLE连接;例如:预先定义枚举类型的全局变量在步骤204中将其设置为bt4;
步骤205:终端设备搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则执行步骤206,否则执行步骤207;
优选的,终端设备判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备,具体的,本实施例中的第一预设时间为20s;
在本实施例中,蓝牙设备开启后,进行分时广播,广播间隔频率为2Hz;当蓝牙设备接收到连接请求后,在第二预设时间之后判断是否还在连接,是则停止所有广播,结束,否则关闭电源;具体的,第二预设时间为180s;如终端设备搜索到广播,则表示搜索到了蓝牙设备;
在本实施例中,终端设备通过扫描函数采用BLE方式搜索蓝牙设备:具体的,本实施例中的扫描函数为BluetoothAdapter.startLeScan(mBleScanCallback),其中mBleScanCallback是类LeScanCallback实例化对象,当扫描到一个设备时系统回调该对象的onLeScan(final BluetoothDevice device,int rssi,byte[]scanRecord)函数,该函数的第一参数即为蓝牙设备对象,也就是扫描到的蓝牙设备,通过该蓝牙设备对象的getName()方法获取到该蓝牙设备的名称,通过String.equal(String)方法比较获取到的蓝牙设备的名称与预定名,如果返回值为true,则认为找到了目标蓝牙设备,停止BLE扫描,开始BLE连接,否则继续等待系统回调onLeScan()。如果在预设的时间内仍没有找到目标蓝牙设备,则通过BluetoothAdapter.stopLeScan(mBleScanCallback)方法停止BLE扫描。
步骤206:终端设备向搜索到的蓝牙设备发起连接,并判断连接是否成功,是则开始与蓝牙设备进行数据通讯,否则返回步骤205;
在本实施例中,步骤206之前还包括:终端设备实例化BluetoothGattCallback()类;BluetoothGattCallback()是一个抽象类,包含onConnectionStateChange(BluetoothGatt gatt,int status,int newState),用于判断连接状态,其中第三参数newState表示连接或断开,第二参数status表示连接或断开是否成功;
本实施例中终端设备根据蓝牙设备对象调用第三系统函数发起连接,并获得配置对象,具体的,第三系统函数为:connectGatt(Context context,boolean autoConnect,BluetoothGattCallback callback);其中第三参数callback即为实例化的BluetoothGattCallback()类,第二参数优选为false,第三系统函数会返回一个BluetoothGatt对象(命名为gatt)即配置对象;
在本实施例中,终端设备根据配置对象(gatt)调用回调函数判断连接是否成功,是则与蓝牙设备进行数据通讯,否则返回步骤208;具体的,终端设备调用回调函数nConnectionStateChange(BluetoothGatt gatt,int status,int newState),根据该函数的第三参数newState判断状态是连接还是断开如newState为BluetoothProfile.STATE_CONNECTED则表示连接,newState为BluetoothProfile.STATE_DISCONNECTED则表示断开;;第二参数status表示连接或断开是否成功,如第二参数为true则表示成功,为false则表示失败;
在本实施例中,步骤206判断为否时还可以去执行步骤207;
步骤207:终端设备设置蓝牙通讯类型为第二方式;
具体的,在本实施例中,终端设备设置蓝牙通讯类型为bt3;即终端设备支持蓝牙3.0及其以下的标准,终端设备与蓝牙设备通过SPP连接;例如:将预先定义的全局变量设置为bt3;
步骤208:终端设备注册广播接收器,并设置该广播接收器的过滤器的动作;
在本实施例中,步骤208具体为:终端设备通过Context.registerReceiver(mReceiver,filter)注册广播接收器,参数mReceiver是定义的广播接收器类对象,通过IntentFilter filter=new IntentFilter(BluetoothDevice.ACTION_FOUND)定义广播接收器的过滤器,并将其动作设置为BluetoothDevice.ACTION_FOUND;
步骤209:终端设备搜索蓝牙设备,判断是否搜索到与预定名对应的蓝牙设备,是则执行步骤210,否则返回步骤204;
优选的,终端设备判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备,是则执行步骤210,否则返回步骤204;
在本实施例中,步骤209包括:终端设备搜索蓝牙设备并获取该蓝牙设备的名称,判断获取到的蓝牙设备的名称是否与预定名相同,是则执行步骤210,否则返回步骤204;具体的,终端设备通过BluetoothAdapter.startDiscovery()方法搜索蓝牙设备,当搜索到蓝牙设备时触发mReceiver对象的onReceive(Context context,Intent intent)函数,通过该函数的第二参数的getParcelableExtra(BluetoothDevice.EXTRA_DEVICE)方法可以获取到蓝牙设备对象,也就是扫描到的蓝牙设备;通过该蓝牙设备对象的getName()方法获取到该蓝牙设备的名称,通过String.equal(String)方法比较该蓝牙设备的名称与预定名,如返回true则则认为找到了目标蓝牙设备,停止3.0扫描,开始3.0连接,否则继续扫描。如果在预设的时间内仍没有找到目标蓝牙设备,则停止3.0扫描。本实施例中,停止扫描的方法是:BluetoothAdapter.cancelDiscovery()。
步骤210:终端设备对查找到的蓝牙设备发起连接,并判断连接是否成功,是则开始与蓝牙设备进行数据通讯,否则返回步骤209;
在本实施例中,步骤210之前还包括:终端设备根据获取到的蓝牙设备对象调用第四系统函数创建连接对象(mSocket);具体的,第四系统函数为:createRfcommSocketToServiceRecord(MY_UUID),其中参数MY_UUID是一个蓝牙唯一标识(UUID)变量,优选的UUID为00002201-0000-2000-8000-00805F9B34FB;
步骤210具体为:终端设备根据连接对象(mSocket)调用第五系统函数对蓝牙设备发起连接,并判断连接是否成功,是则与蓝牙设备进行数据通讯,否则返回步骤209;第五系统函数为mSocket.connect(),若该函数正常返回,没有抛异常,则认为连接成功,否则连接失败;
在本实施例中,步骤210判断为否时还可以去执行步骤205;
本实施例的方法适用于支持蓝牙的终端设备(如安卓手机和苹果手机),终端设备首先使用低功耗方式与蓝牙设备进行连接,如连接不上再使用经典蓝牙方式与蓝牙设备进行连接,这样无论是IOS系统设备还是安卓设备,首先均使用低功耗方式连接,达到节电的目的,使终端设备的兼容性更好。
实施例三
本发明实施例三提供一种连接蓝牙双模设备的方法,如图3所示,包括
步骤301:终端设备获取自身系统的版本号,并判断自身系统的版本号是否小于第一预设值,是则执行步骤302,否则执行步骤308;
步骤302:终端设备通过调用第二系统函数获取BLE硬件特征属性,并判断是否获取到,是则执行步骤303,否则执行步骤308;
步骤303:终端设备设置蓝牙通讯类型为第一方式;
具体的,在本实施例中,终端设备设置蓝牙通讯类型为bt4,即终端设备支持蓝牙4.0及4.1的标准,终端设备与蓝牙设备通过BLE连接;
步骤304:终端设备搜索蓝牙设备,并判断在第一预设时间内是否搜索到预定名的蓝牙设备,是则执行步骤305,否则执行步骤308;
具体的,本实施例中的第一预设时间为10s;
在本实施例中,蓝牙设备开启后,进行分时广播,广播间隔频率为2Hz;当蓝牙设备接收到连接请求后,在第二预设时间之后判断是否还在连接,是则停止所有广播,结束,否则关闭电源;具体的,第二预设时间为180s;
蓝牙设备进行分时广播具体为:蓝牙备在第二预设频道范围上进行蓝牙4.0广播,到达第一预设时间后,在第一预设频道上进行蓝牙3.0广播,到达第一预设时间后,重新在第二预设频道范围上进行蓝牙4.0广播,并且当蓝牙智能密钥设备进行蓝牙3.0广播或蓝牙4.0广播后,在第二预设时间内等待接收来自移动终端的连接请求。
步骤305:终端设备实例化BluetoothGattCallback()类;
步骤306:终端设备根据蓝牙设备对象调用第三系统函数发起连接,并获得配置对象;
具体的,本实施例中的第三系统函数为:device.connectGatt();
步骤307:终端设备根据配置对象调用回调函数判断连接是否成功,是则开始与蓝牙设备进行数据通讯,否则返回步骤304;
步骤308:终端设备设置蓝牙通讯类型为第二方式;
具体的,在本实施例中,终端设备设置蓝牙通讯类型为bt3;即终端设备支持蓝牙3.0及其以下的标准,终端设备与蓝牙设备通过SPP连接;
步骤309:终端设备注册广播接收器,并设置该广播接收器的过滤器的动作;
步骤310:终端设备判断在第一预设时间内是否查找到与预定名对应的蓝牙设备,是则执行步骤311,否则返回步骤303;
步骤311:终端设备根据蓝牙唯一标识调用第四系统函数创建连接对象;
具体的,本实施例中的第四系统函数为:createRfcommSocketToServiceRecord();优选的,蓝牙唯一标识为UUID;
步骤312:终端设备根据连接对象调用第五系统函数对蓝牙设备发起连接,并判断连接是否成功,是则开始与蓝牙设备进行数据通讯,否则返回步骤310;
具体的,在本实施例中,第五系统函数为mSocket.connect()。
实施例四
本发明实施例四提供一种连接蓝牙双模设备的装置,如图4所示,包括:
第一判断模块401,用于判断终端设备是否支持低功耗蓝牙设备,是则触发第一设置模块402,否则触发第二设置模块405;
在本实施例中,第一判断模块401包括第一判断单元和第二判断单元;
第一判断单元,用于获取终端设备系统的版本号,并判断终端设备系统的版本号是否小于第一预设值,是则触发第二设置模块405,否则触发第二判断单元;
本实施例中的装置还包括:赋值模块,用于在终端设备开机后给版本常量赋值;第一判断单元具体用于获取版本常量的值,并判断版本常量的值是否小于第一预设值;
第二判断单元,用于获取低功耗硬件特征属性,并判断是否获取到,是则触发第一设置模块402,否则触发第二设置模块405;
在本实施例中,第二判断单元具体用于通过调用第二系统函数获取低功耗硬件特征属性,如第二函数返回第一字符则获取到低功耗硬件特征属性,如第二函数返回第二字符则未获取到低功耗硬件特征属性;例如,第一字符为True,第二字符为False;
第一设置模块402,用于设置与蓝牙设备的连接方式为低功耗连接;
第一搜索判断模块403,用于搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则触发第一连接判断模块404,否则触发第二设置模块405;
优选的,在本实施例中,第一搜索判断模块404用于搜索蓝牙设备,并判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备;
在本实施例中,第一搜索判断模块403具体用于通过扫描函数采用低功耗方式搜索蓝牙设备,根据扫描函数的第一参数值获取蓝牙设备对象,通过蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较获取到的蓝牙设备的名称是否与预定名相同,是则触发第一连接判断模块404,否则触发第二设置模块405;
第一连接判断模块404,用于向搜索到的蓝牙设备发起连接,并判断连接是否成功,是则开始与蓝牙设备进行数据通讯,否则触发第一搜索判断模块403;
在本实施例中,第一连接判断模块404具体用于根据蓝牙设备对象调用第三系统函数发起连接,并获得配置对象,根据配置对象调用回调函数判断连接是否成功,是则开始与蓝牙设备进行数据通讯,否则触发第一搜索判断模块403;
第二设置模块405,用于设置与蓝牙设备的连接方式为经典蓝牙连接;
注册设置模块406,用于注册广播接收器,并设置广播接收器的过滤器的动作;
第二搜索判断模块407,用于搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则触发第二连接判断模块408,否则触发第一设置模块402;
优选的,在本实施例中,第二搜索判断模块407用于搜索蓝牙设备,并判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备;
在本实施例中,第二搜索判断模块407具体用于通过蓝牙扫描方法搜索蓝牙设备,当搜索到蓝牙设备时触发接收对象的接收函数,通过接收函数的第二参数获取蓝牙设备对象,通过蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较获取到的蓝牙设备的名称是否与预定名相同,是则触发第二连接判断模块408,否则触发第一设置模块402;
第二连接判断模块408,用于向搜索到的蓝牙设备发起连接,并判断连接是否成功,是则开始与蓝牙设备进行数据通讯,否则触发第二搜索判断模块407。
本实施例中的装置还包括:创建模块,用于根据获取到的蓝牙设备对象调用第四系统函数创建连接对象;
在本实施例中,第二连接判断模块408具体用于根据连接对象调用第五系统函数对获取到的蓝牙设备发起连接,若第五函数正常返回,则连接成功,开始与蓝牙设备进行数据通讯,否则连接失败,触发第二搜索判断模块407。
本实施例中的装置还包括:设定模块,用于将要连接的蓝牙设备名称设为预定名。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (12)

1.一种连接蓝牙双模设备的方法,其特征在于,包括:
步骤S1:终端设备判断自身是否支持低功耗蓝牙设备,是则执行步骤S2,否则执行步骤S5;
步骤S2:所述终端设备设置与蓝牙设备的连接方式为低功耗连接;
步骤S3:所述终端设备搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则执行步骤S4,否则执行步骤S5;
步骤S4:所述终端设备向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则返回步骤S3;
步骤S5:所述终端设备设置与蓝牙设备的连接方式为经典蓝牙连接;
步骤S6:所述终端设备注册广播接收器,并设置所述广播接收器的过滤器的动作;
步骤S7:所述终端设备搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则执行步骤S8,否则返回步骤S2;
步骤S8:所述终端设备向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则返回步骤S7;
所述步骤S3具体为:
所述终端设备通过扫描函数采用低功耗方式搜索蓝牙设备,根据所述扫描函数的第一参数值获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则执行步骤S4,否则执行步骤S5;
所述步骤S4具体为:所述终端设备根据所述蓝牙设备对象调用第三系统函数发起连接,并获得配置对象,根据所述配置对象调用回调函数判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则返回步骤S3;
所述步骤S7具体包括:所述终端设备通过蓝牙扫描方法搜索蓝牙设备,当搜索到蓝牙设备时触发接收对象的接收函数,通过所述接收函数的第二参数获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则执行步骤S8,否则返回步骤S2;
所述步骤S8之前还包括:所述终端设备根据获取到的所述蓝牙设备对象调用第四系统函数创建连接对象;
所述步骤S8具体为:所述终端设备根据所述连接对象调用第五系统函数对获取到的所述蓝牙设备发起连接,若所述第五函数正常返回,则连接成功,开始与所述蓝牙设备进行数据通讯,否则连接失败,返回步骤S7。
2.如权利要求1所述的方法,其特征在于,所述步骤S1包括:
步骤S1-1:所述终端设备获取自身系统的版本号,并判断所述自身系统的版本号是否小于第一预设值,是则执行步骤S5,否则执行步骤S1-2;
步骤S1-2:所述终端设备获取低功耗硬件特征属性,并判断是否获取到,是则执行步骤S2,否则执行步骤S5。
3.如权利要求2所述的方法,其特征在于,还包括:所述终端设备开机后给版本常量赋值;
所述步骤S1-1具体为:所述终端设备获取所述版本常量的值,并判断所述版本常量的值是否小于第一预设值,是则执行步骤S5,否则执行步骤S1-2。
4.如权利要求2所述的方法,其特征在于,所述步骤S1-2具体为:所述终端设备通过调用第二系统函数获取低功耗硬件特征属性,如所述如第二函数返回第一字符则获取到低功耗硬件特征属性,如第二函数返回第二字符则未获取到低功耗硬件特征属性。
5.如权利要求1所述的方法,其特征在于,所述步骤S3或步骤S7之前包括:所述终端设备将要连接的蓝牙设备名称设为预定名。
6.如权利要求1所述的方法,其特征在于,所述判断是否搜索到与预定名对应的蓝牙设备,具体为:判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备。
7.一种连接蓝牙双模设备的装置,其特征在于,包括:
第一判断模块,用于判断终端设备是否支持低功耗蓝牙设备,是则触发第一设置模块,否则触发第二设置模块;
所述第一设置模块,用于设置与蓝牙设备的连接方式为低功耗连接;
第一搜索判断模块,用于搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则触发第一连接判断模块,否则触发所述第二设置模块;
所述第一连接判断模块,用于向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则触发所述第一搜索判断模块;
所述第二设置模块,用于设置与蓝牙设备的连接方式为经典蓝牙连接;
注册设置模块,用于注册广播接收器,并设置所述广播接收器的过滤器的动作;
第二搜索判断模块,用于搜索蓝牙设备,并判断是否搜索到与预定名对应的蓝牙设备,是则触发第二连接判断模块,否则触发所述第一设置模块;
所述第二连接判断模块,用于向搜索到的所述蓝牙设备发起连接,并判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则触发所述第二搜索判断模块;
所述第一搜索判断模块具体用于通过扫描函数采用低功耗方式搜索蓝牙设备,根据所述扫描函数的第一参数值获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则触发第一连接判断模块,否则触发所述第二设置模块;
所述第一连接判断模块具体用于根据所述蓝牙设备对象调用第三系统函数发起连接,并获得配置对象,根据所述配置对象调用回调函数判断连接是否成功,是则开始与所述蓝牙设备进行数据通讯,否则触发所述第一搜索判断模块;
所述第二搜索判断模块具体用于通过蓝牙扫描方法搜索蓝牙设备,当搜索到蓝牙设备时触发接收对象的接收函数,通过所述接收函数的第二参数获取蓝牙设备对象,通过所述蓝牙设备对象中的获取名称函数获取蓝牙设备的名称,并比较所述获取到的蓝牙设备的名称是否与预定名相同,是则触发第二连接判断模块,否则触发所述第一设置模块;
所述装置还包括:创建模块,用于根据获取到的所述蓝牙设备对象调用第四系统函数创建连接对象;
所述第二连接判断模块具体用于根据所述连接对象调用第五系统函数对获取到的所述蓝牙设备发起连接,若所述第五函数正常返回,则连接成功,开始与所述蓝牙设备进行数据通讯,否则连接失败,触发所述第二搜索判断模块。
8.如权利要求7所述的装置,其特征在于,所述第一判断模块包括:
第一判断单元,用于获取终端设备系统的版本号,并判断所述终端设备系统的版本号是否小于第一预设值,是则触发所述第二设置模块,否则触发第二判断单元;
所述第二判断单元,用于获取低功耗硬件特征属性,并判断是否获取到,是则触发所述第一设置模块,否则触发所述第二设置模块。
9.如权利要求8所述的装置,其特征在于,还包括:
赋值模块,用于在所述终端设备开机后给版本常量赋值;
所述第一判断单元具体用于获取所述版本常量的值,并判断所述版本常量的值是否小于第一预设值。
10.如权利要求8所述的装置,其特征在于,所述第二判断单元具体用于通过调用第二系统函数获取低功耗硬件特征属性,如所述第二函数返回第一字符则获取到低功耗硬件特征属性,如第二函数返回第二字符则未获取到低功耗硬件特征属性。
11.如权利要求7所述的装置,其特征在于,还包括:设定模块,用于将要连接的蓝牙设备名称设为预定名。
12.如权利要求7所述的装置,其特征在于,所述第一搜索判断模块用于搜索蓝牙设备,并判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备;
所述第二搜索判断模块用于搜索蓝牙设备,并判断在第一预设时间内是否搜索到与预定名对应的蓝牙设备。
CN201610443522.8A 2016-06-20 2016-06-20 一种连接蓝牙双模设备的方法及装置 Active CN106131810B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610443522.8A CN106131810B (zh) 2016-06-20 2016-06-20 一种连接蓝牙双模设备的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610443522.8A CN106131810B (zh) 2016-06-20 2016-06-20 一种连接蓝牙双模设备的方法及装置

Publications (2)

Publication Number Publication Date
CN106131810A CN106131810A (zh) 2016-11-16
CN106131810B true CN106131810B (zh) 2020-06-02

Family

ID=57470032

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610443522.8A Active CN106131810B (zh) 2016-06-20 2016-06-20 一种连接蓝牙双模设备的方法及装置

Country Status (1)

Country Link
CN (1) CN106131810B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106686535B (zh) * 2017-01-23 2020-02-11 飞天诚信科技股份有限公司 一种在iOS系统上实现低功耗蓝牙通信的方法及装置
CN107135463A (zh) * 2017-04-01 2017-09-05 杭州联络互动信息科技股份有限公司 一种蓝牙连接方法和装置
CN108551670B (zh) 2018-03-30 2021-06-25 深圳市冠旭电子股份有限公司 一种蓝牙连接方法、装置及智能终端
CN108738008B (zh) * 2018-07-10 2021-04-06 深圳市闻耀电子科技有限公司 蓝牙配对方法及系统
CN108924805B (zh) * 2018-07-13 2021-05-14 杭州网易云音乐科技有限公司 蓝牙连接方法、介质和第一、第二电子设备以及计算设备
CN109151788A (zh) * 2018-09-28 2019-01-04 咪付(广西)网络技术有限公司 一种基于低功耗蓝牙设备的手机数据传输方法及系统
CN112469015B (zh) 2019-09-06 2022-04-12 华为技术有限公司 蓝牙连接的方法和电子设备
CN117412271A (zh) * 2022-02-22 2024-01-16 Oppo广东移动通信有限公司 蓝牙连接方法、音频设备及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103716068A (zh) * 2013-12-17 2014-04-09 浙江省海洋开发研究院 基于蓝牙的手机交互式管理装置及方法
CN105379315A (zh) * 2013-05-07 2016-03-02 三星电子株式会社 用于在便携式终端中发送内容的设备和方法
CN105517110A (zh) * 2015-11-24 2016-04-20 飞天诚信科技股份有限公司 一种连接蓝牙设备的方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150263548A1 (en) * 2014-03-14 2015-09-17 Emily Cooper Systems and methods for wireless power distribution allocation
KR102274730B1 (ko) * 2014-11-26 2021-07-08 삼성전자주식회사 전자 장치 및 전자 장치에서의 정보 전송 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105379315A (zh) * 2013-05-07 2016-03-02 三星电子株式会社 用于在便携式终端中发送内容的设备和方法
CN103716068A (zh) * 2013-12-17 2014-04-09 浙江省海洋开发研究院 基于蓝牙的手机交互式管理装置及方法
CN105517110A (zh) * 2015-11-24 2016-04-20 飞天诚信科技股份有限公司 一种连接蓝牙设备的方法及装置

Also Published As

Publication number Publication date
CN106131810A (zh) 2016-11-16

Similar Documents

Publication Publication Date Title
CN106131810B (zh) 一种连接蓝牙双模设备的方法及装置
CN111246545B (zh) 引导智能设备接入网络的方法、介质、控制终端及系统
CN112449328B (zh) 一种蓝牙搜索方法、系统及相关装置
CN108476060B (zh) 用于双模蓝牙设备之间建立经典蓝牙连接的方法和双模蓝牙设备
CN101959321A (zh) 一种基于手机wifi的情景模式切换方法及手机
CN1758784A (zh) 具有紧急呼叫功能的移动通信终端以及在移动通信终端中处理紧急呼叫请求的方法
US11224027B2 (en) Cell registration method and device
CN107770762B (zh) 一种建立蓝牙连接的方法及装置
CN111464994B (zh) 一种实现蓝牙设备众寻的方法及系统
CN103997771A (zh) 基于无线接入识别技术进行应用和消息触发的系统及方法
CN110324831B (zh) 一种配网方法、装置、电子设备、终端和存储介质
CN105246074A (zh) 建立连接的方法及装置
CN113572890B (zh) 音量管理的方法及电子设备
CN112261638B (zh) 快速识别双模蓝牙设备的方法、装置、ios设备及介质
EP3086582B1 (en) Method, devices and system for transmitting sim card information
CN113055864A (zh) 蓝牙连接方法、装置、存储介质及电子设备
CN114615660A (zh) 接入方法、系统及电子设备
CN110572508B (zh) 通讯录同步方法、装置、存储介质及电子设备
KR20200014986A (ko) 무선 통신 시스템에서 plmn을 검색하기 위한 전자 장치 및 방법
CN106211355B (zh) 一种控制数据交互的设备、系统及其工作方法
CN104618987B (zh) 接入网络的方法及装置
CN114640974B (zh) 数据迁移方法、设备及存储介质
KR101295713B1 (ko) 동일한 아이디를 가진 복수의 가입자 확인 모듈을 이용한 통신 서비스 제공 장치 및 방법
CN113079500B (zh) 一种终端激活方法、装置、存储介质及电子设备
KR101075997B1 (ko) 다중 모드 단말기에서 서비스 등록을 위한 장치 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant