CN113950034B - 蓝牙行为的模拟方法、装置和设备 - Google Patents
蓝牙行为的模拟方法、装置和设备 Download PDFInfo
- Publication number
- CN113950034B CN113950034B CN202111198931.3A CN202111198931A CN113950034B CN 113950034 B CN113950034 B CN 113950034B CN 202111198931 A CN202111198931 A CN 202111198931A CN 113950034 B CN113950034 B CN 113950034B
- Authority
- CN
- China
- Prior art keywords
- bluetooth
- service module
- module
- event
- attribute information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004088 simulation Methods 0.000 title claims description 14
- 230000006399 behavior Effects 0.000 claims abstract description 60
- 238000004891 communication Methods 0.000 claims abstract description 51
- 230000006978 adaptation Effects 0.000 claims abstract description 22
- 230000001960 triggered effect Effects 0.000 claims abstract description 9
- 230000008859 change Effects 0.000 claims description 22
- 230000008569 process Effects 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 17
- 238000012546 transfer Methods 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 239000011230 binding agent Substances 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本公开提供了一种蓝牙行为的模拟方法、装置和设备,应用于包括事件循环模块和第一蓝牙服务模块的安卓系统,事件循环模块设置在硬件适配层,包括:第一蓝牙服务模块根据蓝牙应用的蓝牙设备信息查询请求,创建Java层蓝牙设备扫描行为,以使硬件适配层蓝牙设备扫描行为触发;在硬件适配层蓝牙设备扫描行为被触发时,事件循环模块创建用于与第二系统的第二蓝牙服务模块连接的通信事件,以触发第二蓝牙服务模块向第二系统的内核层发送蓝牙设备扫描请求,这样能够利用Linux系统在安卓设备上实现蓝牙行为的功能,模拟蓝牙行为。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及蓝牙行为的模拟方法、装置和设备。
背景技术
安卓(Android)系统下的应用(APP)在需要查询蓝牙设备信息的情况下,创建蓝牙服务行为(BluetoothService)。蓝牙服务通过Native框架(Java Native Interface,JNI)访问底层硬件接口来设置和获取蓝牙数据。在Linux系统中,蓝牙服务行为通过蓝牙组件bluez完成。
在Linux系统中,通过在容器中部署Android运行环境可以实现Android应用运行的兼容。但是,未发现相关技术中存在Linux系统下实现对安卓蓝牙设备的模拟功能的相关解决方案。
发明内容
本公开提供了一种蓝牙行为的模拟方法、装置和设备,以解决现有技术中的一个或多个技术问题。
根据本公开的一方面,提供了一种蓝牙行为的模拟方法,应用于包括事件循环模块和第一蓝牙服务模块的安卓系统,事件循环模块设置在硬件适配层,包括:
第一蓝牙服务模块根据蓝牙应用的蓝牙设备信息查询请求,创建Java层蓝牙设备扫描行为,以使硬件适配层蓝牙设备扫描行为触发;在硬件适配层蓝牙设备扫描行为被触发时,事件循环模块创建用于与第二系统的第二蓝牙服务模块连接的通信事件,以触发第二蓝牙服务模块向第二系统的内核层发送蓝牙设备扫描请求。
根据本公开的另一方面,提供了一种蓝牙行为的模拟方法,应用于包括进程通信中转模块、第二蓝牙服务模块和蓝牙控制器驱动的Linux系统,包括:
进程通信中转模块接收第一系统发送的用于与第二蓝牙服务模块连接的通信事件,并将通信事件发送给第二蓝牙服务模块;第二蓝牙服务模块向Linux系统的内核层发送驱动蓝牙控制器进行蓝牙设备扫描请求。
根据本公开的另一方面,提供了一种蓝牙行为的模拟装置,应用于包括事件循环模块和第一蓝牙服务模块的安卓系统,事件循环模块设置在硬件适配层,其中:
第一蓝牙服务模块,用于根据蓝牙应用的蓝牙设备信息查询请求,创建Java层蓝牙设备扫描行为,以使硬件适配层蓝牙设备扫描行为触发;在硬件适配层蓝牙设备扫描行为被触发时,事件循环模块用于创建用于与第二系统的第二蓝牙服务模块连接的通信事件,以触发第二蓝牙服务模块向第二系统的内核层发送蓝牙设备扫描请求。
根据本公开的另一方面,提供了一种蓝牙行为的模拟装置,应用于包括进程通信中转模块、第二蓝牙服务模块和蓝牙控制器的Linux系统,其中:
进程通信中转模块,用于接收第一系统发送的用于与第二蓝牙服务模块连接的通信事件,并将通信事件发送给第二蓝牙服务模块;第二蓝牙服务模块,用于向Linux系统的内核层发送驱动蓝牙控制器进行蓝牙设备扫描请求。
根据本公开的另一方面,提供了一种用于音频驱动的系统兼容的电子设备,包括:处理器和存储程序的存储器。程序包括指令,指令在由处理器执行时使处理器执行根据本公开实施例的蓝牙行为的模拟方法。
根据本公开的另一方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行根据本公开实施例的蓝牙行为的模拟方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现如上的蓝牙行为的模拟方法。
根据本公开的蓝牙行为的模拟方案,通过在安卓系统的蓝牙框架的JNI层构建与Linux系统进行蓝牙服务的通信机制,能够利用Linux系统在安卓设备上实现蓝牙行为的功能,模拟蓝牙行为。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开实施例的实现对安卓蓝牙设备的模拟功能的系统架构示意图;
图2是根据本公开实施例的蓝牙行为的模拟方法流程图;
图3是根据本公开实施例的蓝牙行为的模拟装置结构框图;
图4是根据本公开实施例的蓝牙行为的模拟装置结构框图;
图5是用来实现本公开实施例的蓝牙行为的模拟方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在Linux系统中,通过在容器中部署Android运行环境可以实现Android应用运行的兼容,在技术实现上可以通过LXC、LXD、Docker等实现在容器中支持Android系统环境和应用的运行。
在下述实施例中,安卓操作系统(Android),涵盖Google发行的Android OS以及AOSP和基于AOSP的各种衍生系统,如MIUI、EMUI、One UI、鸿蒙等。
在下述实施例中,Linux系统,全称GNU/Linux操作系统,如Ubuntu、Debian、RedHat等。Linux操作系统并不限定是运行在物理机上的,也可以是托管在其它操作系统上的操作系统,例如Windows系统中的WSL。
本公开实施例提供了一种在Linux系统下实现对安卓蓝牙设备的模拟功能,具体的系统部署架构参阅图1所示。
请参阅图1所示,安卓系统中设置有事件循环模块、第一蓝牙服务模块和蓝牙应用(APP)。其中,事件循环模块设置在硬件适配(JNI),层,用于创建与Linux系统的第二蓝牙服务模块连接的通信事件;第一蓝牙服务模块为安卓系统中设置在Java层的用于提供蓝牙服务的标准组件,例如bluetoothService模块;蓝牙应用用于发起蓝牙设备信息查询请求,以使用蓝牙功能。
在本公开实施例中,蓝牙应用既可以是Android中的蓝牙设置和配置选项功能模块,例如Android的设置菜单中的蓝牙功能项目;也可以是需要使用到蓝牙功能的App,例如QQ音乐可以使用蓝牙耳机功能。
Linux系统中在系统层设置有进程通信中转模块、第二蓝牙服务模块和主机控制器接口(Host Controller Interface,HCI),在内核层设置有蓝牙控制器的驱动程序。其中,进程通信中转模块用于接收安卓系统发送的通信事件,以进行进程间通信(IPC);第二蓝牙服务模块为Linux系统中的用于提供蓝牙服务的标准组件,例如bluez模块;HCI用于从第二蓝牙服务模块接收到指令发送给内核层以驱动蓝牙控制器,同时接收来自蓝牙控制器的数据,发送给第二蓝牙服务模块;蓝牙控制器为Linux系统中执行蓝牙扫描行为的标准器件例如Linux系统的蓝牙子系统中的bluetooth controller。
在本公开实施例中,可以有多种方式支持进程通信中转模块实现进程间通讯,包括但不限于BUS总线(如D-BUS)、Binder、网络套接字Socket、消息队列MQ、FIFOs(命名管道)、共享内存等。
图1的系统通过在安卓系统的安卓容器内外对Linux系统下的第二蓝牙服务模块和安卓系统的第一蓝牙服务模块进行桥接,实现对安卓系统的蓝牙设备行为的模拟功能。
基于图1所示的系统架构,请参阅图2所示,本公开实施例提供一种蓝牙行为的模拟方法,具体流程如下:
步骤S201:安卓系统的第一蓝牙服务模块根据蓝牙应用的蓝牙设备信息查询请求,创建Java层蓝牙设备扫描行为,以使硬件适配层蓝牙设备扫描行为触发。
步骤S202:在硬件适配层蓝牙设备扫描行为被触发时,安卓系统的事件循环模块创建用于与第二系统的第二蓝牙服务模块连接的通信事件,以触发第二蓝牙服务模块向第二系统的内核层发送蓝牙设备扫描请求。
步骤S203:Linux系统通过进程通信中转模块接收安卓系统发送的用于与第二蓝牙服务模块连接的通信事件,并将通信事件发送给第二蓝牙服务模块。
步骤S204:Linux系统的第二蓝牙服务模块向Linux系统的内核层发送驱动蓝牙控制器进行蓝牙设备扫描请求。
由此可知,通过在安卓系统的蓝牙框架的JNI层构建与Linux系统进行蓝牙服务的通信机制,能够利用Linux系统在安卓设备上实现蓝牙行为的功能,模拟蓝牙行为。
本公开实施例中可以通过如下方式创建与第二蓝牙服务模块连接的通信事件,具体的,在安卓系统的JNI层通过构建与Linux系统下的dbus消息机制来构建与Linux系统下的bluez的连接。当JNI层的设备扫描行为Start Discovery Native触发,事件循环模块会构建dbus事件,具体格式如下所示:
msg=dbus_message_new_method_call(BLUEZ_DBUS_BASE_IFC,get_adapter_path(env,object),DBUS_ADAPTER_IFACE,"StartDiscovery");
本公开实施例中,事件循环模块创建与第二蓝牙服务模块连接的通信事件后通过进程通信中转模块转发给第二蓝牙服务模块,触发Linux系统下的蓝牙设备扫描行为StartDiscovery。Linux系统下的bluez通过HCI向蓝牙控制器发送真正的蓝牙设备扫描请求。
在一种可能的实施方式中,蓝牙控制器接收蓝牙设备扫描请求,执行蓝牙设备发现行为,获取发现的蓝牙设备的属性信息,并将属性信息发送给第二蓝牙服务模块;第二蓝牙服务模块发送第一广播消息以通知安卓系统,第一广播消息中包括内核层驱动蓝牙控制器发现的蓝牙设备的属性信息。
由于本公开中安卓系统通过事件循环模块接收Linux系统发送的广播消息。在一种可能的实施方式中,事件循环模块接收第二蓝牙服务模块发送的第一广播消息,事件循环模块将第一广播消息中包括的属性信息发送给第一蓝牙服务模块;第一蓝牙服务模块将属性信息通过广播方式通知蓝牙应用。
在一种可能的实现方式中,在蓝牙控制器发现的蓝牙设备的属性信息发生变更时,蓝牙控制器向第二蓝牙服务模块发送发现的蓝牙设备的属性信息的变化信息;第二蓝牙服务模块向发送第二广播消息以通知安卓系统,第二广播消息中包括蓝牙控制器发现的蓝牙设备的属性信息的变化信息。
由于本公开中安卓系统通过事件循环模块接收Linux系统发送的广播消息。在一种可能的实施方式中,在蓝牙控制器发现的蓝牙设备的属性信息发生变更时,事件循环模块接收第二蓝牙服务模块发送的第二广播消息,事件循环模块将变化信息发送给第一蓝牙服务模块;第一蓝牙服务模块将变化信息通过广播方式通知蓝牙应用。
本公开实施例中,当蓝牙控制器发现蓝牙设备时,Linux系统下的bluez通过内核事件收到发现的蓝牙设备的属性信息,并通过dbus广播消息将发现的蓝牙设备的地址,名称,配对状态等信息对外发送。
进一步的,通过在Android系统的JNI层构建接收linux dbus事件的事件循环模块来接收bluez的dbus广播消息。通过对Linux dbus消息的解析过滤实现对蓝牙设备发现事件的广播消息的接收,以及属性变化事件的接收。为了减小每次蓝牙设备的属性信息频繁变更导致的数据发送性能的损耗,蓝牙设备的属性信息的变更消息通过属性变化事件广播到Android系统的JNI层的事件循环模块。
通过上述过程第一蓝牙服务模块根据能够根据接收到的属性信息和变化信息,与蓝牙控制器进行蓝牙配对,具体过程为:第一蓝牙服务模块根据属性信息和变化信息,构建蓝牙设备的发现列表,发现列表包括至少一个待配对的蓝牙设备;第一蓝牙服务模块将发现列表通过广播方式通知蓝牙应用,以实现蓝牙应用的蓝牙功能。
在蓝牙控制器与蓝牙设备配对成功,实现蓝牙连接后,可选的,第一蓝牙服务模块存储与蓝牙应用已配对的蓝牙设备的设备信息和蓝牙控制器的设备信息,用于与已配对的蓝牙设备进行蓝牙连接。
示例性的,蓝牙设备的属性信息包括蓝牙设备的地址,名称和配对状态中的至少一种。
基于相同的发明构思,请参阅图3,本公开实施例提供一种蓝牙行为的模拟装置,该装置应用于安卓系统,包括事件循环模块301和第一蓝牙服务模块302,事件循环模块301设置在硬件适配层,其中:
第一蓝牙服务模块302,用于根据蓝牙应用的蓝牙设备信息查询请求,创建Java层蓝牙设备扫描行为,以使硬件适配层蓝牙设备扫描行为触发;
在硬件适配层蓝牙设备扫描行为被触发时,事件循环模块301用于创建用于与第二系统的第二蓝牙服务模块连接的通信事件,以触发第二蓝牙服务模块向第二系统的内核层发送蓝牙设备扫描请求。
在一种可能的实现方式中,事件循环模块301还用于:
接收第二蓝牙服务模块发送的第一广播消息,第一广播消息中包括内核层驱动蓝牙控制器发现的蓝牙设备的属性信息;将属性信息发送给第一蓝牙服务模块302;
第一蓝牙服务模块302,还用于将属性信息通过广播方式通知蓝牙应用。
在一种可能的实现方式中,事件循环模块301还用于:
在蓝牙控制器发现的蓝牙设备的属性信息发生变更时,接收第二蓝牙服务模块发送的第二广播消息,第二广播消息中包括蓝牙控制器发现的蓝牙设备的属性信息的变化信息;将变化信息发送给第一蓝牙服务模块302;
第一蓝牙服务模块302,还用于将变化信息通过广播方式通知蓝牙应用。
在一种可能的实现方式中,第一蓝牙服务模块302还用于:
根据属性信息和变化信息,构建蓝牙设备的发现列表,发现列表包括至少一个待配对的蓝牙设备;
将发现列表通过广播方式通知蓝牙应用,以实现蓝牙应用的蓝牙功能。
在一种可能的实现方式中,第一蓝牙服务模块302还用于:
存储与蓝牙应用已配对的蓝牙设备的设备信息和蓝牙控制器的设备信息,用于与已配对的蓝牙设备进行蓝牙连接。
在一种可能的实现方式中,蓝牙设备的属性信息包括蓝牙设备的地址,名称和配对状态中的至少一种。
基于相同的发明构思,请参阅图4所示,本申请实施例提供一种蓝牙行为的模拟装置,该装置应用于Linux系统,包括进程通信中转模块401、第二蓝牙服务模块402和蓝牙控制器403,其中::
进程通信中转模块401,用于接收第一系统发送的用于与第二蓝牙服务模块402连接的通信事件,并将通信事件发送给第二蓝牙服务模块402;
第二蓝牙服务模块402,用于向Linux系统的内核层发送驱动蓝牙控制器进行蓝牙设备扫描请求。
在一种可能的实现方式中,蓝牙控制器403还用于:
接收蓝牙设备扫描请求,执行蓝牙设备发现行为,获取发现的蓝牙设备的属性信息,并将属性信息发送给第二蓝牙服务模块402;
第二蓝牙服务模块402,还用于发送第一广播消息以通知第一系统,第一广播消息中包括内核层驱动蓝牙控制器发现的蓝牙设备的属性信息。
在一种可能的实现方式中,蓝牙控制器403还用于:
在蓝牙控制器发现的蓝牙设备的属性信息发生变更时,向第二蓝牙服务模块402发送发现的蓝牙设备的属性信息的变化信息;
第二蓝牙服务模块402,还用于向发送第二广播消息以通知第一系统,第二广播消息中包括蓝牙控制器发现的蓝牙设备的属性信息的变化信息。
本公开的技术方案中,所涉及的用户个人信息和设备的属性信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的示例电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图5所示,设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如蓝牙行为的模拟方法。例如,在一些实施例中,蓝牙行为的模拟方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM 503并由计算单元501执行时,可以执行上文描述的蓝牙行为的模拟方法的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行蓝牙行为的模拟方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (14)
1.一种蓝牙行为的模拟方法,其特征在于,应用于包括事件循环模块和第一蓝牙服务模块的安卓系统,所述事件循环模块设置在硬件适配层,包括:
所述第一蓝牙服务模块根据蓝牙应用的蓝牙设备信息查询请求,创建Java层蓝牙设备扫描行为,以使硬件适配层蓝牙设备扫描行为触发;
在所述硬件适配层蓝牙设备扫描行为被触发时,所述事件循环模块创建用于与第二系统的第二蓝牙服务模块连接的通信事件,以触发所述第二蓝牙服务模块向第二系统的内核层发送蓝牙设备扫描请求。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述事件循环模块接收所述第二蓝牙服务模块发送的第一广播消息,所述第一广播消息中包括所述内核层驱动蓝牙控制器发现的蓝牙设备的属性信息;
所述事件循环模块将所述属性信息发送给所述第一蓝牙服务模块;
所述第一蓝牙服务模块将所述属性信息通过广播方式通知所述蓝牙应用。
3.根据权利要求2所述的方法,其特征在于,还包括:
在所述蓝牙控制器发现的蓝牙设备的属性信息发生变更时,所述事件循环模块接收所述第二蓝牙服务模块发送的第二广播消息,所述第二广播消息中包括所述蓝牙控制器发现的蓝牙设备的属性信息的变化信息;
所述事件循环模块将所述变化信息发送给所述第一蓝牙服务模块;
所述第一蓝牙服务模块将所述变化信息通过广播方式通知所述蓝牙应用。
4.根据权利要求3所述的方法,其特征在于,还包括:
所述第一蓝牙服务模块根据所述属性信息和所述变化信息,构建蓝牙设备的发现列表,所述发现列表包括至少一个待配对的蓝牙设备;
所述第一蓝牙服务模块将所述发现列表通过广播方式通知所述蓝牙应用,以实现所述蓝牙应用的蓝牙功能。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述第一蓝牙服务模块存储与所述蓝牙应用已配对的蓝牙设备的设备信息和所述蓝牙控制器的设备信息,用于与所述已配对的蓝牙设备进行蓝牙连接。
6.根据权利要求2~5任一项所述的方法,其特征在于,蓝牙设备的属性信息包括蓝牙设备的地址,名称和配对状态中的至少一种。
7.一种蓝牙行为的模拟方法,其特征在于,应用于包括进程通信中转模块、第二蓝牙服务模块和蓝牙控制器驱动的Linux系统,包括:
所述进程通信中转模块接收第一系统发送的用于与所述第二蓝牙服务模块连接的通信事件,并将所述通信事件发送给所述第二蓝牙服务模块;
所述第二蓝牙服务模块向Linux系统的内核层发送驱动所述蓝牙控制器进行蓝牙设备扫描请求。
8.根据权利要求7所述的方法,其特征在于,还包括:
所述蓝牙控制器接收所述蓝牙设备扫描请求,执行蓝牙设备发现行为,获取发现的蓝牙设备的属性信息,并将所述属性信息发送给所述第二蓝牙服务模块;
所述第二蓝牙服务模块发送第一广播消息以通知所述第一系统,所述第一广播消息中包括所述内核层驱动所述蓝牙控制器发现的蓝牙设备的属性信息。
9.根据权利要求8所述的方法,其特征在于,还包括:
在所述蓝牙控制器发现的蓝牙设备的属性信息发生变更时,所述蓝牙控制器向所述第二蓝牙服务模块发送发现的蓝牙设备的属性信息的变化信息;
所述第二蓝牙服务模块向发送第二广播消息以通知所述第一系统,所述第二广播消息中包括所述蓝牙控制器发现的蓝牙设备的属性信息的变化信息。
10.一种蓝牙行为的模拟装置,其特征在于,应用于包括事件循环模块和第一蓝牙服务模块的安卓系统,所述事件循环模块设置在硬件适配层,包括:
所述第一蓝牙服务模块,用于根据蓝牙应用的蓝牙设备信息查询请求,创建Java层蓝牙设备扫描行为,以使硬件适配层蓝牙设备扫描行为触发;
在所述硬件适配层蓝牙设备扫描行为被触发时,所述事件循环模块用于创建用于与第二系统的第二蓝牙服务模块连接的通信事件,以触发所述第二蓝牙服务模块向第二系统的内核层发送蓝牙设备扫描请求。
11.一种蓝牙行为的模拟装置,其特征在于,应用于包括进程通信中转模块、第二蓝牙服务模块和蓝牙控制器驱动的Linux系统,包括:
所述进程通信中转模块,用于接收第一系统发送的用于与所述第二蓝牙服务模块连接的通信事件,并将所述通信事件发送给所述第二蓝牙服务模块;
所述第二蓝牙服务模块,用于向Linux系统的内核层发送驱动所述蓝牙控制器进行蓝牙设备扫描请求。
12.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1~9中任一项所述的方法。
13.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1~9中任一项所述的方法。
14.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1~9中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198931.3A CN113950034B (zh) | 2021-10-14 | 2021-10-14 | 蓝牙行为的模拟方法、装置和设备 |
PCT/CN2022/105295 WO2023060956A1 (zh) | 2021-10-14 | 2022-07-12 | 蓝牙行为的模拟方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111198931.3A CN113950034B (zh) | 2021-10-14 | 2021-10-14 | 蓝牙行为的模拟方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113950034A CN113950034A (zh) | 2022-01-18 |
CN113950034B true CN113950034B (zh) | 2024-04-26 |
Family
ID=79329868
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111198931.3A Active CN113950034B (zh) | 2021-10-14 | 2021-10-14 | 蓝牙行为的模拟方法、装置和设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113950034B (zh) |
WO (1) | WO2023060956A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113950034B (zh) * | 2021-10-14 | 2024-04-26 | 北京字节跳动网络技术有限公司 | 蓝牙行为的模拟方法、装置和设备 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN203352799U (zh) * | 2013-06-06 | 2013-12-18 | 肇庆市云能数码科技有限公司 | 网络移动计算终端及系统 |
CN104967971A (zh) * | 2015-06-26 | 2015-10-07 | 飞天诚信科技股份有限公司 | 一种实现Android系统下蓝牙自动回连的方法 |
CN106095413A (zh) * | 2016-05-31 | 2016-11-09 | 青岛海信电器股份有限公司 | 一种蓝牙驱动程序的配置方法及装置 |
CN107395297A (zh) * | 2017-07-07 | 2017-11-24 | 广州视源电子科技股份有限公司 | 一种WiFi热点的信道选择方法、系统及存储介质 |
CN108124475A (zh) * | 2017-12-29 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 虚拟系统蓝牙通信方法及装置、虚拟系统、存储介质及电子设备 |
CN108319480A (zh) * | 2018-02-01 | 2018-07-24 | 微鲸科技有限公司 | 蓝牙服务启动方法、装置及电子设备 |
CN110188848A (zh) * | 2019-05-29 | 2019-08-30 | 江苏智联天地科技有限公司 | 一种基于Android设备的激光扫码数据Bluetooth HID系统及方法 |
WO2020132878A1 (zh) * | 2018-12-25 | 2020-07-02 | 华为技术有限公司 | 一种蓝牙服务的查询方法及电子设备 |
CN111557097A (zh) * | 2018-05-29 | 2020-08-18 | 华为技术有限公司 | 一种虚拟遥控器中电源键的控制方法及终端 |
CN112203132A (zh) * | 2020-11-13 | 2021-01-08 | 四川长虹电器股份有限公司 | 一种安卓智能电视开机快速回连蓝牙遥控器的方法 |
WO2021027772A1 (zh) * | 2019-08-15 | 2021-02-18 | 华为技术有限公司 | 一种应用切换运行的方法及设备 |
CN112559199A (zh) * | 2019-09-24 | 2021-03-26 | 中兴通讯股份有限公司 | 在glibc环境下控制安卓蓝牙的装置、方法及终端设备 |
CN112789597A (zh) * | 2018-10-16 | 2021-05-11 | 三星电子株式会社 | 用于执行多个操作系统的电子设备及其控制方法 |
CN112836203A (zh) * | 2021-02-03 | 2021-05-25 | 中标软件有限公司 | 一种基于内核定制实现安卓系统设备管控的方法 |
CN113099429A (zh) * | 2021-03-06 | 2021-07-09 | 深圳市智之祺科技有限公司 | 基于Android平台的蓝牙主从模式切换系统和方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016088964A1 (ko) * | 2014-12-02 | 2016-06-09 | 엘지전자(주) | 무선 통신 시스템에서 블루투스 통신을 이용하여 객체 전송 서비스를 수행하기 위한 방법 및 장치 |
CN105846859B (zh) * | 2015-01-12 | 2019-05-24 | 芋头科技(杭州)有限公司 | 一种嵌入式操作系统实现蓝牙从设备功能的系统及方法 |
US9838507B2 (en) * | 2015-06-22 | 2017-12-05 | Dell Products L.P. | System and method for providing redirection of Bluetooth devices |
US11039486B2 (en) * | 2017-02-02 | 2021-06-15 | Hypori Llc | System, method and computer program product for secure bluetooth cryptography in a virtual mobile device platform |
CN110998525A (zh) * | 2017-08-08 | 2020-04-10 | 华为技术有限公司 | 一种广播事件处理方法及设备 |
CN107509161A (zh) * | 2017-08-25 | 2017-12-22 | 精赟智能科技(上海)有限公司 | 智能蓝牙控制系统及方法 |
TWI653848B (zh) * | 2018-05-04 | 2019-03-11 | 立創智能股份有限公司 | 遠距藍牙連線系統 |
CN110933614B (zh) * | 2019-10-12 | 2022-05-31 | 阿里巴巴集团控股有限公司 | 通信处理方法、装置及电子设备 |
CN113950034B (zh) * | 2021-10-14 | 2024-04-26 | 北京字节跳动网络技术有限公司 | 蓝牙行为的模拟方法、装置和设备 |
-
2021
- 2021-10-14 CN CN202111198931.3A patent/CN113950034B/zh active Active
-
2022
- 2022-07-12 WO PCT/CN2022/105295 patent/WO2023060956A1/zh unknown
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN203352799U (zh) * | 2013-06-06 | 2013-12-18 | 肇庆市云能数码科技有限公司 | 网络移动计算终端及系统 |
CN104967971A (zh) * | 2015-06-26 | 2015-10-07 | 飞天诚信科技股份有限公司 | 一种实现Android系统下蓝牙自动回连的方法 |
CN106095413A (zh) * | 2016-05-31 | 2016-11-09 | 青岛海信电器股份有限公司 | 一种蓝牙驱动程序的配置方法及装置 |
CN107395297A (zh) * | 2017-07-07 | 2017-11-24 | 广州视源电子科技股份有限公司 | 一种WiFi热点的信道选择方法、系统及存储介质 |
CN108124475A (zh) * | 2017-12-29 | 2018-06-05 | 深圳前海达闼云端智能科技有限公司 | 虚拟系统蓝牙通信方法及装置、虚拟系统、存储介质及电子设备 |
CN108319480A (zh) * | 2018-02-01 | 2018-07-24 | 微鲸科技有限公司 | 蓝牙服务启动方法、装置及电子设备 |
CN111557097A (zh) * | 2018-05-29 | 2020-08-18 | 华为技术有限公司 | 一种虚拟遥控器中电源键的控制方法及终端 |
CN112789597A (zh) * | 2018-10-16 | 2021-05-11 | 三星电子株式会社 | 用于执行多个操作系统的电子设备及其控制方法 |
WO2020132878A1 (zh) * | 2018-12-25 | 2020-07-02 | 华为技术有限公司 | 一种蓝牙服务的查询方法及电子设备 |
CN110188848A (zh) * | 2019-05-29 | 2019-08-30 | 江苏智联天地科技有限公司 | 一种基于Android设备的激光扫码数据Bluetooth HID系统及方法 |
WO2021027772A1 (zh) * | 2019-08-15 | 2021-02-18 | 华为技术有限公司 | 一种应用切换运行的方法及设备 |
CN112559199A (zh) * | 2019-09-24 | 2021-03-26 | 中兴通讯股份有限公司 | 在glibc环境下控制安卓蓝牙的装置、方法及终端设备 |
CN112203132A (zh) * | 2020-11-13 | 2021-01-08 | 四川长虹电器股份有限公司 | 一种安卓智能电视开机快速回连蓝牙遥控器的方法 |
CN112836203A (zh) * | 2021-02-03 | 2021-05-25 | 中标软件有限公司 | 一种基于内核定制实现安卓系统设备管控的方法 |
CN113099429A (zh) * | 2021-03-06 | 2021-07-09 | 深圳市智之祺科技有限公司 | 基于Android平台的蓝牙主从模式切换系统和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113950034A (zh) | 2022-01-18 |
WO2023060956A1 (zh) | 2023-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113626224B (zh) | 一种nfc数据的交互方法、装置、电子设备及存储介质 | |
WO2023109138A1 (zh) | Linux系统中启动安卓应用的方法、装置和电子设备 | |
US20150301873A1 (en) | Method and system for expanding webapp application function | |
CN113590363B (zh) | 数据发送方法、装置、电子设备及存储介质 | |
CN112947965B (zh) | 容器化的服务更新方法和装置 | |
KR20220151585A (ko) | 업무 데이터 처리 방법, 장치, 전자 기기, 저장 매체 및 컴퓨터 프로그램 | |
CN113950034B (zh) | 蓝牙行为的模拟方法、装置和设备 | |
CN114035863A (zh) | 在Linux系统中操作安卓应用的方法、装置和设备 | |
CN113377665A (zh) | 基于容器技术的测试方法、装置、电子设备及存储介质 | |
CN114025037B (zh) | 一种云手机的检修方法、装置、电子设备和存储介质 | |
CN113572833B (zh) | 一种云手机的维护方法、装置、电子设备和存储介质 | |
CN114398023A (zh) | 生成文件的方法、配置页面的方法和装置 | |
JP2023519774A (ja) | 自動化テスト方法、装置、電子デバイス、記憶媒体、及びプログラム | |
CN116467100A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114020364B (zh) | 传感器设备适配的方法、装置、电子设备和存储介质 | |
US20220311662A1 (en) | Network configuring method for cloud mobile phone, device and storage medium | |
CN113326192B (zh) | 用于移动端的应用测试方法、装置、设备及存储介质 | |
CN113840271B (zh) | 一种nfc数据的传输方法、装置、电子设备及存储介质 | |
KR101981885B1 (ko) | 애플리케이션 가속화 방법 및 디바이스 | |
CN112540804A (zh) | 小程序运行方法及装置、电子设备、介质 | |
CN113852718A (zh) | 语音通道建立方法、装置、电子设备及存储介质 | |
CN112925623A (zh) | 任务处理方法、装置、电子设备和介质 | |
CN113805858B (zh) | 持续部署脚本语言开发的软件的方法和装置 | |
CN113361235B (zh) | Html文件的生成方法、装置、电子设备及可读存储介质 | |
CN110336857B (zh) | 网络块设备的创建方法、装置、设备和存储介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220331 Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing. Applicant after: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd. Address before: 2005, floor 2, No. 39, West Street, Haidian District, Beijing 100080 Applicant before: Beijing jingling Information System Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |