CN105188023B - 一种蓝牙通讯方法和通讯装置 - Google Patents

一种蓝牙通讯方法和通讯装置 Download PDF

Info

Publication number
CN105188023B
CN105188023B CN201510666316.9A CN201510666316A CN105188023B CN 105188023 B CN105188023 B CN 105188023B CN 201510666316 A CN201510666316 A CN 201510666316A CN 105188023 B CN105188023 B CN 105188023B
Authority
CN
China
Prior art keywords
module
target
device object
ios system
acquisition
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
CN201510666316.9A
Other languages
English (en)
Other versions
CN105188023A (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 CN201510666316.9A priority Critical patent/CN105188023B/zh
Publication of CN105188023A publication Critical patent/CN105188023A/zh
Priority to PCT/CN2016/099759 priority patent/WO2017063493A1/zh
Priority to US15/940,934 priority patent/US10334410B2/en
Application granted granted Critical
Publication of CN105188023B publication Critical patent/CN105188023B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/725Cordless telephones
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/02Details of telephonic subscriber devices including a Bluetooth interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本发明公开了一种蓝牙通讯方法和通讯装置,所述方法包括:初始化中心设备对象,根据中心设备对象获取与蓝牙4.0设备对应的第一设备对象,根据第一设备对象和与第一设备对象对应的蓝牙4.0设备进行配对,获取第二设备对象;根据第一设备对象或第二设备对象获取第三设备对象,从第三设备对象中获取与预设服务标识对应的目标服务;根据目标服务获取第一服务,从第一服务中获取与预设特征标识对应的目标特征,通过目标特征实现与蓝牙4.0设备之间的通讯。

Description

一种蓝牙通讯方法和通讯装置
技术领域
本发明涉及通信领域,特别涉及一种蓝牙通讯方法和通讯装置。
背景技术
蓝牙4.0核心规范(Bluetooth Core Specification Version 4.0)是蓝牙技术联盟最新公布的蓝牙技术规范,具有省电、成本低、3毫秒低延迟、超长有效连接距离、AES-128加密等特点。现有技术中,移动终端和蓝牙4.0设备之间不能很好的进行通讯。
发明内容
本发明解决了移动终端和蓝牙4.0设备之间不能很好的进行通讯的技术问题。
本发明提供了一种蓝牙通讯方法,包括:
步骤s1:初始化中心设备对象,根据所述中心设备对象获取第一设备对象;
步骤s2:根据所述第一设备对象,与对应的目标蓝牙设备进行配对,获取第二设备对象;
步骤s3:根据所述第一设备对象或第二设备对象,获取第三设备对象,从所述第三设备对象中获取与预设服务标识对应的目标服务;
步骤s4:根据所述目标服务获取第一服务,从所述第一服务中获取与预设特征标识对应的目标特征,保存所述目标特征,使用所述目标特征与所述目标蓝牙设备进行通讯。
本发明还提供了一种通讯装置,包括:中心模块、第一获取模块、配对模块、第二获取模块、第三获取模块、第四获取模块、第五获取模块、第六获取模块、保存模块和通讯模块;
所述中心模块,用于初始化中心设备对象;
所述第一获取模块,用于根据所述中心模块初始化的所述中心设备对象获取第一设备对象;
所述配对模块,用于根据所述第一获取模块获取到的所述第一设备对象,与对应的目标蓝牙设备进行配对;
所述第二获取模块,用于当所述配对模块根据所述第一获取模块获取到的所述第一设备对象,与对应的目标蓝牙设备进行配对后,获取第二设备对象;
所述第三获取模块,用于当所述第二获取模块获取到第二设备对象后,根据所述第二设备对象或所述第一获取模块获取到的所述第一设备对象,获取第三设备对象;
所述第五获取模块,用于从所述第三获取模块获取到的所述第三设备对象中获取与预设服务标识对应的目标服务;
所述第四获取模块,用于根据所述第五获取模块获取到的目标服务获取第一服务;
所述第六获取模块,用于从所述第四获取模块获取到的所述第一服务中获取与所述预设特征标识对应的目标特征;
所述保存模块,用于保存所述第六获取模块获取到的所述目标特征;
所述通讯模块,用于使用所述保存模块保存的所述目标特征和所述目标蓝牙设备进行通讯。
本发明的有益效果:本发明提供了一种蓝牙通讯方法和通讯装置,本发明根据中心设备对象获取目标蓝牙设备中的与预设特征标识对应的目标特征,使用目标特征实现与目标蓝牙设备之间的通讯。
附图说明
图1为本发明实施例1提供的一种蓝牙通讯方法的流程图;
图2为本发明实施例2提供的一种蓝牙通讯方法的流程图;
图3为本发明实施例3提供的一种蓝牙通讯方法的流程图。
图4为本发明实施例4提供的一种通讯装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本实施例提供了一种蓝牙通讯方法:初始化中心设备对象,根据中心设备对象获取第一设备对象;根据第一设备对象,与对应的目标蓝牙设备进行配对,获取第二设备对象;根据第一设备对象或第二设备对象,获取第三设备对象,从第三设备对象中获取与预设服务标识对应的目标服务;根据目标服务获取第一服务,从第一服务中获取与预设特征标识对应的目标特征,保存目标特征,使用目标特征与目标蓝牙设备进行通讯。如图1所示,具体包括:
本实施例中提供的蓝牙通讯方法可以但不限于由安装在具有IOS系统的移动终端中的驱动程序或者由安装在具有IOS系统的移动终端上的包括驱动程序和应用程序的可执行文件来实现。具有IOS系统的移动终端可以为iphone、iPod itouch、iPad或Apple TV等设备。本实施例中,蓝牙设备具体为支持蓝牙4.0核心规范的蓝牙4.0设备,例如可以为:支持蓝牙4.0核心规范的蓝牙读卡器、蓝牙KEY等。
步骤101:初始化中心设备对象,根据中心设备对象向IOS系统发送搜索设备请求;
具体地,初始化中心设备对象,使用中心设备对象调用IOS系统的发现周边设备方法向IOS系统发送搜索设备请求。
本实施例中,初始化中心设备对象具体为:创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口。
创建中心设备对象可以为:
CBCentralManager*manager
manager=[[CBCentralManager alloc]init];
根据中心设备对象设置IOS系统中的中心委派接口,可以为:
-(instanceType)initWithDelegate:(id<CBCentralManagerDelegate>)delegate queue:(dispatch_queue_t)queue;
本实施例中,发现周边设备方法可以为:
@interface CBCentralManager:NSObject
-(void)scanForPeripheralsWithServices:
(NSArray*)serviceUUIDs options:
(NSDictionary*)options;
@end
本实施例中,可以将参数serviceUUIDs设置为空值或者为预设服务标识。当将参数serviceUUIDs设置为预设服务标识时,搜索设备请求具体为:包括预设服务标识的搜索设备请求。
本实施例中,蓝牙设备可以为一个或多个,例如:当蓝牙设备为3个时,分别为蓝牙设备1、蓝牙设备2和蓝牙设备3时,搜索到的与蓝牙设备对应的周边设备对象分别为:与蓝牙设备1对应的周边设备对象1、与蓝牙设备2对应的周边设备对象2和与蓝牙设备3对应的周边设备对象3。
步骤102:获取来自IOS系统的与目标蓝牙设备对应的第一设备对象;
具体地,当通过第一委派接口获取到来自所述IOS系统的与目标蓝牙设备对应的第一设备对象后,执行步骤103。
本实施例中,第一委派接口可以是IOS系统的发现周边设备委派接口:
@protocol CBCentralManagerDelegate<NSObject>
@optional
-(void)centralManager:
(CBCentralManager*)centraldidDiscoverPeripheral:
(CBPeripheral*)peripheraladvertisementData:
(NSDictionary*)advertisementData RSSI:(NSNumber*)RSSI;
@end
本步骤可以具体包括:
步骤a1:当搜索到与每个蓝牙设备分别对应的周边设备对象后,保存周边设备对象,输出周边设备对象中的设备标识;
具体地,当通过第一委派接口获取到来自IOS系统的系统中心设备对象和与每个蓝牙设备对应的周边设备对象后,判断系统中心设备对象是否和中心设备对象相匹配,如果是,则将获取到的周边设备对象存储到第一设备列表中,并输出周边设备对象中的设备标识;
本实施例中,设备标识是蓝牙设备的唯一识别信息,可以具体为蓝牙设备的设备名称、MAC地址等。
步骤a2:当获取到被选中的目标设备标识后,获取与目标设备标识对应的第一设备对象;
具体地,当获取到来自用户选择的目标设备标识后,根据目标设备标识在第一设备列表中查找是否存在与目标设备标识对应的周边设备对象,如果查找到,则将与目标设备标识对应的周边设备对象作为第一设备对象,执行步骤103;否则,报错。
步骤103:通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对;
具体地,使用中心设备对象调用IOS系统的连接周边设备方法和与第一设备对象对应的目标蓝牙设备进行配对。
本实施例中,IOS系统的连接周边设备方法可以为:
@interface CBCentralManager:NSObject
-(void)connectPeripheral:(CBPeripheral*)peripheral options:(NSDictonary*)options;
@end
步骤104:获取来自IOS系统的第二设备对象;
具体地,当通过第二委派接口获取到来自IOS系统的系统中心设备对象和第二设备对象后,判断系统中心设备对象是否和中心设备对象相匹配,如果是,则保存第二设备对象,根据第二设备对象设置IOS系统中的周边委派接口,执行步骤105,否则,报错。
本实施例中,第二委派接口可以是IOS系统的连接周边设备委派接口:
@protocol CBCentralManagerDelegate<NSObject>
@optional
-(void)centralManager:(CBCentralManager*)cental didConnectPeripheral:(CBPeripheral*)aPeripheral;
@end
需要说明的是,步骤104之前,还可以包括:保存第一设备对象,相应地,步骤104中当获取到来自IOS系统的系统中心设备对象和第二设备对象后,还可以根据第一设备对象设置IOS系统中的周边委派接口。
步骤105:根据第一设备对象或者第二设备对象向IOS系统发送获取设备服务请求;
具体地,使用第一设备对象或者第二设备对象调用IOS系统的发现周边设备服务方法向IOS系统发送获取设备服务请求。
本实施例中,IOS系统的发现周边设备服务方法为:
@interface CBPeripheral:CBPeer
-(void)discoverServices:(NSArray*)serviceUUIDs;
@end
本实施例中,获取设备服务请求中可以包括预设服务标识。具体地,将参数serviceUUIDs设置为预设服务标识。
步骤106:当获取到来自IOS系统的第三设备对象后,在第三设备对象中获取与预设服务标识对应的目标服务;
具体地,当通过第三委派接口获取到来自IOS系统的与目标蓝牙设备对应的第三设备对象后,判断第三设备对象中是否存在和预设服务标识对应的目标服务,如果是,则执行步骤107;否则,报错。
本实施例中,第三委派接口可以是IOS系统的发现周边设备服务委派接口:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)peripheral didDiscoverServices:(NSError*)error;
@end
步骤107:向IOS系统发送包括目标服务的获取设备特征请求;
具体地,使用第一设备对象或者第二设备对象或第三设备对象调用IOS系统的发现周边设备特征方法向IOS系统发送包括目标服务的获取设备特征请求。
IOS系统的发现周边设备特征方法可以为:
@interface CBPeripheral:CBPeer
-(void)discoverCharacteristics:(NSArray*)characteristicUUIDsforService:(CBService*)service;
@end
本实施例中,获取设备特征请求中还可以包括预设特征标识。
步骤108:当获取到来自IOS系统的与预设服务标识对应的第一服务后,在第一服务中获取与预设特征标识对应的目标特征,保存与预设特征标识对应的目标特征;
具体地,当通过第四委派接口获取到来自IOS系统的第一服务后,判断第一服务是否和预设服务标识相匹配,如果是,在第一服务中获取与预设特征标识对应的目标特征,保存与预设特征标识对应的目标特征;否则,报错。
本实施例中,第四委派接口可以是发现周边设备特征委派接口:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)peripheral didDiscoverCharacteristicForService:(CBService*)service error:(NSError*)error;
@end
本实施例中预设特征标识可以具体包括预设读特征标识和预设写特征标识。相应地本步骤具体为:当获取到来自IOS系统的与预设服务标识对应的第一服务后,在第一服务中获取与预设读特征标识对应的目标读特征和与预设写特征标识对应的目标写特征,保存目标写特征和目标读特征。
步骤109:使用目标特征通过IOS系统和目标蓝牙设备进行通讯。
具体地,使用目标读特征和目标写特征通过IOS系统与目标蓝牙设备进行通讯。
还需说明的是,使用目标读特征和目标写特征通过IOS系统与目标蓝牙设备进行通讯之前,还包括:打开目标读特征的读通道标识。打开目标读特征的读通道标识可以具体为:将读通道标识置1。
本实施例中,步骤102还可以具体包括:
当所述获取到来自IOS系统的与每个蓝牙设备分别对应的周边设备对象后,保存周边设备对象,将保存的周边设备对象中的第一个周边设备对象作为第一设备对象。
相应地,步骤106具体为:当通过第三委派接口获取到来自IOS系统的与目标蓝牙设备对应的第三设备对象后,判断第三设备对象中是否存在和预设服务标识对应的目标服务,如果是,则执行步骤107;否则,将第一设备对象之后的下一个周边设备对象作为第一设备对象,返回步骤103。
本实施例中,当步骤104中获取到来自IOS系统的第二设备对象后,还可以包括:
步骤b1:将第二设备对象作为已配对设备对象保存。
具体地,将第二设备对象作为已配对设备对象存储在第二设备列表中。
需要说明的是,步骤104之前,还可以包括:保存第一设备对象,步骤105中当获取到来自IOS系统的第二设备对象后,还可以包括:将第一设备对象作为已配对设备对象保存。
相应地,步骤101中根据中心设备对象向IOS系统发送搜索设备请求之前,还包括:
步骤c1:判断是否存在已配对设备对象,如果是,则断开和已配对设备对象对应的蓝牙设备的配对,当断开和已配对设备对象对应的蓝牙设备的配对后,清除已配对设备对象,继续根据中心设备对象向IOS系统发送搜索设备请求;否则,直接根据中心设备对象向IOS系统发送搜索设备请求。
具体地,判断第二设备列表中是否存在已配对设备对象;
若第二设备列表中存在已配对设备对象,则调用IOS系统的断开周边设备方法断开与和已配对设备对象对应的蓝牙设备的配对,当通过IOS系统的第五委派接口获取到来自IOS系统的已断开周边设备对象后,判断已断开周边设备对象是否和已配对设备对象匹配,当判断出已断开周边设备对象和已配对设备对象匹配后,清除第二设备列表中的已配对设备对象,继续根据中心设备对象向IOS系统发送搜索设备请求;当判断出已断开周边设备对象和已配对设备对象不匹配时,报错;
若第二设备列表中不存在已配对设备对象,则直接根据中心设备对象向IOS系统发送搜索设备请求。
本实施例中,IOS系统的断开周边设备方法为:
@interface CBCentralManager:NSObject
-(void)disconnectPeripheral:(CBPeripheral*)peripheral
@end
第五委派接口可以是断开周边设备委派接口:
@interface CBCentralManager:NSObject
-(void)centralManager:(CBCentralManager*)centraldidDisconnectPeripheral:(CBPeripheral*)aPeripheral error:(NSError*)error
@end
当将第一设备对象或者第二设备对象作为已配对设备对象存储后,步骤103之前,还可以包括:
判断是否存在已配对设备对象,如果存在已配对设备对象,则判断第一设备对象和已配对设备对象是否匹配,若匹配,则使用已保存的目标特征通过IOS系统和目标蓝牙设备进行通讯;若不匹配,通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对,继续;如果不存在已配对设备对象,则通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对,继续。
需要说明的是,本实施例中第一设备对象、第二设备对象和第三设备对象均与目标蓝牙设备对应。第一设备对象、第二设备对象和第三设备对象可以相同或者不同,第一服务和目标服务可以相同也可以不同。中心委派接口包括:第一委派接口、第二委派接口和第五委派接口;周边委派接口包括:第三委派接口、第四委派接口和第六委派接口。
本实施例提供了一种蓝牙通讯方法,所述方法通过初始化中心设备对象将移动终端设置为中心设备,并通过IOS系统获取与目标蓝牙设备对应的第一设备对象、第二设备对象、第三设备对象,根据第三设备对象获取与预设特征标识对应的目标特征,通过目标特征实现了具有IOS系统的移动终端和目标蓝牙设备之间的通讯。
实施例2
本实施例提供了一种蓝牙通讯方法,适用于包括移动终端和目标蓝牙设备的系统,其中,移动终端上安装有应用程序、驱动程序和IOS系统。移动终端可以具体为:iphone、iPod、itouch、iPad或Apple TV等设备,蓝牙设备具体为支持蓝牙4.0核心规范的蓝牙读卡器或者蓝牙KEY等。
所述方法,如图2所示,具体包括:
步骤201:当驱动程序获取到来自应用程序的初始化请求后,向应用程序返回初始化成功标识;
具体地,当驱动程序通过第一驱动接口获取到来自IOS系统的初始化请求后,初始化中心设备对象,设置并保存初始化成功标识,向应用程序返回初始化成功标识。
本实施例中步骤202中根据中心设备对象向IOS系统发送搜索设备请求之前还包括:驱动程序初始化中心设备对象。
本实施例中,驱动程序初始化中心设备对象可以具体为:驱动程序创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口。
创建中心设备对象可以为:
CBCentralManager*manager
manager=[[CBCentralManager alloc]init];
根据中心设备对象设置IOS系统中的中心委派接口可以为:
-(instanceType)initWithDelegate:(id<CBCentralManagerDelegate>)delegate queue:(dispatch_queue_t)queue;
步骤202:当驱动程序获取到来自应用程序的获取设备标识请求后,根据中心设备对象向IOS系统发送搜索设备请求;
具体地,当驱动程序通过第二驱动接口获取到来自应用程序的获取设备标识请求后,使用中心设备对象调用IOS系统的发现周边设备方法搜索与蓝牙设备对应的周边设备对象。
本实施例中,发现周边设备方法可以为:
@interface CBCentralManager:NSObject
-(void)scanForPeripheralsWithServices:
(NSArray*)serviceUUIDs options:
(NSDictionary*)options;
@end
本实施例中,获取设备标识请求中还可以包括初始化成功标识。当获取设备标识请求中包括初始化成功标识时,相应地,本步骤具体为:当驱动程序获取到来自应用程序的包括初始化成功标识的获取设备标识请求后,根据中心设备对象向IOS系统发送搜索设备请求。
本实施例中,蓝牙设备可以为一个或多个,例如:当蓝牙设备为3个时,分别为蓝牙设备1、蓝牙设备2和蓝牙设备3时,搜索到的蓝牙设备对应的周边设备对象分别为:与蓝牙设备1对应的周边设备对象1、与蓝牙设备2对应的周边设备对象2和与蓝牙设备3对应的周边设备对象3。
步骤203:当驱动程序获取到来自IOS系统的周边设备对象后,保存周边设备对象,向应用程序返回周边设备对象中的设备标识;
具体地,当驱动程序通过第一委派接口获取到来自IOS系统的系统中心设备对象和周边设备对象后,驱动程序判断系统中心设备对象是否和中心设备对象相匹配,如果是,则将获取到的周边设备对象存储到第一设备列表中,向应用程序返回周边设备对象中的设备标识;
本实施例中,第一委派接口可以是IOS系统的发现周边设备委派接口:
@protocol CBCentralManagerDelegate<NSObject>
@optional
-(void)centralManager:
(CBCentralManager*)centraldidDiscoverPeripheral:
(CBPeripheral*)peripheraladvertisementData:
(NSDictionary*)advertisementData RSSI:(NSNumber*)RSSI;
@end
本实施例中,设备标识是蓝牙设备的唯一识别信息,本实施例中,可以为蓝牙设备的设备名称。
需要说明的是,当应用程序接收到来自驱动程序的周边设备对象中的设备标识后,输出周边设备对象中的设备标识。
步骤204:当驱动程序获取到来自应用程序的包括目标设备标识的连接设备请求后,驱动程序根据目标设备标识获取第一设备对象;
当驱动程序通过第三驱动接口获取到来自应用程序的目标设备标识后,驱动程序根据目标设备标识在第一设备列表中查找是否存在与目标设备标对应的周边设备对象,如果查找到,则将与目标设备标识对应的周边设备对象作为第一设备对象,执行步骤205;否则,通过第三驱动接口向应用程序返回错误信息。
需要说明的是,当应用程序获取到来自用户在显示界面上选择的目标设备标识后,将包括目标设备标识的连接设备请求发送给驱动程序;当应用程序获取到来自驱动程序的错误信息后,输出错误信息。
本实施例中,连接设备请求中还可以包括初始化成功标识。相应地,本步骤具体为:当驱动程序获取到来自应用程序的包括初始化成功标识和目标设备标识的连接设备请求后,驱动程序根据目标设备标识获取第一设备对象;
步骤205:驱动程序通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对;
具体地,驱动程序使用中心设备对象调用IOS系统的连接周边设备方法和与第一设备对象对应的目标蓝牙设备进行配对。
本实施例中,IOS系统的连接周边设备方法可以为:
@interface CBCentralManager:NSObject
-(void)connectPeripheral:(CBPeripheral*)peripheral options:(NSDictonary*)options;
@end
步骤206:驱动程序获取来自IOS系统的第二设备对象;
具体地,当驱动程序通过第二委派接口获取到来自IOS系统的第二设备对象后,根据第一设备对象或第二设备对象设置IOS系统中的周边委派接口,执行步骤207;当驱动程序通过第二委派接口获取到来自IOS系统的错误信息后,则向应用程序返回错误信息。
本实施例中,第二委派接口可以为IOS系统的连接周边设备委派接口:
@protocol CBCentralManagerDelegate<NSObject>
@optional
-(void)centralManager:(CBCentralManager*)cental didConnectPeripheral:(CBPeripheral*)aPeripheral;
@end
需要说明的是,当应用程序获取到来自驱动程序的错误信息后,输出错误信息。
步骤207:驱动程序根据第一设备对象或第二设备对象向IOS系统发送获取设备服务请求;
驱动程序使用第一设备对象或第二设备对象调用IOS系统的发现周边设备服务方法向IOS系统发送获取设备服务请求;
IOS系统的发现周边设备服务方法可以为:
@interface CBPeripheral:CBPeer
-(void)discoverServices:(NSArray*)serviceUUIDs;
@end
获取设备服务请求中还可以包括预设服务标识。
步骤208:当驱动程序获取到来自IOS系统的第三设备对象后,在第三设备对象中获取与预设服务标识对应的目标服务,向IOS系统发送包括目标服务的获取设备特征请求;
具体地,当驱动程序通过第三委派接口获取到来自IOS系统的第三设备对象后,判断第三设备对象中是否存在和预设服务标识对应的目标服务,如果是,则向IOS系统发送包括目标服务的获取设备特征请求;否则,向应用程序返回错误信息。
本步骤中,驱动程序向IOS系统发送获取设备特征请求具体为:驱动程序使用第一设备对象或第二设备对象或第三设备对象调用IOS系统的发现周边设备特征方法向IOS系统发送包括目标服务的获取设备特征请求;本实施例中,第三委派接口可以是IOS系统的发现周边设备服务委派接口:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)peripheral didDiscoverServices:(NSError*)error;
@end
IOS系统的发现周边设备特征方法可以为:@interface CBPeripheral:CBPeer
-(void)discoverCharacteristics:(NSArray*)characteristicUUIDsforService:(CBService*)service;
@end
获取设备特征请求中还可以包括预设特征标识。
步骤209:当驱动程序获取到来自IOS系统的与预设服务标识对应的第一服务后,在第一服务中获取与预设特征标识对应的目标特征,保存与预设特征标识对应的目标特征;
具体地,当驱动程序通过第四委派接口获取到来自IOS系统的第四设备对象和第一服务后,判断第四设备对象是否和第二设备对象匹配且第一服务是否和预设服务标识匹配,如果是,则在第一服务中获取与预设特征标识对应的目标特征,保存与预设特征标识对应的目标特征;否则,向应用程序返回错误信息。
当预设特征标识具体包括预设读特征标识和预设写特征标识时,本步骤具体为:
当驱动程序获取到来自IOS系统的与预设服务标识对应的第一服务后,在第一服务中获取与预设读特征标识对应的目标读特征和与预设写特征标识对应的目标写特征,保存目标读特征和目标写特征。
本实施例中,第四委派接口可以是发现周边设备特征委派接口:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)peripheral didDiscoverCharacteristicForService:(CBService*)service error:(NSError*)error;
@end
步骤210:驱动程序将连接成功标识返回给应用程序;
具体地,驱动程序设置和保存连接成功标识,向应用程序返回连接成功标识。
步骤211:当驱动程序获取到来自应用程序的通讯请求后,通过与预设特征标识对应的目标特征与目标蓝牙设备进行通讯。
具体地,当驱动程序通过第四驱动接口获取到来自应用程序的包括通讯指令的通讯请求后,驱动程序通过与预设写特征标识对应的写特征将通讯指令发送给目标蓝牙设备,当通过第六委派接口使用与预设读特征标识对应的目标读特征接收到通讯指令应答后,将通讯指令应答通过第四驱动接口返回给应用程序。
第六委派接口可以是IOS系统的更新周边服务特征值委派接口:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)aPeripheraldidUpdateValueForCharacteristic:(CBCharacteristic*)characteristic error:(NSError*)error
@end
还需说明的是,当驱动程序通过目标读特征接收到来自目标蓝牙设备的通讯指令应答之前,驱动程序还包括:打开目标读特征的读通道标识。打开目标读特征的读通道标识可以具体为:驱动程序将读通道标识置1。
本实施例中,通讯请求中还可以包括连接成功标识。相应地本步骤具体为:当驱动程序获取到来自应用程序的包括连接成功标识的通讯请求后,通过目标特征和与目标蓝牙设备进行通讯。
需要说明的是,本实施例中,初始化成功标识和连接成功标识可以相同或者不同。
本实施例中,步骤206中,当驱动程序IOS系统获取到来自IOS系统的第二设备对象后,还可以包括:
步骤c1:驱动程序将第二设备对象作为已配对设备对象存储。
具体地,驱动程序将第二设备对象作为已配对设备对象存储在第二设备列表中。
需要说明的是,步骤206之前,还包括:驱动程序保存第一设备对象,相应地,步骤206中当驱动程序获取到来自IOS系统的系统中心设备对象和第二设备对象后,还可以包括:驱动程序将第一设备对象作为已配对设备对象保存。
当驱动程序将第一设备对象或第二设备对象作为已配对设备对象存储后,步骤202中驱动程序搜索周边设备对象之前,还包括:
步骤d1:驱动程序判断是否存在已配对设备对象,如果是,则断开与已配对设备对象对应的蓝牙设备的配对,清除已配对设备对象,当驱动程序清除已连接设备对象后,搜索周边设备对象,继续;否则,直接搜索周边设备对象,继续。
具体地,驱动程序判断第二设备列表中是否存在已配对设备对象;
若第二设备列表中存在已配对设备对象,则调用IOS系统的断开周边设备方法断开与已配对设备对象对应的蓝牙设备的配对,当驱动程序通过IOS系统的第五委派接口获取到来自IOS系统的已断开设备对象后,驱动程序判断已断开设备对象是否和已配对设备对象匹配,如果是,则清除第二设备列表中的已配对设备对象,继续获取周边设备对象;当驱动程序判断出已断开设备对象和已配对设备对象不匹配时,向应用程序返回错误信息;
若第二设备列表中不存在已配对设备对象,则直接获取周边设备对象。
本实施例中,第五委派接口可以是断开周边设备委派接口:
@interface CBCentralManager:NSObject
-(void)centralManager:(CBCentralManager*)centraldidDisconnectPeripheral:(CBPeripheral*)aPeripheral error:(NSError*)error
@end
当驱动程序将第一设备对象或第二设备对象作为已配对设备对象存储后,步骤204中驱动程序根据目标设备标识获取第一设备对象之前,还可以包括:
驱动程序判断目标设备标识是否和已配对设备对象相匹配,如果是,执行步骤210;否则,根据目标设备标识获取第一设备对象,继续。
具体地,驱动程序判断目标设备标识是否和第二设备列表中的已配对设备对象的设备标识相匹配,如果是,执行步骤210;否则,根据目标设备标识获取第一设备对象,继续。
还需说明的是,步骤201之后还可以包括:
当驱动程序获取到来自应用程序的释放设备请求后,清除已保存的目标特征,向应用程序返回第一释放成功标识。
具体地,当驱动程序通过第五驱动接口获取到来自应用程序的释放设备请求后,清除已保存的目标特征,通过第五驱动接口向应用程序返回第一释放成功标识。
本实施例中,步骤201之后,驱动程序还可以执行步骤f1;
步骤f1:当驱动程序获取到来自应用程序的连接设备请求后,根据中心设备对象向IOS系统发送搜索设备请求,获取到来自IOS系统的第一设备对象,执行步骤205;
步骤f1可以具体为:
当驱动程序通过第六驱动接口获取到来自应用程序的连接设备请求后,根据中心设备对象向IOS系统发送搜索设备请求,获取到来自IOS系统的周边设备对象后,保存周边设备对象,将保存的周边设备对象中的第一个周边设备对象作为第一设备对象。相应地,搜索设备请求中可以包括预设服务标识或不包括预设服务标识。
若搜索设备请求中不包括预设服务标识时,步骤208具体为:当驱动程序获取到来自IOS系统的第三设备对象后,在第三设备对象中获取与预设服务标识对应的目标服务,判断第三设备对象中是否存在和预设服务标识对应的目标服务,如果是,则向IOS系统发送包括目标服务的获取设备特征请求;否则,将第一设备对象之后的下一个周边设备对象作为第一设备对象,返回步骤205。进一步地,如果第一设备对象为最后一个周边设备对象,当步骤208中判断为否后,通过第六驱动接口向应用程序返回错误信息。
本实施例中,第一驱动接口、第二驱动接口、第三驱动接口、第四驱动接口、第五驱动接口和第六驱动接口之间没有时间或者逻辑上的先后顺序。中心委派接口包括:第一委派接口、第二委派接口和第五委派接口;周边委派接口包括:第三委派接口、第四委派接口和第六委派接口。
本实施例提供了一种蓝牙通讯方法,适用于包括移动终端和目标蓝牙设备的系统,其中,移动终端上安装有应用程序、驱动程序和IOS系统。所述驱动程序获取到来自应用程序的请求后,通过初始化中心设备对象将移动终端设置为中心设备,通过IOS系统获取与目标蓝牙设备对应的第一设备对象;根据第一设备对象与对应的目标蓝牙设备配对,获取第二设备对象;根据第一设备对象或第二设备对象获取第三设备对象;从第三设备对象中获取与预设服务标识对应的目标服务;根据目标服务获取第一服务,从第一服务中获取与预设特征标识对应的目标特征,通过目标特征实现了具有IOS系统的移动终端和目标蓝牙设备之间的通讯。需要说明的是,驱动程序可以通过驱动接口(一个驱动接口或者多个驱动接口)获取到来自应用程序的请求后,执行相应操作,实现本发明。
实施例3
本实施例中,提供了一种蓝牙通讯方法,适用于包括移动终端和目标蓝牙设备的系统,其中,移动终端上安装有应用程序、驱动程序和IOS系统。本实施例中,驱动程序具体为PC/SC驱动库,移动终端可以具体为:iphone、iPod、itouch、iPad或Apple TV等设备,蓝牙设备具体为支持蓝牙4.0核心规范的蓝牙读卡器。
所述方法,如图3所示,具体包括:
步骤301:当驱动程序获取到来自应用程序的初始化请求后,生成并保存初始化成功标识,向应用程序返回初始化成功标识;
具体地,当驱动程序通过建立资源管理器上下文接口获取到来自应用程序的初始化请求后,生成资源管理器上下文句柄,将资源管理器上下文句柄作为初始化成功标识,保存初始化成功标识,通过建立资源管理器上下文接口向应用程序返回初始化成功标识。
本实施例中,建立资源管理器上下文接口为:
SCardEstablishContext(unsigned long dwScope,
const void*pvReserved1,const void*pvReserved2,long*phContext),其中参数phContext为初始化成功标识。
步骤302:当驱动程序获取到来自应用程序的包括初始化成功标识的获取设备标识请求后,驱动程序根据中心设备对象向IOS系统发送搜索设备请求;
本实施例中,步骤302中驱动程序根据中心设备对象向IOS系统发送搜索设备请求之前还包括:驱动程序初始化中心设备对象。
本实施例中,驱动程序初始化中心设备对象具体为:驱动程序创建并保存中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口。
步骤302具体包括:
步骤3021:当驱动程序通过列举读卡器设备接口获取到来自应用程序的第一输入信息后,判断第一输入信息是否和已保存初始化成功标识相匹配,如果是,则执行步骤3022;否则,通过列举读卡器设备接口向应用程序返回错误信息;
步骤3022:驱动程序使用中心设备对象调用IOS系统的发现周边设备方法搜索周边设备对象。
本实施例中,发现周边设备方法可以为:
@interface CBCentralManager:NSObject
-(void)scanForPeripheralsWithServices:
(NSArray*)serviceUUIDs options:
(NSDictionary*)options;
@end
其中,参数serviceUUIDs可以为空,也可以为预设服务标识。优选地,本步骤中参数serviceUUIDs为空。
步骤3022中,当参数serviceUUIDs为预设服务标识时,步骤3022可以具体为:驱动程序使用中心设备对象调用IOS系统的发现周边设备方法搜索与预设服务标识相匹配的周边设备对象。
步骤303:当驱动程序获取到来自IOS系统的周边设备对象后,驱动程序保存周边设备对象,向应用程序返回周边设备对象中的设备标识;
本步骤具体包括:
步骤3031:当驱动程序通过IOS系统的发现周边设备委派接口获取到来自IOS系统的系统中心设备对象和周边设备对象后,判断系统中心设备对象是否和中心设备对象相匹配,如果是,则执行步骤3032;否则,通过列举读卡器设备接口向应用程序返回错误信息;
步骤3032:驱动程序将周边设备对象存储到第一设备列表中,通过列举读卡器设备接口向应用程序返回周边设备对象中的设备标识,执行步骤304;
需要说明的是,当应用程序通过列举读卡器设备接口接收到来自驱动程序的周边设备对象的设备标识后,输出周边设备对象的设备标识;当应用程序通过列举读卡器设备接口接收到来自驱动程序的错误信息后,输出错误信息。
本实施例中,列举读卡器设备接口为:
SCardListReaders(long hContext,const char*mszGroups,char*mszReaders,unsigned long*pcchReaders),其中参数hContext为第一输入信息,参数mszReaders为设备标识。
本实施例中,设备标识是蓝牙设备的唯一识别信息,本实施例中,可以为蓝牙设备的设备名称。
发现周边设备委派接口为:
@protocol CBCentralManagerDelegate<NSObject>
@optional
-(void)centralManager:(CBCentralManager*)central
didDiscoverPeripheral:(CBPeripheral*)peripheral
advertisementData:(NSDictionary*)advertisementData RSSI:(NSNumber*)RSSI;
@end
其中,参数central为系统中心设备对象,参数peripheral为周边设备对象。
步骤304:当驱动程序获取到来自应用程序的包括初始化成功标识和目标设备标识的连接设备请求后,驱动程序根据目标设备标识获取第一设备对象,通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对;
具体包括:
步骤3041:当驱动程序通过连接读卡器接口获取到来自应用程序的第二输入信息和目标设备标识后,驱动程序判断第二输入信息是否和初始化成功标识相匹配,如果是,则执行步骤3042;否则,执行步骤3044;
步骤3042:驱动程序根据目标设备标识在第一设备列表中查找是否存在与目标设备标识对应的周边设备对象,如果是,则执行步骤3043;否则,执行步骤3044;
步骤3043:驱动程序将与目标设备标识对应的周边设备对象作为第一设备对象,调用IOS系统的连接周边设备方法与第一设备对象对应的目标蓝牙设备进行配对,执行步骤305;
具体地,驱动程序将与目标设备标识对应的周边设备对象作为第一设备对象,使用中心设备对象调用IOS系统的连接周边设备方法与第一设备对象对应的目标蓝牙设备进行配对;
本实施例中,IOS系统的连接周边设备方法为:
@interface CBCentralManager:NSObject
-(void)connectPeripheral:(CBPeripheral*)peripheral options:(NSDictonary*)options;
@end
其中,参数peripheral为第一设备对象。
步骤3044:驱动程序通过连接读卡器接口向应用程序返回错误信息。
本实施例中,连接读卡器接口为:long SCardConnect(long hContext,constchar*szReader,unsigned long dwShareMode,unsigned long dwPreferredProtocols,long*phCard,unsigned long*pdwActiveProtocol);其中,参数szReader是目标设备标识,参数phCard为第二输入信息。
需要说明的是,当应用程序通过连接读卡器接口接收到来自驱动程序的错误信息后,输出错误信息。
步骤305:当驱动程序获取到来自IOS系统获取到第二设备对象后,根据第二设备对象设置IOS系统中的周边委派接口;
具体包括:
步骤3051:当驱动程序通过IOS系统的连接周边设备委派接口获取到来自IOS系统的系统中心设备对象和第二设备对象后,判断系统中心设备对象是否和中心设备对象相匹配,如果是,则执行步骤3052;否则,执行步骤3053;
步骤3052:驱动程序保存第二设备对象,设置第二设备对象在IOS系统中的委派接口,执行步骤306;
步骤3053:驱动程序通过连接读卡器接口向应用程序返回错误信息。
需要说明的是,步骤305之前,还包括:驱动程序保存第一设备对象,相应地,步骤305中当驱动程序获取到来自IOS系统的系统中心设备对象和第二设备对象后,还可以根据第一设备对象设置IOS系统中的周边委派接口。
步骤3052之前还包括:判断第二设备对象和第一设备对象是否相匹配,如果是,则执行步骤3052;否则执行步骤3053;
步骤306:驱动程序根据第一设备对象或者第二设备对象向IOS系统发送获取设备服务请求;
具体地,驱动程序使用第一设备对象或者第二设备对象调用IOS系统的发现周边设备服务方法获取目标服务。
IOS系统的发现周边设备服务方法可以为:
@interface CBPeripheral:CBPeer
-(void)discoverServices:(NSArray*)serviceUUIDs;
@end
其中,参数serviceUUIDs可以为空,也可以为预设服务标识。
当参数serviceUUIDs为预设服务标识时,本步骤具体为:驱动程序调用IOS系统的发现周边设备服务方法获取与预设服务标识对应的目标服务。
步骤307:当驱动程序获取到来自IOS系统的第三设备对象后,获取第三设备对象中的与预设服务标识对应的目标服务,驱动程序向IOS系统发送包括目标服务的获取设备特征请求;
具体包括:
步骤3071:当驱动程序通过发现周边设备服务委派接口获取到来自IOS系统的第三设备对象后,判断第三设备对象中是否存在和预设服务标识对应的目标服务,如果是,则执行步骤3072;否则,通过连接读卡器接口向应用程序返回错误信息。
步骤3072:驱动程序使用第一设备对象或者第二设备对象或者第三设备对象调用IOS系统的发现周边设备特征方法向IOS系统发送包括目标服务的获取设备特征请求;
IOS系统的发现周边设备特征方法可以为:@interface CBPeripheral:CBPeer
-(void)discoverCharacteristics:(NSArray*)characteristicUUIDsforService:(CBService*)service;
@end
其中,参数service为目标服务。参数characteristicUUIDs可以为空,也可以为预设特征标识。
步骤308:当驱动程序获取到来自IOS系统的与预设服务标识对应的第一服务后,在第一服务中获取与预设特征标识对应的目标特征,保存与预设特征标识对应的目标特征;
具体地,当驱动程序通过发现周边设备特征委派接口获取到来自IOS系统的第四设备对象和第一服务后,判断第四设备对象是否和第二设备对象匹配,第一服务是否和预设服务标识匹配,如果是,则在第一服务中获取与预设特征标识对应的目标特征,保存与预设特征标识对应的目标特征;否则,通过连接读卡器接口向应用程序返回错误信息。
当预设特征标识具体包括预设读特征标识和预设写特征标识时,步骤308具体为:
当驱动程序获取到来自IOS系统的与预设服务标识对应的第一服务后,在第一服务中获取与预设读特征标识对应的目标读特征和与预设写特征标识对应的目标写特征,保存目标读特征和目标写特征。
当驱动程序通过发现周边设备特征委派接口获取到来自IOS系统的第四设备对象和第一服务后,判断第四设备对象是否和第二设备对象匹配,第一服务是否和预设服务标识匹配,如果是,则判断第一服务中是否存在和预设读特征标识和预设写特征标识对应的目标特征,如果是,保存与预设读特征标识对应的目标读特征,保存与预设写特征标识对应的目标写特征;否则,通过连接读卡器接口向应用程序返回错误信息。
IOS系统的发现周边设备特征委派接口为:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)peripheral didDiscoverCharacteristicForService:(CBService*)service error:(NSError*)error;
@end
其中,参数service为第一服务。
步骤309:驱动程序使用目标特征通过IOS系统向目标蓝牙设备发送卡片上电指令,使卡片上电;
具体包括:
步骤3091:驱动程序使用与预设写特征标识对应的目标写特征通过IOS系统向目标蓝牙设备发送上电指令;
具体地,驱动程序调用IOS系统的写方法根据目标写特征向与目标蓝牙设备发送上电指令;
IOS系统的写方法为:
@interface CBPeripheral:CBPeer
-(void)writeValue:(NSData*)data forCharacteristic:(CBCharacteristic*)characteristic type:(CBCharacteristic WriteType)type;
@end
其中,参数data为上电指令,参数characteristic为与预设写特征标识对应的目标写特征。
步骤3092:当驱动程序通过与预设读特征标识对应的目标读特征获取到来自IOS系统的卡片上电应答后,执行步骤310;
具体地,当驱动程序通过IOS系统的更新周边服务特征值委派接口获取到与预设读特征标识对应的目标读特征和第五设备对象后,判断第五设备对象是否和第五设备对象相匹配,如果是,则获取与预设读特征标识对应的目标读特征中的卡片上电应答,执行步骤310;否则,通过连接读卡器接口向应用程序返回错误信息。
更新周边服务特征值委派接口为:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)aPeripheraldidUpdateValueForCharacteristic:(CBCharacteristic*)characteristic error:(NSError*)error
@end
需要说明的是,驱动程序通过与预设读特征标识对应的读特征获取到来自IOS系统的卡片上电应答之前,还包括:打开读特征的读通道标识。打开读特征的读通道标识可以具体为:驱动程序将读通道标识置1。
步骤310:驱动程序生成并保存连接成功标识,将连接成功标识返回给应用程序;
具体地,驱动程序生成卡片句柄,将卡片句柄作为连接成功标识保存,将连接成功标识通过连接读卡器接口返回给应用程序。
本实施例中,初始化成功标识和连接成功标识可以不同或相同。
步骤311:当驱动程序获取到来自应用程序的包括连接成功标识的通讯请求后,使用已保存的目标特征通过IOS系统与目标蓝牙设备进行通讯。
具体地,当驱动程序通过访问周边设备指令接口获取到来自应用程序的第三输入信息和通讯指令后,判断第三输入信息是否和连接成功标识相匹配,如果是,则使用已保存的目标通过IOS系统与目标设备进行通讯。
本步骤具体包括:
步骤3111:当驱动程序通过访问周边设备指令接口获取到来自应用程序的第三输入信息和通讯指令后,判断第三输入信息是否和连接成功标识相匹配,如果是,使用第二设备对象通过目标写特征调用IOS系统的写方法向目标设备发送通讯指令;
步骤3112:当驱动程序通过IOS系统的更新周边服务特征值委派接口获取到目标读特征和第五设备对象后,判断第五设备对象是否和第二设备对象相匹配,如果是,则执行步骤3113;否则,通过访问周边设备指令接口向应用程序返回错误信息;
步骤3113:驱动程序获取目标读特征中的通讯指令应答,将通讯指令通过访问周边设备指令接口返回给应用程序。
访问周边设备指令接口为:
LONG SCardTransmit(SCARDHANDLE hCard,LPCSCARD_I0_REQUEST pioSendPci,LPCBYTE pbSendBuffer,DWORD cbSendLength,LPSCARD_IO_REQUEST pioRecvPci,LPBYTEpbRecvBuffer,LPDWORD pcbRecvLength);其中,参数hCard为第三输入信息。
本实施例中,步骤305中当驱动程序通过IOS系统获取到第二设备对象后,还可以包括:
步骤h1:驱动程序将第二设备对象作为已配对设备对象存储。
具体地,驱动程序将将第二设备对象作为已配对设备对象存储在第二设备列表中。
需要说明的是,步骤305之前,还包括:驱动程序保存第一设备对象,相应地,步骤305中当驱动程序获取到来自IOS系统的系统中心设备对象和第二设备对象后,还可以包括:驱动程序将第一设备对象作为已配对设备对象保存。
相应地,步骤302中驱动程序通过IOS系统获取周边设备对象之前,还可以包括:
步骤k1:驱动程序判断是否存在已配对设备对象,如果是,则断开与已配对设备对象对应的设备的配对,清除已配对设备对象,当驱动程序清除已配对设备对象后,继续通过IOS系统获取周边设备对象;否则,直接通过IOS系统获取周边设备对象。
具体地,驱动程序判断第二设备列表中是否存在已配对设备对象:
若第二设备列表中存在已配对设备对象,则调用IOS系统的断开周边设备方法断开与已配对设备对象对应的设备的配对,当驱动程序通过IOS系统的断开周边设备委派接口获取到来自IOS系统的已断开设备对象后,驱动程序判断已断开设备对象是否和已配对设备对象匹配,当驱动程序判断出已断开设备对象和已配对设备对象匹配后,驱动程序清除第二设备列表中的已配对设备对象,继续通过IOS系统获取周边设备对象;当驱动程序判断出已断开设备对象和已配对设备对象不匹配时,向应用程序返回错误信息;
若第二设备列表中不存在已配对设备对象,驱动程序则直接通过IOS系统获取周边设备对象。
IOS系统的断开周边设备方法为:
@interface CBCentralManager:NSObject
-(void)disconnectPeripheral:(CBPeripheral*)peripheral
@end
IOS系统的断开周边设备委派接口为:
@interface CBCentralManager:NSObject
-(void)centralManager:(CBCentralManager*)centraldidDisconnectPeripheral:(CBPeripheral*)aPeripheral error:(NSError*)error
@end
其中,参数aPeripheral为已断开设备对象。
当驱动程序将第一设备对象或第二设备对象作为已配对设备对象存储后,步骤304中驱动程序根据目标设备标识获取第一设备对象之前,还可以包括:
驱动程序判断目标设备标识是否和已配对设备对象相匹配,如果是,则执行步骤309;否则,根据目标设备标识获取第一设备对象,继续。
具体地,驱动程序判断目标设备标识是否和第二设备列表中的已配对设备对象的设备标识相匹配,如果是,则执行步骤309;否则,根据目标设备标识获取第一设备对象,继续。
还需要说明的是,步骤301之后,还可以包括:
当驱动程序获取到来自应用程序的包括初始化成功标识的释放设备请求后,清除初始化成功标识;
具体地,当驱动程序通过释放资源管理器函数接口获取到来自应用程序的第四输入信息后,判断第四输入信息是否和初始化成功标识匹配,如果是,则清除初始化成功标识和目标特征,向应用程序返回第一释放成功标识;否则,通过释放资源管理器函数接口向应用程序返回错误信息。
释放资源管理器函数接口为:SCardReleaseContext(long hContext);其中参数hContext为第四输入信息。
当驱动程序获取到来自应用程序的包括连接成功标识的释放卡片请求后,清除连接成功标识。
具体地,当驱动程序通过断开与智能卡的连接函数接口获取到来自应用程序的第五输入信息后,判断第五输入信息是否和连接成功标识相匹配,如果是,则清除连接成功标识,向应用程序返回第二释放成功标识;否则,通过断开智能卡的连接函数接口向应用程序返回错误信息。
其中,断开与智能卡的连接函数接口为:
LONG SCardDisconnect(SCARDHANDLE hCard,DWORD dwDisposition);其中参数hCard为第五输入信息。
本实施例中,第一释放成功标识和第二释放成功标识可相同。
实施例4
本实施例提供了一种通讯装置,具体结构如图4所示包括:中心模块401、第一获取模块402、配对模块403、第二获取模块404、第三获取模块405、第四获取模块406、第五获取模块407、第六获取模块408、保存模块409和通讯模块410;
中心模块401,用于初始化中心设备对象;
第一获取模块402,用于根据中心模块401初始化的中心设备对象获取第一设备对象;
第一获取模块402具体用于:使用中心模块401初始化的中心设备对象向IOS系统发送搜索设备请求获取来自IOS系统的第一设备对象。
配对模块403,用于根据第一获取模块402获取到的第一设备对象,与对应的目标蓝牙设备进行配对;
配对模块403具体用于:通过IOS系统和与第一获取模块402获取到的第一设备对象对应的目标蓝牙设备进行配对。
第二获取模块404,用于当配对模块403根据第一获取模块402获取到的第一设备对象,与对应的目标蓝牙设备进行配对后,获取第二设备对象;
第二获取模块404具体用于:当配对模块403通过IOS系统和与第一获取模块402获取到的第一设备对象对应的目标蓝牙设备进行配对后,获取来自IOS系统的第二设备对象。
第三获取模块405,用于当第二获取模块404获取到第二设备对象后,根据第二设备对象或第一获取模块402获取到的第一设备对象,获取第三设备对象;
第三获取模块405具体用于:当第二获取模块404获取到第二设备对象后,使用第一获取模块402获取到的第一设备对象或者第二获取模块404获取到的第二设备对象向IOS系统发送获取设备服务请求,获取来自IOS系统的第三设备对象。
第五获取模块407,用于从第三获取模块405获取到的第三设备对象中获取与预设服务标识对应的目标服务;
第五获取模块407具体用于:从第三获取模块405获取到的来自IOS系统的第三设备对象中获取与预设服务标识对应的目标服务。
第四获取模块406,用于根据第五获取模块407获取到的目标服务获取第一服务;
第四获取模块406具体用于:向IOS系统发送获取设备特征请求,获取来自IOS系统的第一服务;其中,获取设备特征请求中包括第五获取模块407获取到的目标服务。
第六获取模块408,用于从第四获取模块406获取到的第一服务中获取与预设特征标识对应的目标特征;
保存模块409,用于保存第六获取模块408获取到的目标特征;
通讯模块410,用于使用保存模块409保存的目标特征和目标蓝牙设备进行通讯。
通讯模块410具体用于:使用保存模块409保存的目标特征通过IOS系统和目标蓝牙设备进行通讯。
本实施例中,第一获取模块402可以具体包括:第一获取单元、第二获取单元和输出设备标识单元;
第一获取单元用于根据中心模块401初始化的中心设备对象获取与多个蓝牙设备分别对应的周边设备对象;以及当输出设备标识单元输出第一获取单元获取到的周边设备对象的设备标识后,获取与用户选中的目标设备标识对应的周边设备对象,将与目标设备标识对应的周边设备对象作为第一设备对象;
输出设备标识单元用于输出第一获取单元获取到的周边设备对象的设备标识;
保存模块409还用于保存第一获取单元获取到的周边设备对象。
本实施例中,通讯装置还可以包括:第一判断模块、第二判断模块和报错模块;相应地:
第一判断模块,用于当第三获取模块405获取到第三设备对象后,判断第三设备对象中是否和存在和预设服务标识对应的目标服务;
第五获取模块407具体用于当第一判断模块判断出为是后,从第三获取模块405获取到的第三设备对象中获取与预设服务标识对应的目标服务;
第二判断模块,用于当第四获取模块406获取到第一服务后,判断第一服务中是否存在与预设特征标识对应的目标特征;
保存模块409具体用于当第二判断模块判断出为是后,保存第六获取模块408获取到的目标特征;
报错模块,用于当第一判断模块判断出为否后,报错;以及当第二判断模块判断出为否后,报错。
本实施例中,保存模块409可以还用于当第二获取模块404获取到第二设备对象后,将第一设备对象或第二设备对象作为已配对设备对象保存。
若保存模块409还用于当第二获取模块404获取到第二设备对象后,将第一设备对象或第二设备对象作为已配对设备对象保存,相应地,通讯装置还可以包括第三判断模块、第一断开模块和第一清除模块;
第三判断模块用于当第一获取模块402根据中心设备对象获取第一设备对象之前,判断保存模块409中是否存在已配对设备对象;
第一断开模块用于当第三判断模块判断出述保存模块409中是存在已配对设备对象后,断开与已配对设备对象对应的蓝牙设备的配对;
第一清除模块,用于当第一断开模块断开与已配对设备对象对应的蓝牙设备的配对后,清除保存模块409中保存的已配对设备对象;
第一获取模块402具体用于当第一清除模块清除保存模块409中保存的已配对设备对象后,根据中心设备对象获取第一设备对象;以及当第三判断模块判断出保存模块409中不存在已配对设备对象后,根据中心设备对象获取第一设备对象。
若保存模块409还用于当第二获取模块404获取到第二设备对象后,将第一设备对象或第二设备对象作为已配对设备对象保存,通讯装置还可以包括第四判断模块和第五判断模块;
第四判断模块用于当配对模块403与所述第一设备对象对应的目标蓝牙设备进行配对之前,判断保存模块409中是否存在已配对设备对象;
第五判断模块用于当第四判断模块判断出为是后,判断第一设备对象和已配对设备是否匹配;
配对模块403具体用于当第五判断模块判断为否后,与第一设备对象对应的目标蓝牙设备进行配对;当第四判断模块判断出为否后,与第一设备对象对应的目标蓝牙设备进行配对;
通讯模块410还用于当第五判断模块判断为是后,使用保存模块409保存的目标特征和目标蓝牙设备进行通讯。
本实施例中,中心模块401具体用于创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口。
创建中心设备对象可以为:
CBCentralManager*manager
manager=[[CBCentralManager alloc]init];
根据中心设备对象设置IOS系统中的中心委派接口可以为:
-(instanceType)initWithDelegate:(id<CBCentralManagerDelegate>)delegate queue:(dispatch_queue_t)queue;
若中心模块401具体用于创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口,第一获取模块402还可以具体用于当中心模块401根据中心设备对象设置IOS系统中的中心委派接口后,根据中心设备对象,通过第一委派接口获取来自IOS系统的第一设备对象;第二获取模块404还可以具体用于当配对模块403根据第一获取模块402获取到的第一设备对象,与对应的目标蓝牙设备进行配对后,通过第二委派接口获取来自IOS系统的第二设备对象。
若中心模块401具体用于创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口,第一获取模块404还可以具体用于当中心模块401创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口后,使用中心设备对象调用IOS系统的发现周边设备方法向IOS系统发送搜索设备请求,通过第一委派接口获取来自IOS系统的第一设备对象。
若中心模块401具体用于创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口,配对模块403还可以具体用于:使用中心设备对象调用IOS系统的连接周边设备方法和与第一获取模块402获取到的第一设备对象对应的目标蓝牙设备进行配对;第二获取模块404还可以具体用于:当配对模块403使用中心设备对象调用IOS系统的连接周边设备方法和与第一获取模块402获取到的第一设备对象对应的目标蓝牙设备进行配对后,通过第二委派接口获取来自IOS系统的第二设备对象。
本实施例中,通讯装置还可以包括设置模块;设置模块用于当第三获取模块405获取第三设备对象之前,根据第一设备对象或第二设备对象设置IOS系统中的周边委派接口。
相应地,第三获取模块405还可以具体用于:当设置模块根据第一设备对象或所述第二设备对象设置IOS系统中的周边委派接口后,通过第三委派接口获取来自IOS系统的第三设备对象;第四获取模块406还可以具体用于:根据第五获取模块407获取到的目标服务,通过第四委派接口获取来自IOS系统的第一服务。
相应地,第三获取模块405还可以具体用于:当第二获取模块404获取到第二设备对象后,使用第一设备对象或第二设备对象调用IOS系统的发现周边设备服务方法向IOS系统发送获取设备服务请求,通过第三委派接口获取来自所述IOS系统的第三设备对象。
相应地,第四获取模块406还可以具体用于:使用第一设备对象或第二设备对象或第三设备对象调用IOS系统的发现周边设备特征方法向IOS系统发送获取设备特征请求;通过第四委派接口获取到来自IOS系统的与预设服务标识匹配的第一服务;获取设备特征请求中包括第五获取模块407获取到的目标服务。
本实施例中,第一获取模块402还可以具体用于:根据所述中心设备对象,获取与多个蓝牙设备分别对应的周边设备对象,将保存模块409保存的周边设备对象中的第一个周边设备对象作为第一设备对象;
保存模块409还用于保存第一获取模块402获取到的周边设备对象。
当第一获取模块402具体用于:根据所述中心设备对象,获取与多个蓝牙设备分别对应的周边设备对象,将保存模块409保存的周边设备对象中的第一个周边设备对象作为第一设备对象时,通讯装置还可以包括第六判断模块和第七获取模块;
第六判断模块具体用于当第三获取模块405获取到第三设备对象后,判断第三设备对象中是否和存在和预设服务标识对应的目标服务;
第五获取模块407具体用于当第六判断模块判断出为是后,从第三获取模块405获取到的第三设备对象中获取与预设服务标识对应的目标服务;
第七获取模块用于当第六判断模块判断出为否后,将第一设备对象之后的下一个周边设备对象作为第一设备对象;
配对模块403还用于与第七获取模块获取到的第一设备对象对应的目标蓝牙设备进行配对。
实施例5
本实施例提供了一种通讯装置,包括:中心模块、第一获取模块、配对模块、第二获取模块、第三获取模块、第四获取模块、第五获取模块、第六获取模块、保存模块和通讯模块;
中心模块用于初始化中心设备对象;
中心模块具体用于创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口。
创建中心设备对象可以为:
CBCentralManager*manager
manager=[[CBCentralManager alloc]init];
根据中心设备对象设置IOS系统中的中心委派接口可以为:
-(instanceType)initWithDelegate:(id<CBCentralManagerDelegate>)delegate queue:(dispatch_queue_t)queue;
第一获取模块,用于根据中心模块初始化的中心设备对象获取第一设备对象;
第一获取模块具体用于:当中心模块创建中心设备对象,根据中心设备对象设置IOS系统中的中心委派接口后,使用中心设备对象调用IOS系统的发现周边设备方法向IOS系统发送搜索设备请求,通过第一委派接口获取来自IOS系统的第一设备对象。
本实施例中,发现周边设备方法可以为:
@interface CBCentralManager:NSObject
-(void)scanForPeripheralsWithServices:
(NSArray*)serviceUUIDs options:
(NSDictionary*)options;
@end
本实施例中,获取设备服务请求中还可以包括预设服务标识。
本实施例中,第一委派接口可以是IOS系统的发现周边设备委派接口:
@protocol CBCentralManagerDelegate<NSObject>
@optional
-(void)centralManager:
(CBCentralManager*)centraldidDiscoverPeripheral:
(CBPeripheral*)peripheraladvertisementData:
(NSDictionary*)advertisementData RSSI:(NSNumber*)RSSI;
@end
配对模块,用于根据第一获取模块获取到的第一设备对象,与对应的目标蓝牙设备进行配对;
配对模块具体用于:使用中心设备对象调用IOS系统的连接周边设备方法和与第一获取模块获取到的第一设备对象对应的目标蓝牙设备进行配对。
本实施例中,IOS系统的连接周边设备方法可以为:
@interface CBCentralManager:NSObject
-(void)connectPeripheral:(CBPeripheral*)peripheral options:(NSDictonary*)options;
@end
第二获取模块用于当配对模块根据第一获取模块获取到的第一设备对象,与对应的目标蓝牙设备进行配对后,获取第二设备对象;
第二获取模块具体用于当配对模块通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对后,通过第二委派接口获取来自IOS系统的第二设备对象。
本实施例中,第二委派接口可以是IOS系统的连接周边设备委派接口:
@protocol CBCentralManagerDelegate<NSObject>
@optional
-(void)centralManager:(CBCentralManager*)cental didConnectPeripheral:(CBPeripheral*)aPeripheral;
@end
第三获取模块用于当第二获取模块获取到第二设备对象后,根据第二设备对象或第一获取模块获取到的第一设备对象,获取第三设备对象;
第三获取模块具体用于:当第二获取模块获取到自IOS系统的第二设备对象后,使用第一设备对象或第二设备对象调用IOS系统的发现周边设备服务方法向IOS系统发送获取设备服务请求,通过第三委派接口获取来自IOS系统的第三设备对象。
本实施例中,IOS系统的发现周边设备服务方法为:
@interface CBPeripheral:CBPeer
-(void)discoverServices:(NSArray*)serviceUUIDs;
@end
本实施例中,获取设备服务请求中可以包括预设服务标识。具体地,将参数serviceUUIDs设置为预设服务标识。
第三委派接口可以是IOS系统的发现周边设备服务委派接口:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)peripheral didDiscoverServices:(NSError*)error;
@end
第五获取模块,用于从第三获取模块获取到的第三设备对象中获取与预设服务标识对应的目标服务;
第四获取模块,用于根据第五获取模块获取到的目标服务获取第一服务;
第四获取模块具体用于:使用第一设备对象或第二设备对象或第三设备对象调用IOS系统的发现周边设备特征方法向IOS系统发送获取设备特征请求;获取设备特征请求中包括目标服务;通过第四委派接口获取到来自IOS系统的与预设服务标识匹配的第一服务。
IOS系统的发现周边设备特征方法可以为:@interface CBPeripheral:CBPeer
-(void)discoverCharacteristics:(NSArray*)characteristicUUIDsforService:(CBService*)service;
@end
本实施例中,第四委派接口可以是发现周边设备特征委派接口:
@protocol CBPeripheralDelegate<NSObject>
@optional
-(void)peripheral:(CBPeripheral*)peripheral didDiscoverCharacteristicForService:(CBService*)service error:(NSError*)error;
@end
第六获取模块,用于从第四获取模块获取到的第一服务中获取与预设特征标识对应的目标特征;
保存模块,用于保存第六获取模块获取到的目标特征;
通讯模块,用于使用保存模块保存的目标特征和目标蓝牙设备进行通讯。
本实施例中,第一获取模块可以具体包括:第一获取单元、第二获取单元和输出设备标识单元;
第一获取单元用于根据中心模块初始化的中心设备对象获取来自IOS系统的与多个蓝牙设备分别对应的周边设备对象;以及当输出设备标识单元输出第一获取单元获取到的周边设备对象的设备标识后,获取与用户选中的目标设备标识对应的第一设备对象;
输出设备标识单元用于输出第一获取单元获取到的周边设备对象的设备标识;
保存模块还用于保存第一获取单元获取到的周边设备对象。
本实施例中,通讯装置还可以包括:第一判断模块、第二判断模块和报错模块;相应地:
第一判断模块,用于当第三获取模块获取到来自IOS系统的第三设备对象后,判断第三设备对象中是否和存在和预设服务标识对应的目标服务;
第五获取模块,具体用于当第一判断模块判断出为是后,从第三获取模块获取到的第三设备对象中获取与预设服务标识对应的目标服务;
第二判断模块,用于当第四获取模块获取来自IOS系统的第一服务后,判断第一服务中是否存在与预设特征标识对应的目标特征;
保存模块,具体用于当第二判断模块判断出为是后,保存第六获取模块获取到的目标特征;
报错模块,用于当第一判断模块判断出为否后,报错;以及当第二判断模块判断出为否后,报错。
本实施例中,保存模块还用于当第二获取模块获取到来自IOS系统的第二设备对象后,将第一设备对象或第二设备对象作为已配对设备对象保存。
若保存模块还用于当第二获取模块获取到来自IOS系统的第二设备对象后,将第一设备对象或第二设备对象作为已配对设备对象保存,相应地,通讯装置还可以包括第三判断模块、第一断开模块和第一清除模块;
第三判断模块用于当第一获取模块根据中心设备对象向IOS系统发送搜索设备请求之前,判断保存模块中是否存在已配对设备对象;
第一断开模块,用于当第三判断模块判断出述保存模块中是存在已配对设备对象后,断开与已配对设备对象对应的蓝牙设备的配对;
第一清除模块,用于当断开模块断开与已配对设备对象对应的蓝牙设备的配对后,清除保存模块中保存的已配对设备对象;
第一获取模块具体用于当第一清除模块清除保存模块中保存的已配对设备对象后,根据中心设备对象向IOS系统发送搜索设备请求,通过第一委派接口获取来自IOS系统的第一设备对象;以及当第三判断模块判断出保存模块中不存在已配对设备对象后,根据中心设备对象向IOS系统发送搜索设备请求,通过第一委派接口获取来自IOS系统的第一设备对象。
若保存模块还用于当第二获取模块获取到来自IOS系统的第二设备对象后,将第一设备对象或第二设备对象作为已配对设备对象保存,通讯装置还可以包括第四判断模块和第五判断模块;
第四判断模块用于当配对模块通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对之前,判断保存模块中是否存在已配对设备对象;
第五判断模块用于当第四判断模块判断出为是后,判断第一设备对象和已配对设备是否匹配;
配对模块具体用于当第五判断模块判断为否后,通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对;当第四判断模块判断出为否后,通过IOS系统和与第一设备对象对应的目标蓝牙设备进行配对;
通讯模块还用于当第五判断模块判断为是后,使用保存模块保存的目标特征通过IOS系统和目标蓝牙设备进行通讯。
本实施中,通讯装置还可以包括设置模块;设置模块用于当第三获取模块向IOS系统发送获取设备服务请求之前,根据第一设备对象或第二设备对象设置IOS系统中的周边委派接口。
本实施例中,预设特征标识可以具体包括预设读特征标识和预设写特征标识;目标特征具体包括:目标读特征和目标写特征;
当预设特征标识可以具体包括预设读特征标识和预设写特征标识;目标特征具体包括:目标读特征和目标写特征时,相应地:
第六获取模块,具体用于当第四获取模块获取来自IOS系统的第一服务后,获取第一服务中与预设读特征标识对应的目标读特征和与预设写特征标识对应的目标写特征;
保存模块具体用于保存第六获取模块获取到的目标读特征和目标写特征;
通讯模块具体用于使用保存模块保存的目标读特征和目标写特征通过IOS系统和目标蓝牙设备进行通讯。
当预设特征标识可以具体包括预设读特征标识和预设写特征标识;目标特征具体包括:目标读特征和目标写特征时:通讯模块还用于当使用保存模块保存的目标读特征通过IOS系统和目标蓝牙设备进行通讯之前,打开目标读特征的读通道标识。
本实施例中,第一获取模块还可以具体用于:根据中心设备对象获取到来自IOS系统的与多个蓝牙设备分别对应的周边设备对象后,将保存模块保存的周边设备对象中的第一个周边设备对象作为第一设备对象;
保存模块还用于保存第一获取模块获取到的周边设备对象。
当第一获取模块具体用于:根据中心设备对象获取到来自IOS系统的与多个蓝牙设备分别对应的周边设备对象后,将保存模块保存的周边设备对象中的第一个周边设备对象作为第一设备对象时,通讯装置还可以包括第六判断模块和第七获取模块;
第六判断模块具体用于当第三获取模块获取到来自IOS系统的第三设备对象后,判断第三设备对象中是否和存在和预设服务标识对应的目标服务;
第五获取模块具体用于当第六判断模块判断出为是后,从第三获取模块获取到的第三设备对象中获取与预设服务标识对应的目标服务;
第七获取模块用于当第六判断模块判断出为否后,将第一设备对象之后的下一个周边设备对象作为第一设备对象;
配对模块还用于通过IOS系统和与第七获取模块获取到的第一设备对象对应的目标蓝牙设备进行配对。
本实施例中,通讯装置还可以包括:第八获取模块、生成模块和返回模块,相应地:
第八获取模块用于获取来自应用程序的初始化请求、获取设备标识请求、连接设备请求和通讯请求;获取设备标识请求包括生成模块生成的初始化成功标识;通讯请求包括通讯指令和生成模块生成的连接成功标识;
生成模块用于第八获取模块获取到来自应用程序的初始化请求后,生成初始化成功标识;以及当保存模块保存第六获取模块获取到的目标特征后,生成连接成功标识;
保存模块还用于保存生成模块生成的初始化成功标识和连接成功标识;
中心模块具体用于当第八获取模块获取到来自应用程序的初始化请求后,第一获取模块根据中心设备对象向IOS系统发送搜索设备请求前,初始化中心设备对象;
第一获取模块具体用于当第八获取模块获取到来自应用程序的获取设备标识请求后,根据中心设备对象向IOS系统发送搜索设备请求;获取来自IOS系统的与每个蓝牙设备分别对应的周边设备对象;以及当第八获取模块获取到来自应用程序的连接设备请求后,在周边设备对象中获取与目标设备标识对应的第一设备对象;
通讯模块具体用于当第八获取模块获取到来自应用程序的通讯请求后,使用保存模块保存的目标特征通过IOS系统和目标蓝牙设备进行通讯获取通讯指令应答;
返回模块用于向应用程序返回生成模块生成的初始化成功标识;返回第一获取模块获取到的周边设备对象的设备标识;当保存模块保存第六获取模块获取到的目标特征后之后,向应用程序返回连接成功标识;以及向应用程序返回通讯模块获取到的通讯指令应答。
本实施例中,通讯装置还可以包括卡片上电模块;
卡片上电模块用于当返回模块将连接成功标识返回给应用程序之前,使用第六获取模块获取到的目标特征通过IOS系统向目标蓝牙设备发送卡片上电指令获取卡片上电应答。
本实施例中,通讯装置还可以包括第一释放模块;
第八获取模块还用于获取来自应用程序的包括初始化成功标识的释放设备请求;
第一释放模块用于当第八获取模块获取到来自应用程序的包括初始化成功标识的释放设备请求后,清除保存模块中的初始化成功标识和目标特征;
返回模块还用于当第一释放模块清除保存模块中的初始化成功标识和目标特征后,向应用程序返回第一释放成功标识。
本实施例中,通讯装置还可以包括第二释放模块;
第八获取模块还用于获取来自应用程序的包括连接成功标识的释放卡片请求;
第二释放模块用于当第八获取模块获取到来自应用程序的包括连接成功标识的释放卡片请求后,清除保存模块中的连接成功标识;
返回模块还用于当第二释放模块清除保存模块中的连接成功标识后向应用程序返回第二释放成功标识。
需要说明的是,本实施例中第一设备对象、第二设备对象和第三设备对象均与目标蓝牙设备对应。第一设备对象、第二设备对象和第三设备对象可以相同或者不同,第一服务和目标服务可以相同也可以不同。中心委派接口包括:第一委派接口、第二委派接口和第五委派接口;周边委派接口包括:第三委派接口、第四委派接口和第六委派接口。

