一种MACOS系统下访问蓝牙设备的方法及系统技术方案

技术编号:31768277 阅读:24 留言:0更新日期:2022-01-05 16:54
本发明专利技术公开了一种MAC OS系统下访问蓝牙设备的方法及系统,方法包括:代理程序获取连接的蓝牙设备的蓝牙设备句柄并保存;查找特定服务名称的驱动并接收驱动的驱动句柄;驱动请求系统在系统中注册一个虚拟FIDO HID设备,并将系统返回的虚拟FIDO HID设备句柄发送给代理程序,驱动获取代理程序发送的通知指令中回调函数的地址并存储;虚拟FIDO HID设备将应用程序通信指令转换为FIDO BLE格式后通过系统经由代理程序发送给蓝牙设备;将蓝牙设备通信指令响应转换为FIDO HID格式后通过系统返回给应用程序。本方法扩展了支持访问FIDO蓝牙设备的功能。备的功能。备的功能。

【技术实现步骤摘要】
一种MAC OS系统下访问蓝牙设备的方法及系统


[0001]本专利技术涉及通信领域,特别涉及一种MAC OS系统下访问蓝牙设备的方法及系统。

技术介绍

[0002]由于苹果的MAC OS系统不支持webauthen接口类的应用程序,例如浏览器,对FIDO蓝牙设备的访问,影响了FIDO蓝牙设备的使用。

技术实现思路

[0003]本专利技术提供了一种的MAC OS系统下访问蓝牙设备的方法及系统,解决了上述技术问题。
[0004]本专利技术提供的一种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格式的蓝牙设备通信指令响应返回给应用程序。
[0005]本专利技术还提供了一种MAC OS系统下访问蓝牙设备的方法,该方法包括:代理程序调用系统的轮询接口函数获取系统发送的蓝牙设备列表,判断蓝牙设备列表中是否有符合预定条件的蓝牙设备;当代理程序判断蓝牙设备列表中有符合预定条件的蓝牙设备时,代理程序调用系统的连接函数与蓝牙设备建立连接,从系统返回的连接结果中获取蓝牙设备的蓝牙设备句柄并保存;代理程序调用系统的获取匹配服务函数查找特定服务名称的驱动,接收系统返回的驱动的驱动句柄;代理程序以预置参数,驱动句柄和创建标识为参数,调用系统的连接标量方法函数使系统发送创建指令给驱动以触发驱动请求系统根据预置参数在系统中注册一个虚拟FIDO HID设备;当代理程序接收到系统返回的创建成功响应时,代理程序以通知标识,回调函数的地址和驱动句柄为参数,调用系统的连接标量方法函数以使系统向驱动发送通知指令触发驱动保存通知指令中的回调函数的地址;当代理程序的回调函数被系统调用时,代理程序接收系统发送的由驱动转换得到FIDO BLE 格式的应用程序通信指令,以蓝牙设备句柄和FIDO BLE 格式的应用程序通信指令为参数调用系统的特征值写入函数使系统将FIDO BLE 格式的通信指令发送给蓝牙设备;代理程序接收系统发送的蓝牙设备返回的FIDO BLE格式的蓝牙设备通信指令响应,以驱动句柄和FIDO BLE格式的通信指令响应为参数调用系统的连接标量方法函数以使系统将FIDO BLE格式的蓝牙设备通信指令响应发送给驱动进行转换得到FIDO HID格式的蓝牙设备通信指令响应后发送给应用程序。
[0006]本专利技术还提供了一种MAC OS系统下访问蓝牙设备的方法,包括:驱动被系统加载;当接收到系统发送的创建指令时,驱动向系统发送注册请求使系统在系统中注册一个虚拟FIDO HID设备,接收系统返回的虚拟FIDO HID设备句柄,并向系统返回创建指令的响应给代理程序;当接收到系统发送的通知指令时,驱动接收系统发送通知指令,获取通知指令中回调函数的地址并存储,向系统返回通知指令响应;当驱动接收到系统通过虚拟FIDO HID设备的设置报告接口函数发送的FIDO HID格式的应用程序通信指令时,驱动将应用程序通信指令转换为FIDO BLE 格式的应用程序通信指令,向系统返回FIDO BLE 格式的应用程序通信指令和回调函数的地址,以使系统以
回调函数的地址为参数调用代理程序的回调函数将FIDO BLE格式数据通过代理程序发送给蓝牙设备;当驱动接收到系统发送的FIDO BLE格式的蓝牙设备通信指令响应时,驱动将蓝牙设备通信指令响应转换为FIDO HID格式的蓝牙设备通信指令响应,并根据虚拟FIDO HID设备句柄调用虚拟FIDO HID设备,使虚拟FIDO HID 设备调用系统的处理报告函数将FIDO HID格式的蓝牙设备通信指令响应发送给系统以使系统将FIDO HID格式的蓝牙设备通信指令响应返回给应用程序。
[0007]本专利技术的有益效果:本专利技术提供了一种MAC OS系统下访问蓝牙设备的方法及系统,通过注册虚拟FIDOHID设备,实现了10.15及以下版本的苹果的MAC OS系统的webauthen接口类的应用程序,例如浏览器,可以访问FIDO蓝牙设备。
附图说明
[0008]图1、图2、图3和图4为本专利技术实施例二提供的一种MAC OS系统下访问蓝牙设备的方法的流程图。
具体实施方式
[0009]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0010]实施例一本实施例提供了一种MAC OS系统下访问蓝牙设备的方法,包括:代理程序调用系统的轮询接口函数获取系统发送的蓝牙设备列表,判断蓝牙设备列表中是否有符合预定条件的蓝牙设本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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系统下访问蓝牙设备的方法,其特征在于,包括:代理程序调用系统的轮询接口函数获取系统发送的蓝牙设备列表,判断所述蓝牙设备列表中是否有符合预定条件的蓝牙设备;
当所述代理程序判断所述蓝牙设备列表中有符合预定条件的蓝牙设备时,所述代理程序调用系统的连接函数与所述蓝牙设备建立连接,从系统返回的连接结果中获取所述蓝牙设备的蓝牙设备句柄并保存;所述代理程序调用系统的获取匹配服务函数查找特定服务名称的驱动,接收所述系统返回的所述驱动的驱动句柄;所述代理程序以预置参数,所述驱动句柄和创建标识为参数,调用系统的连接标量方法函数使所述系统发送创建指令给...

【专利技术属性】
技术研发人员:陆舟
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1