【技术实现步骤摘要】
一种MAC OS系统下访问蓝牙设备的方法及系统
[0001]本专利技术涉及通信领域,特别涉及一种MAC OS系统下访问蓝牙设备的方法及系统。
技术介绍
[0002]由于苹果的MAC OS系统不支持webauthen接口类的应用程序,例如浏览器,对FIDO蓝牙设备的访问,影响了FIDO蓝牙设备的使用。
技术实现思路
[0003]本专利技术提供了一种的MAC OS系统下访问蓝牙设备的方法及系统,解决了上述技术问题。
[0004]本专利技术提供的一种MAC OS系统下访问蓝牙设备的方法,该方法包括:代理程序调用系统的轮询接口函数获取系统发送的蓝牙设备列表,判断蓝牙设备列表中是否有符合预定条件的蓝牙设备;当代理程序判断蓝牙设备列表中有符合预定条件的蓝牙设备时,代理程序调用系统的连接函数与蓝牙设备建立连接,从系统返回的连接结果中获取蓝牙设备的蓝牙设备句柄并保存;代理程序调用系统的获取匹配服务函数查找特定服务名称的驱动,接收系统返回的驱动的驱动句柄;代理程序以预置参数,驱动句柄和创建标识为参数,调用系统的连接标量方法函数使系统发送创建指令给驱动;当驱动接收到系统发送的创建指令时,驱动向系统发送注册请求使系统根据预置参数在系统中注册一个虚拟FIDO HID设备,接收系统返回的虚拟FIDO HID设备的虚拟FIDO HID设备句柄,并向系统返回创建指令的响应;当代理程序接收到系统返回的创建成功响应时,代理程序以通知标识,回调函数的地址和驱动句柄为参数,调用系统的连接标量方法函数向系统发送通知指令;当驱动接收到 ...
【技术保护点】
【技术特征摘要】
1.一种MAC OS系统下访问蓝牙设备的方法,其特征在于,包括:代理程序调用系统的轮询接口函数获取系统发送的蓝牙设备列表,判断所述蓝牙设备列表中是否有符合预定条件的蓝牙设备;当所述代理程序判断所述蓝牙设备列表中有符合预定条件的蓝牙设备时,所述代理程序调用系统的连接函数与所述蓝牙设备建立连接,从系统返回的连接结果中获取所述蓝牙设备的蓝牙设备句柄并保存;所述代理程序调用系统的获取匹配服务函数查找特定服务名称的驱动,接收所述系统返回的所述驱动的驱动句柄;所述代理程序以预置参数,所述驱动句柄和创建标识为参数,调用系统的连接标量方法函数使所述系统发送创建指令给所述驱动;当所述驱动接收到系统发送的创建指令时,所述驱动向所述系统发送注册请求使所述系统根据所述预置参数在所述系统中注册一个虚拟FIDO HID设备,接收所述系统返回的所述虚拟FIDO HID设备的虚拟FIDO HID设备句柄,并向所述系统返回创建指令的响应;当所述代理程序接收到所述系统返回的创建成功响应时,所述代理程序以通知标识,回调函数的地址和所述驱动句柄为参数,调用系统的连接标量方法函数向所述系统发送通知指令;当所述驱动接收到系统发送通知指令时,获取所述通知指令中回调函数的地址并存储,向所述系统返回通知指令响应;当所述驱动接收到所述系统通过所述虚拟FIDO HID设备的设置报告接口函数发送的FIDO HID格式的应用程序通信指令时,所述驱动将所述应用程序通信指令转换为FIDO BLE 格式的应用程序通信指令,向所述系统返回FIDO BLE 格式的应用程序通信指令和回调函数的地址,并通过所述系统调用所述代理程序的回调函数;当所述代理程序的回调函数被所述系统调用时,所述代理程序接收所述系统根据所述回调函数的地址发送的所述FIDO BLE 格式的应用程序通信指令,以所述蓝牙设备句柄和所述FIDO BLE 格式的应用程序通信指令为参数调用所述系统的特征值写入函数使所述系统将所述FIDO BLE 格式的通信指令发送给所述蓝牙设备;所述代理程序接收所述系统发送的所述蓝牙设备返回的FIDO BLE格式的蓝牙设备通信指令响应,以所述驱动句柄和所述FIDO BLE格式的通信指令响应为参数调用所述系统的连接标量方法函数将所述FIDO BLE格式的蓝牙设备通信指令响应通过所述系统发送给所述驱动;当所述驱动接收到所述系统发送的FIDO BLE格式的蓝牙设备通信指令响应时,将所述蓝牙设备通信指令响应转换为FIDO HID格式的蓝牙设备通信指令响应,并根据所述虚拟FIDO HID设备句柄调用虚拟FIDO HID设备,使所述虚拟FIDO HID 设备调用所述系统的处理报告函数将所述FIDO HID格式的蓝牙设备通信指令响应发送给所述系统以使所述系统根据所述虚拟FIDO HID设备句柄将所述FIDO HID格式的蓝牙设备通信指令响应返回给所述应用程序。2.如权利要求1所述方法,其特征在于,当所述驱动接收到系统发送的创建指令时具体为,当所述驱动的外部方法函数被所述系统调用时,其中所述外部方法函数的参数为创建标识和预置参数;
当所述驱动接收到系统发送通知指令时具体为:当所述驱动的外部方法函数被系统调用时,其中所述外部方法函数的参数为通知标识和回调函数的地址;当所述驱动接收系统发送的FIDO BLE格式的蓝牙设备通信指令响应时具体为:当所述驱动的外部方法函数被系统调用时,其中所述外部方法函数的参数为发送标识和FIDO BLE格式的蓝牙设备通信指令响应。3.如权利要求1所述方法,其特征在于,所述方法还包括:当所述代理程序接收到所述系统发送的蓝牙设备断开消息时,所述代理程序以所述驱动句柄和毁坏标识为参数,调用所述系统的连接标量方法函数使所述系统发送毁坏指令给所述驱动;当所述驱动接收到所述系统发送的毁坏指令时,所述驱动根据虚拟FIDO HID设备的句柄调用虚拟FIDO HID设备,使所述虚拟FIDO HID设备以所述虚拟FIDO HID设备句柄作为参数调用系统的终止函数使系统将注册的虚拟FIDO HID设备删除。4.如权利要求3所述方法,其特征在于,当所述驱动接收到所述系统发送的毁坏指令时,具体为:当所述驱动的外部方法函数被系统调用时,其中外部方法函数的参数为毁坏标识和虚拟FIDO HID设备句柄。5.如权利要求1所述方法,其特征在于,所述驱动向所述系统发送注册请求使所述系统根据所述预置参数在所述系统中注册一个虚拟FIDO HID设备具体为:所述驱动向所述系统申请一个IO HID设备对象,并将所述预置参数发送给所述系统,并请求所述系统在所述系统中注册一个虚拟 FIDO HID设备后根据所述预置参数设置所述虚拟FIDO HID设备,并将所述虚拟FIDO HID设备附加到IO HID设备列表中。6.如权利要求5所述方法,其特征在于,所述驱动向所述系统申请一个IO HID设备对象,并将所述预置参数发送给所述系统,并请求所述系统在所述系统中注册一个虚拟 FIDO HID设备后根据所述预置参数设置所述虚拟FIDO HID设备,并将所述虚拟FIDO HID设备附加到IO HID设备列表中具体为:所述驱动调用系统的类型分配函数向所述系统申请一个IO HID设备对象,以所述预置参数为参数调用所述系统的预置参数设置函数将所述预置参数发送给所述系统,并请求所述系统在所述系统中注册一个虚拟 FIDO HID设备后根据所述预置参数设置所述虚拟FIDO HID设备,调用所述系统的附加函数使系统将所述虚拟FIDO HID设备附加到IO HID设备列表中。7.如权利要求1所述方法,其特征在于,所述方法还包括:当所述驱动接收到所述系统通过所述虚拟FIDO HID设备的设置报告接口发送的FIDO HID格式的应用程序协商通信通道指令时,所述驱动生成伪数据,根据伪数据生成协商通道指令的响应,并根据所述虚拟FIDO HID设备句柄调用虚拟FIDO HID设备,使虚拟FIDO HID 设备调用系统的处理报告函数将协商通道指令的响应发送给系统以使系统根据所述虚拟FIDO HID设备的句柄将协商通道指令的响应返回给应用程序。8.一种MAC OS系统下访问蓝牙设备的方法,其特征在于,包括:代理程序调用系统的轮询接口函数获取系统发送的蓝牙设备列表,判断所述蓝牙设备列表中是否有符合预定条件的蓝牙设备;
当所述代理程序判断所述蓝牙设备列表中有符合预定条件的蓝牙设备时,所述代理程序调用系统的连接函数与所述蓝牙设备建立连接,从系统返回的连接结果中获取所述蓝牙设备的蓝牙设备句柄并保存;所述代理程序调用系统的获取匹配服务函数查找特定服务名称的驱动,接收所述系统返回的所述驱动的驱动句柄;所述代理程序以预置参数,所述驱动句柄和创建标识为参数,调用系统的连接标量方法函数使所述系统发送创建指令给...
【专利技术属性】
技术研发人员:陆舟,
申请(专利权)人:飞天诚信科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。