Claims (34)

1.一种蓝牙通讯方法,其特征在于,包括:
步骤s1:初始化中心设备对象,根据所述中心设备对象获取第一设备对象;
步骤s2:根据所述第一设备对象,与所述第一设备对象对应的目标蓝牙设备进行配对,获取与所述目标蓝牙设备对应的第二设备对象;
步骤s3:根据所述第一设备对象或第二设备对象,获取与所述目标蓝牙设备对应的第三设备对象,从所述第三设备对象中获取与预设服务标识对应的目标服务;
步骤s4:根据所述目标服务获取第一服务,从所述第一服务中获取与预设特征标识对应的目标特征,保存所述目标特征,使用所述目标特征与所述目标蓝牙设备进行通讯;
所述步骤s1具体包括:
步骤Q1:当获取到来自应用程序的初始化请求后,生成并保存初始化成功标识,向所述应用程序返回初始化成功标识;
步骤Q2:当获取到来自所述应用程序的获取设备标识请求后,所述获取设备标识请求包括所述初始化成功标识;根据中心设备对象向IOS系统发送搜索设备请求;
所述当获取到来自应用程序的初始化请求后,所述根据中心设备对象向所述IOS系统发送搜索设备请求之前还包括:初始化所述中心设备对象;
步骤Q3:当获取到来自所述IOS系统的与每个蓝牙设备分别对应的周边设备对象后,向所述应用程序返回所述周边设备对象中的设备标识;
步骤Q4:当获取到来自所述应用程序的连接设备请求后,在所述周边设备对象中获取第一设备对象;
所述步骤s2具体为:通过所述IOS系统和与所述第一设备对象对应的目标蓝牙设备进行配对,获取来自所述IOS系统的与所述目标蓝牙设备对应的第二设备对象;
所述步骤s3具体为:当获取到来自所述IOS系统的与所述目标蓝牙设备对应的第二设备对象后,使用所述第一设备对象或者所述第二设备对象向所述IOS系统发送获取设备服务请求,获取来自所述IOS系统的与所述目标蓝牙设备对应的第三设备对象,当获取到来自所述IOS系统的与所述目标蓝牙设备对应的第三设备对象后,从所述第三设备对象中获取与预设服务标识对应的目标服务;
所述步骤s4具体为:向IOS系统发送获取设备特征请求;所述获取设备特征请求中包括所述目标服务,当获取到来自所述IOS系统的第一服务后,获取所述第一服务中与预设特征标识对应的目标特征,保存所述目标特征,使用所述目标特征通过IOS系统和所述目标蓝牙设备进行通讯;
所述保存目标特征后,还包括:生成并保存连接成功标识,向所述应用程序返回连接成功标识;
所述使用所述目标特征通过IOS系统和所述目标蓝牙设备进行通讯,具体为:
当获取到来自所述应用程序的通讯请求后;所述通讯请求包括通讯指令和所述连接成功标识,使用已保存的所述目标特征通过IOS系统和所述周边设备进行通讯,获取通讯指令应答,将所述通讯指令应答返回给所述应用程序。
2.根据权利要求1所述的方法,其特征在于,所述连接设备请求中包括目标设备标识;所述在所述周边设备对象中获取第一设备对象具体为:获取与所述目标设备标识对应的周边设备对象,将所述与所述目标设备标识对应的周边设备对象作为第一设备对象。
3.根据权利要求1所述的方法,其特征在于,所述从所述第三设备对象中获取与预设服务标识对应的目标服务之前还包括:判断所述第三设备对象中是否存在和所述预设服务标识对应的目标服务,如果是,则从所述第三设备对象中获取与预设服务标识对应的目标服务,执行步骤s4;否则,报错;
所述从所述第一服务中获取与预设特征标识对应的目标特征之前还包括:判断所述第一服务中是否存在和所述预设特征标识对应的目标特征,如果是,则从所述第一服务中获取与预设特征标识对应的目标特征,继续;否则,报错。
4.根据权利要求1所述的方法,其特征在于,当获取到所述第二设备对象后,还包括:将所述第二设备对象或所述第一设备对象作为已配对设备对象保存。
5.根据权利要求4所述的方法,其特征在于,所述根据所述中心设备对象获取第一设备对象之前,还包括:判断是否存在已配对设备对象,如果是,则断开与所述已配对设备对象对应的蓝牙设备的配对,清除已保存的已配对设备对象,根据所述中心设备对象获取第一设备对象;否则,根据所述中心设备对象获取第一设备对象。
6.根据权利要求4所述的方法,其特征在于,所述根据所述第一设备对象,与所述第一设备对象对应的目标蓝牙设备进行配对之前,还包括:判断是否存在已配对设备对象,如果存在已配对设备对象,则判断所述第一设备对象和所述已配对设备对象是否匹配,若匹配,则使用已保存的所述目标特征和所述目标蓝牙设备进行通讯;若不匹配,则与所述第一设备对象对应的目标蓝牙设备进行配对,继续;如果不存在已配对设备对象,则与所述第一设备对象对应的目标蓝牙设备进行配对,继续。
7.根据权利要求1所述的方法,其特征在于,所述初始化中心设备对象具体为:创建所述中心设备对象,根据所述中心设备对象设置IOS系统中的中心委派接口。
8.根据权利要求7所述的方法,其特征在于,所述根据中心设备对象向所述IOS系统发送搜索设备请求;
具体为:使用所述中心设备对象调用所述IOS系统的发现周边设备方法向所述IOS系统发送搜索设备请求;
所述Q3具体为:通过第一委派接口获取来自所述IOS系统的与每个蓝牙设备分别对应的周边设备对象后,向所述应用程序返回所述周边设备对象中的设备标识;
所述步骤s2具体为:使用所述中心设备对象调用所述IOS系统的连接周边设备方法和与所述第一设备对象对应的目标蓝牙设备进行配对;通过第二委派接口获取到来自所述IOS系统的第二设备对象,执行步骤s3。
9.根据权利要求1所述的方法,其特征在于,所述步骤s3之前,还包括:根据所述第一设备对象或者第二设备对象设置IOS系统中的周边委派接口。
10.根据权利要求9所述的方法,其特征在于,所述步骤s3具体为:使用第一设备对象或者第二设备对象调用所述IOS系统的发现周边设备服务方法向所述IOS系统发送获取设备服务请求;通过第三委派接口获取来自所述IOS系统的所述第三设备对象,获取所述第三设备对象中的与预设服务标识对应的目标服务;
所述步骤s4具体为:使用第一设备对象或者第二设备对象或者第三设备对象调用所述IOS系统的发现周边设备特征方法向所述IOS系统发送获取设备特征请求;所述获取设备特征请求中包括所述目标服务;当通过第四委派接口获取到来自所述IOS系统的第一服务后,获取所述第一服务中与预设特征标识对应的目标特征,保存所述目标特征,使用所述目标特征通过所述IOS系统和所述目标蓝牙设备进行通讯。
11.根据权利要求1所述的方法,其特征在于,所述获取设备服务请求中包括所述预设服务标识。
12.根据权利要求1所述的方法,其特征在于,所述获取设备特征请求中还包括所述预设特征标识。
13.根据权利要求1所述的方法,其特征在于,所述预设特征标识具体包括预设读特征标识和预设写特征标识;所述目标特征具体包括:目标读特征和目标写特征;
所述步骤s4具体为:根据所述目标服务获取第一服务,获取所述第一服务中与所述预设读特征标识对应的目标读特征和与所述预设写特征标识对应的目标写特征,保存所述目标读特征和所述目标写特征,使用所述目标读特征和所述目标写特征和所述目标蓝牙设备进行通讯。
14.根据权利要求13所述的方法,其特征在于,使用所述目标读特征和所述目标蓝牙设备进行通讯之前,还包括:打开所述目标读特征的读通道标识。
15.根据权利要求1所述的方法,其特征在于,所述根据所述中心设备对象获取第一设备对象具体为:根据所述中心设备对象获取与多个蓝牙设备分别对应的周边设备对象,保存所述周边设备对象,将保存的所述周边设备对象中的第一个周边设备对象作为第一设备对象。
16.根据权利要求15所述的方法,其特征在于,所述从所述第三设备对象中获取与预设服务标识对应的目标服务之前还包括:判断所述第三设备对象中是否存在和所述预设服务标识对应的目标服务,如果是,则从所述第三设备对象中获取与预设服务标识对应的目标服务,执行步骤s4;否则,将第一设备对象之后的下一个周边设备对象作为第一设备对象,返回步骤s2。
17.根据权利要求1所述的方法,其特征在于,所述搜索设备请求中包括预设服务标识。
18.一种通讯装置,其特征在于,包括:中心模块、第一获取模块、配对模块、第二获取模块、第三获取模块、第四获取模块、第五获取模块、第六获取模块、保存模块和通讯模块;
所述中心模块,用于初始化中心设备对象;
所述第一获取模块,用于根据所述中心模块初始化的所述中心设备对象获取第一设备对象;
所述配对模块,用于根据所述第一获取模块获取到的所述第一设备对象,与所述第一设备对象对应的目标蓝牙设备进行配对;
所述第二获取模块,用于当所述配对模块根据所述第一获取模块获取到的所述第一设备对象,与所述第一设备对象对应的目标蓝牙设备进行配对后,获取与所述目标蓝牙设备对应的第二设备对象;
所述第三获取模块,用于当所述第二获取模块获取到与所述目标蓝牙设备对应的第二设备对象后,根据所述第二设备对象或所述第一获取模块获取到的所述第一设备对象,获取与所述目标蓝牙设备对应的第三设备对象;
所述第五获取模块,用于从所述第三获取模块获取到的所述第三设备对象中获取与预设服务标识对应的目标服务;
所述第四获取模块,用于根据所述第五获取模块获取到的目标服务获取第一服务;
所述第六获取模块,用于从所述第四获取模块获取到的所述第一服务中获取与预设特征标识对应的目标特征;
所述保存模块,用于保存所述第六获取模块获取到的所述目标特征;
所述通讯模块,用于使用所述保存模块保存的所述目标特征和所述目标蓝牙设备进行通讯;
所述配对模块具体用于:通过IOS系统和与所述第一获取模块获取到的第一设备对象对应的目标蓝牙设备进行配对;
所述第二获取模块具体用于:当所述配对模块通过所述IOS系统和与所述第一获取模块获取到的第一设备对象对应的目标蓝牙设备进行配对后,获取来自所述IOS系统的第二设备对象;
所述第三获取模块具体用于:当所述第二获取模块获取到第二设备对象后,使用所述第一获取模块获取到的第一设备对象或者所述第二获取模块获取到的第二设备对象向所述IOS系统发送获取设备服务请求,获取来自所述IOS系统的第三设备对象;
所述第五获取模块具体用于:从所述第三获取模块获取到的来自所述IOS系统的所述第三设备对象中获取与预设服务标识对应的目标服务;
所述第四获取模块具体用于:向IOS系统发送获取设备特征请求,获取来自所述IOS系统的第一服务;所述获取设备特征请求中包括所述第五获取模块获取到的所述目标服务;
所述通讯模块具体用于:使用所述保存模块保存的所述目标特征通过所述IOS系统和所述目标蓝牙设备进行通讯;
所述通讯装置还包括:第八获取模块、生成模块和返回模块;
所述第八获取模块用于获取来自应用程序的初始化请求、获取设备标识请求、连接设备请求和通讯请求;所述获取设备标识请求包括所述生成模块生成的初始化成功标识;所述通讯请求包括通讯指令和所述生成模块生成的连接成功标识;
所述生成模块用于当所述第八获取模块获取到来自应用程序的初始化请求后,生成所述初始化成功标识;以及当所述保存模块保存所述第六获取模块获取到的所述目标特征后,生成所述连接成功标识;
所述保存模块还用于保存所述生成模块生成的所述初始化成功标识和所述连接成功标识;
所述中心模块具体用于当所述第八获取模块获取到来自应用程序的初始化请求后,所述第一获取模块根据中心设备对象向所述IOS系统发送搜索设备请求前,初始化中心设备对象;
所述第一获取模块具体用于当所述第八获取模块获取到来自应用程序的获取设备标识请求后,根据所述中心设备对象向所述IOS系统发送搜索设备请求获取来自所述IOS系统的与每个蓝牙设备分别对应的周边设备对象;以及当所述第八获取模块获取到来自所述应用程序的连接设备请求后,在所述周边设备对象中获取第一设备对象;
所述通讯模块具体用于当所述第八获取模块获取到来自应用程序的通讯请求后,使用所述保存模块保存的所述目标特征通过所述IOS系统和所述目标蓝牙设备进行通讯获取通讯指令应答;
所述返回模块用于向所述应用程序返回所述生成模块生成的初始化成功标识;返回所述第一获取模块获取到的所述周边设备对象的设备标识;当所述保存模块保存所述第六获取模块获取到的所述目标特征后之后,向所述应用程序返回连接成功标识;以及向所述应用程序返回所述通讯模块获取到的所述通讯指令应答。
19.根据权利要求18所述的通讯装置,其特征在于,所述第一获取模块具体包括:第一获取单元和第二获取单元;
所述连接设备请求中包括:目标设备标识;
所述第一获取单元用于当所述第八获取模块获取到来自应用程序的获取设备标识请求后,根据所述中心模块初始化的中心设备对象获取与多个蓝牙设备分别对应的周边设备对象;以及当所述第八获取模块获取到来自所述应用程序的连接设备请求后,获取与用户选中的目标设备标识对应的周边设备对象,将与所述目标设备标识对应的周边设备对象作为第一设备对象;
所述保存模块还用于保存所述第一获取单元获取到的所述周边设备对象。
20.根据权利要求18所述的通讯装置,其特征在于,所述通讯装置还包括:第一判断模块、第二判断模块和报错模块;
所述第一判断模块用于当所述第三获取模块获取到第三设备对象后,判断所述第三设备对象中是否存在和所述预设服务标识对应的目标服务;
所述第五获取模块具体用于当所述第一判断模块判断出为是后,从所述第三获取模块获取到的所述第三设备对象中获取与预设服务标识对应的目标服务;
所述第二判断模块具体用于当所述第四获取模块获取到第一服务后,判断所述第一服务中是否存在与预设特征标识对应的目标特征;
所述保存模块具体用于当所述第二判断模块判断出为是后,保存所述第六获取模块获取到的所述目标特征;
所述报错模块用于当所述第一判断模块判断出为否后,报错;以及当所述第二判断模块判断出为否后,报错。
21.根据权利要求18所述的通讯装置,其特征在于,所述保存模块还用于当所述第二获取模块获取到第二设备对象后,将所述第一设备对象或所述第二设备对象作为已配对设备对象保存。
22.根据权利要求21所述的通讯装置,其特征在于,所述通讯装置还包括第三判断模块、第一断开模块和第一清除模块;
所述第三判断模块用于当所述第一获取模块根据所述中心设备对象获取第一设备对象之前,判断所述保存模块中是否存在已配对设备对象;
所述第一断开模块用于当所述第三判断模块判断为是后,断开与所述已配对设备对象对应的蓝牙设备的配对;
所述第一清除模块用于当所述第一断开模块断开与所述已配对设备对象对应的蓝牙设备的配对后,清除所述保存模块中保存的已配对设备对象;
所述第一获取模块具体用于当所述第一清除模块清除所述保存模块中保存的已配对设备对象后,根据所述中心设备对象获取第一设备对象;以及当所述第三判断模块判断为否后,根据所述中心设备对象获取第一设备对象。
23.根据权利要求21所述的通讯装置,其特征在于,所述通讯装置还包括第四判断模块和第五判断模块;
所述第四判断模块用于当所述配对模块与所述第一设备对象对应的目标蓝牙设备进行配对之前,判断所述保存模块中是否存在已配对设备对象;
第五判断模块用于当所述第四判断模块判断出为是后,判断所述第一设备对象和所述已配对设备是否匹配;
所述配对模块具体用于当所述第五判断模块判断为否后,与所述第一设备对象对应的目标蓝牙设备进行配对;当所述第四判断模块判断出为否后,与所述第一设备对象对应的目标蓝牙设备进行配对;
所述通讯模块还用于当所述第五判断模块判断为是后,使用所述保存模块保存的所述目标特征和所述目标蓝牙设备进行通讯。
24.根据权利要求18所述的通讯装置,其特征在于,所述中心模块具体用于创建所述中心设备对象,根据所述中心设备对象设置IOS系统中的中心委派接口。
25.根据权利要求24所述的通讯装置,其特征在于,所述第一获取模块具体用于:当所述中心模块创建所述中心设备对象,根据所述中心设备对象设置IOS系统中的中心委派接口后,使用所述中心设备对象调用所述IOS系统的发现周边设备方法向所述IOS系统发送搜索设备请求,
通过第一委派接口获取来自所述IOS系统的与每个蓝牙设备分别对应的周边设备对象;以及当所述第八获取模块获取到来自所述应用程序的连接设备请求后,在所述周边设备对象中获取第一设备对象;
所述配对模块具体用于:使用所述中心设备对象调用所述IOS系统的连接周边设备方法和与所述第一获取模块获取到的所述第一设备对象对应的目标蓝牙设备进行配对;
所述第二获取模块具体用于:当所述配对模块使用所述中心设备对象调用所述IOS系统的连接周边设备方法和与所述第一获取模块获取到的所述第一设备对象对应的目标蓝牙设备进行配对后,通过第二委派接口获取来自所述IOS系统的第二设备对象。
26.根据权利要求18所述的通讯装置,其特征在于,所述通讯装置还包括设置模块;所述设置模块用于当所述第三获取模块获取第三设备对象之前,根据所述第一设备对象或所述第二设备对象设置IOS系统中的周边委派接口。
27.根据权利要求26所述的通讯装置,其特征在于,所述第三获取模块具体用于:当所述第二获取模块获取到第二设备对象后,使用所述第一设备对象或第二设备对象调用所述IOS系统的发现周边设备服务方法向所述IOS系统发送获取设备服务请求,通过第三委派接口获取来自所述IOS系统的第三设备对象;
所述第四获取模块具体用于:使用所述第一设备对象或所述第二设备对象或所述第三设备对象调用所述IOS系统的发现周边设备特征方法向所述IOS系统发送获取设备特征请求;通过第四委派接口获取来自所述IOS系统的与所述预设服务标识匹配的第一服务;所述获取设备特征请求中包括所述第五获取模块获取到的所述目标服务。
28.根据权利要求18所述的通讯装置,其特征在于,所述获取设备服务请求中包括所述预设服务标识。
29.根据权利要求18所述的通讯装置,其特征在于,所述获取设备特征请求中还包括所述预设特征标识。
30.根据权利要求18所述的通讯装置,其特征在于,所述预设特征标识具体包括预设读特征标识和预设写特征标识;所述目标特征具体包括:目标读特征和目标写特征;
所述第六获取模块具体用于当所述第四获取模块获取到第一服务后,获取所述第一服务中与所述预设读特征标识对应的目标读特征和与所述预设写特征标识对应的目标写特征;
所述保存模块具体用于保存所述第六获取模块获取到的所述目标读特征和所述目标写特征;
所述通讯模块具体用于使用所述保存模块保存的所述目标读特征和所述目标写特征和所述目标蓝牙设备进行通讯。
31.根据权利要求30所述的通讯装置,其特征在于,所述通讯模块还用于当使用所述保存模块保存的所述目标读特征和所述目标蓝牙设备进行通讯之前,打开所述目标读特征的读通道标识。
32.根据权利要求18所述的通讯装置,其特征在于,所述第一获取模块具体用于:当所述第八获取模块获取到来自应用程序的获取设备标识请求后,根据所述中心设备对象,获取与多个蓝牙设备分别对应的周边设备对象,当所述第八获取模块获取到来自所述应用程序的连接设备请求后,将所述保存模块保存的所述周边设备对象中的第一个周边设备对象作为第一设备对象;
所述保存模块还用于保存所述第一获取模块获取到的周边设备对象。
33.根据权利要求32所述的通讯装置,其特征在于,所述通讯装置还包括第六判断模块和第七获取模块;
所述第六判断模块具体用于当所述第三获取模块获取到第三设备对象后,判断所述第三设备对象中是否和存在和所述预设服务标识对应的目标服务;
所述第五获取模块具体用于当所述第六判断模块判断出为是后,从所述第三获取模块获取到的所述第三设备对象中获取与预设服务标识对应的目标服务;
所述第七获取模块用于当所述第六判断模块判断出为否后,将第一设备对象之后的下一个周边设备对象作为第一设备对象;
所述配对模块还用于与所述第七获取模块获取到的所述第一设备对象对应的目标蓝牙设备进行配对。
34.根据权利要求18所述的通讯装置,其特征在于,所述搜索设备请求中包括预设服务标识。
CN201510666316.9A 2015-10-15 2015-10-15 一种蓝牙通讯方法和通讯装置 Active CN105188023B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201510666316.9A CN105188023B (zh) 2015-10-15 2015-10-15 一种蓝牙通讯方法和通讯装置
PCT/CN2016/099759 WO2017063493A1 (zh) 2015-10-15 2016-09-22 蓝牙通讯方法和通讯装置
US15/940,934 US10334410B2 (en) 2015-10-15 2018-03-29 Bluetooth communication method and communication device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510666316.9A CN105188023B (zh) 2015-10-15 2015-10-15 一种蓝牙通讯方法和通讯装置

Publications (2)

Publication Number Publication Date
CN105188023A CN105188023A (zh) 2015-12-23
CN105188023B true CN105188023B (zh) 2019-07-26

Family

ID=54909816

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510666316.9A Active CN105188023B (zh) 2015-10-15 2015-10-15 一种蓝牙通讯方法和通讯装置

Country Status (3)

Country Link
US (1) US10334410B2 (zh)
CN (1) CN105188023B (zh)
WO (1) WO2017063493A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778143B (zh) * 2015-03-20 2018-06-01 飞天诚信科技股份有限公司 主动与苹果设备连接并进行通信的方法和苹果设备附件
CN105188023B (zh) 2015-10-15 2019-07-26 飞天诚信科技股份有限公司 一种蓝牙通讯方法和通讯装置
CN106686535B (zh) * 2017-01-23 2020-02-11 飞天诚信科技股份有限公司 一种在iOS系统上实现低功耗蓝牙通信的方法及装置
CN106846590A (zh) * 2017-03-07 2017-06-13 上海聚宝数字传媒有限公司 一种ios系统下的基于蓝牙连接的智能门禁交互管理方法
CN106959900B (zh) * 2017-03-22 2020-05-19 飞天诚信科技股份有限公司 一种防止多线程死锁的方法及装置
CN108540966B (zh) * 2018-03-16 2021-04-06 飞天诚信科技股份有限公司 一种蓝牙通信的方法及通信装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8620379B2 (en) * 2010-12-06 2013-12-31 Broadcom Corporation Windows portable devices interface for Bluetooth low energy devices
US9191988B2 (en) * 2012-05-26 2015-11-17 Qualcomm Incorporated Smart pairing using bluetooth technology
US20140113267A1 (en) * 2012-10-24 2014-04-24 M4 Strategies Selecting Target Respondents For a Survey Based on Application Data of Mobile Devices
CN104038404B (zh) * 2013-03-04 2017-06-27 联想(北京)有限公司 一种信息获取方法和装置
CN103457642A (zh) * 2013-08-15 2013-12-18 上海天奕达电子科技有限公司 一种获取智能终端电话本信息的方法及装置
US9661445B2 (en) * 2014-05-02 2017-05-23 Qualcomm Incorporated Methods and apparatus for integrating bluetooth devices into neighbor aware networks
US10172169B2 (en) * 2014-09-14 2019-01-01 Lg Electronics Inc. Method and device for controlling device by using bluetooth technology
CN104797005A (zh) * 2015-04-29 2015-07-22 深圳市文鼎创数据科技有限公司 蓝牙配对方法和蓝牙配对设备
US9801219B2 (en) * 2015-06-15 2017-10-24 Microsoft Technology Licensing, Llc Pairing of nearby devices using a synchronized cue signal
US20170034646A1 (en) * 2015-07-27 2017-02-02 Lg Electronics Inc. Method and apparatus for transmitting and receiving data in wireless communication system
US10136214B2 (en) * 2015-08-11 2018-11-20 Google Llc Pairing of media streaming devices
CN105188023B (zh) * 2015-10-15 2019-07-26 飞天诚信科技股份有限公司 一种蓝牙通讯方法和通讯装置

Also Published As

Publication number Publication date
US20180220273A1 (en) 2018-08-02
CN105188023A (zh) 2015-12-23
US10334410B2 (en) 2019-06-25
WO2017063493A1 (zh) 2017-04-20

Similar Documents

Publication Publication Date Title
CN105188023B (zh) 一种蓝牙通讯方法和通讯装置
CN108551670B (zh) 一种蓝牙连接方法、装置及智能终端
CN104955022A (zh) 一种共享使用虚拟sim卡的方法和系统
CN106341516B (zh) 一种多点连接控制方法、装置、终端及多点蓝牙耳机
CN109495850A (zh) 耳机与终端的连接方法、装置及耳机盒
CN103731853B (zh) 双卡移动通讯设备的云识别方法、设备和系统
EP4231591A3 (en) Communications system, communications device used in same, management device, and information terminal
CN105246029B (zh) 一种蓝牙通信方法、系统以及一种电子设备
CN109618318A (zh) 一种tws耳机的配对方法及tws耳机
CN104270204A (zh) 一种无线通信模块测试方法及测试设备
CN103974216B (zh) 一种信息处理方法及电子设备
CN102202132B (zh) 一种对上网设备进行初始化的方法、系统及设备
CN108495291A (zh) 一种蓝牙连接方法及装置
CN110460916A (zh) 融合对讲系统、方法、计算设备及计算机存储介质
US8615272B2 (en) Method and system for associating subscriber identity module
CN105916192A (zh) 一种用于同时接入lte公网与专网的系统及方法
KR100704358B1 (ko) 어플리케이션 os에의 이동 전화기의 도메스틱 os의 시스템-레벨 기능 연결
CN107968848A (zh) 一种获取ip地址的方法、终端设备及存储介质
CN108108170A (zh) 一种组件的解耦合方法及系统
CN103546873B (zh) 一键通业务处理方法及装置
CN112416617A (zh) 蓝牙设备的控制方法及装置、存储介质、电子装置
WO2011021920A2 (ko) 게이트웨이서버와 이동통신단말기 식별정보를 이용한 통신로 개설방법
CN111541960B (zh) 交换机配置方法、装置、设备及计算机可读存储介质
CN105847286B (zh) 多媒体文件的获取方法及装置
CN102869119B (zh) 终端和数据连接的管理方法

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