CN114116140B - 获取数据的方法和电子设备 - Google Patents
获取数据的方法和电子设备 Download PDFInfo
- Publication number
- CN114116140B CN114116140B CN202210097901.1A CN202210097901A CN114116140B CN 114116140 B CN114116140 B CN 114116140B CN 202210097901 A CN202210097901 A CN 202210097901A CN 114116140 B CN114116140 B CN 114116140B
- Authority
- CN
- China
- Prior art keywords
- hardware
- electronic device
- virtual
- mobile phone
- virtual machine
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例提供了一种获取数据的方法和电子设备,该方法由第一电子设备执行,第一电子设备上当前运行有虚拟机,第一应用当前在虚拟机上运行,该方法包括:接收来自第二电子设备的第一数据,第一电子设备与第二电子设备之间存在通信连接,第一数据为第一应用在运行过程中所需的数据;向第一应用发送第一数据。该方法可以实现安卓虚拟机内应用软件的相应功能,从而便于实现安卓应用软件的多种功能,提高用户的使用体验。
Description
技术领域
本申请涉及电子技术领域,具体涉及一种获取数据的方法和电子设备。
背景技术
虚拟机(virtual machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,也即是说,通过在宿主操作系统(operatingsystem,OS)内提供一个虚拟OS运行环境,从而实现在宿主OS内运行其他OS的应用软件。例如,宿主OS为个人计算机(personal computer,PC)的Windows OS,则可以在Windows OS内安装手机的安卓虚拟机,从而在PC上直接运行安卓应用软件,使用户有种在PC上使用手机的体验。
但是,有些安卓应用软件在安卓虚拟机上运行时,需要一些硬件支持,而PC中的硬件并不便于给予支持,导致安卓应用软件在虚拟机内无法实现相应功能。例如一个安卓应用软件具有扫码功能,在扫码时需要调用摄像头,若在安卓虚拟机上运行该应用软件,在需要使用扫码功能时并不便于使用PC的摄像头进行扫码。
发明内容
本申请提供了一种获取数据的方法和电子设备,可以实现安卓虚拟机内应用软件的相应功能,从而便于实现安卓应用软件的多种功能,提高用户的使用体验。
第一方面,本申请提供一种获取数据的方法,该方法由第一电子设备执行,第一电子设备上当前运行有虚拟机,第一应用当前在虚拟机上运行,该方法包括:接收来自第二电子设备的第一数据,第一电子设备与第二电子设备之间存在通信连接,第一数据为第一应用在运行过程中所需的数据;向第一应用发送第一数据。
其中,第一电子设备可以为PC,第二电子设备可以为手机。PC上当前运行有安卓虚拟机,第一应用在安卓虚拟机上运行时需要第一数据,比如支付应用在运行时需要摄像头的数据,那么,手机可以通过手机摄像头采集二维码的图像数据,并发送至PC,进而由PC发送至支付应用。由此,可以实现安卓虚拟机内应用软件的相应功能,从而便于实现安卓应用软件的多种功能,提高用户的使用体验。
结合第一方面,在第一方面的有些实现方式中,第一电子设备部署有第一虚拟硬件,上述接收来自第二电子设备的第一数据,包括:第一虚拟硬件接收来自第二电子设备的第一数据。
结合第一方面,在第一方面的有些实现方式中,上述虚拟机部署有第二虚拟硬件,第二虚拟硬件与第一虚拟硬件具有关联关系,上述向第一应用发送第一数据,包括:第一虚拟硬件向第二虚拟硬件发送第一数据;第二虚拟硬件向第一应用发送第一数据。
其中,第二虚拟硬件可以为虚拟机内的虚拟硬件,例如虚拟摄像头,第一虚拟硬件可以为PC内注册或者部署的与手机硬件对应的虚拟硬件,例如注册的虚拟摄像头,用于接收手机发送的上述第一数据,进而将第一数据经由第二虚拟硬件发送至第一应用,进而使第一应用实现相应功能。
结合第一方面,在第一方面的有些实现方式中,在接收来自第二电子设备的第一数据之前,上述方法还包括:接收来自第二电子设备的第一硬件的属性信息,第一硬件为支持第一应用运行的硬件;根据第一硬件的属性信息部署第一虚拟硬件。
其中,PC内注册的上述第一虚拟硬件可以为根据手机发送的硬件的属性信息所注册的,这样可使第一虚拟硬件的属性信息与手机硬件的属性信息相同。例如使得PC所注册的虚拟摄像头的属性信息与手机摄像头的属性信息相同,便于兼容后续手机摄像头发送的图像数据格式。
结合第一方面,在第一方面的有些实现方式中,在部署第一虚拟硬件之后,上述方法还包括:向第二电子设备发送启动第一硬件的指示消息,第一数据为第二电子设备通过第一硬件获取的数据。
其中,PC可以在部署第一虚拟硬件之后,立即可以向手机发送启动第一硬件的指示消息,也可以在接收到用户输入的指示操作后向手机发送启动第一硬件的指示消息,以指示手机启动第一硬件,并在需要获取第一数据时进行获取。由此,可为后续获取第一数据提供硬件支持。
结合第一方面,在第一方面的有些实现方式中,在接收到第一数据之后,上述方法还包括:将第一数据的数据格式转换为第一电子设备支持的数据格式;相应的,向第一应用发送第一数据,包括:向第一应用发送数据格式转换后的第一数据。
其中,PC接收到第一数据后,可以对第一数据进行转换,例如可以对摄像头采集的图像数据进行分辨率和/或码率的转换等,以使其可以适配于PC所支持的数据格式。
第二方面,本申请提供一种获取数据的方法,该方法由第二电子设备执行,包括:获取第一数据;向第一电子设备发送第一数据,第一电子设备与第二电子设备之间存在通信连接,第一数据为第一应用在第一电子设备中的虚拟机上运行过程中所需的数据。
结合第二方面,在第二方面的有些实现方式中,上述第二电子设备包括第一硬件,第一硬件为支持第一应用运行的硬件,上述方法还包括:接收来自第一电子设备的启动第一硬件的指示消息;启动第一硬件;相应的,获取第一数据,包括:第一硬件获取第一数据。
结合第二方面,在第二方面的有些实现方式中,在第一硬件获取第一数据之前,上述方法还包括:获取第一硬件的属性信息;向第一电子设备发送第一硬件的属性信息。
其中,第一电子设备可以为PC,第二电子设备可以为手机。PC上当前运行有安卓虚拟机,第一应用在安卓虚拟机上运行时需要第一数据,比如支付应用在运行时需要摄像头的数据,那么,手机可以通过手机摄像头(即第一硬件)采集二维码的图像数据,并发送至PC,进而由PC发送至支付应用。由此,可以实现安卓虚拟机内应用软件的相应功能,从而便于实现安卓应用软件的多种功能,提高用户的使用体验。
第三方面,本申请提供一种获取数据的系统,包括第一电子设备和第二电子设备;第一电子设备执行上述第一方面及上述第一方面的可能实现方式中的方法,第二电子设备执行上述第二方面及上述第二方面的可能实现方式中的方法。
第四方面,本申请提供一种装置,该装置包含在电子设备中,该装置具有实现上述第一方面及上述第一方面的可能实现方式中电子设备行为的功能,或者具有实现上述第二方面及上述第二方面的可能实现方式中电子设备行为的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,接收模块或单元、处理模块或单元等。
第五方面,本申请提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第一方面的技术方案中任意一种方法。
第六方面,本申请提供一种电子设备,电子设备包括:处理器、存储器和接口;处理器、存储器和接口相互配合,使得电子设备执行第二方面的技术方案中任意一种方法。
第七方面,本申请提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法,或者执行第二方面及其任意可能的实现方式中的方法。
可选地,芯片还包括存储器,存储器与处理器通过电路或电线连接。
进一步可选地,芯片还包括通信接口。
第八方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得该处理器执行第一方面的技术方案中任意一种方法,或者执行第二方面的技术方案中任意一种方法。
第九方面,本申请提供一种计算机程序产品,计算机程序产品包括:计算机程序代码,当计算机程序代码在电子设备上运行时,使得该电子设备执行第一方面的技术方案中任意一种方法,或者执行第二方面的技术方案中任意一种方法。
附图说明
图1是本申请实施例提供的一例运行安卓虚拟机的显示界面的示意图;
图2是本申请实施例提供的一例电子设备的结构示意图;
图3是本申请实施例提供的另一例电子设备的结构示意图;
图4是本申请实施例提供的一例PC和手机的软件结构框图;
图5是本申请实施例提供的一例手机与PC建立协同关系的流程示意图;
图6是本申请实施例提供的另一例运行安卓虚拟机的显示界面的示意图;
图7是本申请实施例提供的一例安卓虚拟机绑定虚拟摄像头与手机启动手机摄像头的流程示意图;
图8是本申请实施例提供的一例安卓虚拟机内应用软件调用手机摄像头的流程示意图;
图9是本申请实施例提供的一例安卓虚拟机内应用软件显示二维码图像数据的界面示意图;
图10是本申请实施例提供的一例获取数据的方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个该特征。
当前,为方便用户同时使用多种电子设备的功能,虚拟机技术应运而生。例如,可以在PC的Windows OS中安装手机的安卓虚拟机,从而在PC上直接运行安卓应用软件,使用户有种在PC上使用手机的体验,对于在PC上安装安卓虚拟机的技术在此不做详细介绍,可使用现有的相关技术实现。示例性地,在PC上安装安卓虚拟机后,运行安卓虚拟机的显示界面可参见图1;在图1所示的界面上,用户可通过PC的鼠标点击运行安卓虚拟机内的应用软件,并在应用软件打开后执行该软件内的功能。比如,图1中打开了安卓虚拟机内的支付软件(如支付宝®),则用户可以使用支付宝®进行付款等操作。
但是,对于安卓应用软件,有一些功能需要依赖硬件实现,比如支付宝®的扫码功能需要依赖摄像头实现。正常情况下,当用户在手机上打开支付宝®进行扫码时,可任意角度的转动手机以使手机的摄像头对准二维码,进而进行扫码操作;而当在PC上运行安卓虚拟机时,若在安卓虚拟机内运行支付宝®并进行扫码,则需要调用PC的摄像头,可想而知,使用PC的摄像头来对准二维码进行扫码,这一操作并不便于实现。
有鉴于此,本申请实施例提供一种获取数据的方法,可以使PC与手机建立协同关系,当在PC中运行安卓虚拟机时,若需要调用硬件资源,则可以通过PC与手机的协同关系调用手机的硬件,以实现安卓虚拟机内应用软件的相应功能,从而便于实现安卓应用软件的多种功能,提高用户的使用体验。需要说明的是,本申请实施例提供的获取数据的方法可以应用于手机与平板电脑之间、手机与PC之间、平板电脑与PC之间等等,只要一个电子设备的操作系统内可安装虚拟机,另一个电子设备可提供对应的硬件资源即可,本申请实施例对电子设备的具体类型不作任何限制。
为便于说明,以下实施例以PC内安装安卓虚拟机,手机提供硬件资源为例进行说明。示例性的,图2是本申请实施例提供的一例电子设备100的结构示意图,该电子设备100可以为手机,电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
调制解调处理器Modem可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
磁传感器180D包括霍尔传感器。电子设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当电子设备100是翻盖机时,电子设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备100的接触和分离。电子设备100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备100中,不能和电子设备100分离。
示例性的,图3是本申请实施例提供的另一例电子设备100的结构示意图。该电子设备100可以为PC,电子设备100可以包括处理器210、存储器220和通信模块230等。
其中,处理器210可以包括一个或多个处理单元,存储器220用于存储程序代码和数据。在本申请实施例中,处理器210可执行存储器220存储的计算机执行指令,用于对电子设备100的动作进行控制管理。
通信模块230可以用于电子设备100的各个内部模块之间的通信、或者电子设备100和其他外部电子设备之间的通信等。示例性的,如果电子设备100通过有线连接的方式和其他电子设备通信,通信模块230可以包括接口等,例如USB接口,USB接口可以是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口可以用于连接充电器为电子设备100充电,也可以用于电子设备100与外围设备之间传输数据,也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如增强现实(augmented reality,AR)设备等。
或者,通信模块230可以包括音频器件、射频电路、蓝牙芯片、Wi-Fi芯片、NFC模块等,可以通过多种不同的方式实现电子设备100与其他电子设备之间的交互。
可选地,电子设备100还可以包括显示屏240,显示屏240可以显示人机交互界面中的图像或视频等。
可选地,电子设备100还可以包括外设设备250,例如鼠标、键盘、扬声器、麦克风等。
应理解,除了图2或图3中列举的各种部件或者模块之外,本申请实施例对电子设备100的结构不做具体限定。在本申请另一些实施例中,电子设备100还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
在图2和图3所示电子设备的基础上,若图3的PC中已安装了安卓虚拟机,为实现本申请实施例提供的获取数据的方法,如图4所示,PC和手机中至少应包括以下软件架构:
以PC的操作系统为Windows OS,手机的操作系统为Android OS为例,PC中安装有安卓虚拟机(Android sub-system,WSA),该安卓虚拟机内可以包括应用软件(如第三方安卓应用(3rd Android APP)、系统应用等)、虚拟机硬件(WSA hardware)以及文件管理器(filed manager)等,其中,虚拟机硬件可以包括虚拟摄像头、虚拟麦克风、虚拟Modem、虚拟陀螺仪传感器、虚拟霍尔传感器以及虚拟NFC等,图中以虚拟摄像头(WSA camera)为例示出。
除此之外,PC中还可以包括PC硬件(以PC摄像头(PC camera)为例)、协同助手(service APP)、连接协议(direct link service)模块以及虚拟硬件服务(virtualhardware service)。手机中可以包括手机硬件(以手机摄像头(phone camera)为例)、设备虚拟化框架(device virtual framework,DV framework)、协同助手以及连接协议模块。在PC的协同助手和手机的协同助手中,提供了一个新的设备虚拟化开发包(DV SDK),以向PC和手机建立协同关系提供相应服务。
其中,协同助手用于为PC和手机建立协同关系,并在建立协同关系后负责手机和PC之间的协同数据通信,比如将手机的硬件资源数据传输至PC,连接协议模块为PC和手机建立协同关系时提供通信协议。手机中的设备虚拟化框架与硬件对接,用于获取硬件资源的数据,并向外部其他设备(如PC)发送。在本实施例中,手机中的设备虚拟化框架可以获取手机摄像头拍摄的图像数据,并通过协同助手和连接协议模块发送至PC,进而使PC将该图像数据通过安卓虚拟机内的虚拟摄像头传送至安卓虚拟机内的应用软件,以实现安卓虚拟机内应用软件的相应功能。
需要注意的是,在PC和手机建立协同关系时,PC还可以通过虚拟硬件服务创建一个PC内的虚拟摄像头(PC V-camera),使安卓虚拟机内的虚拟摄像头与该PC内的虚拟摄像头绑定,PC内的虚拟摄像头拍摄的图像数据来源于手机摄像头拍摄的图像数据,那么手机摄像头拍摄的图像数据便可传送至安卓虚拟机内的虚拟摄像头,进而传送至安卓虚拟机内的应用软件。
为了便于理解,本申请以下实施例将以具有图2-图4所示结构的电子设备为例,结合附图和应用场景,对本申请实施例提供的获取数据的方法进行具体阐述。
由上述描述可知,手机向PC发送硬件资源数据之前,需先和PC建立协同关系,下面先介绍手机与PC建立协同关系的过程。图5是本申请实施例提供的一例手机与PC建立协同关系的流程示意图,具体可以包括:
S1,手机与PC建立通信连接。
首先,用户在使用PC内的安卓虚拟机时,若想要借用手机的硬件资源,则需要先将手机与PC建立通信连接,本申请实施例中对于手机与PC建立通信连接的方式不做限制,比如碰一碰连接、短距通信连接、扫码连接等。可选地,手机与PC建立通信连接的过程可通过连接协议模块实现。
在一种可实现的方式中,用户可以打开手机的NFC功能,然后将手机的NFC区域轻触PC上的分享感应区或标签,此时手机可以与PC建立NFC连接,并在NFC连接的通道上协商建立数据传输通道。
在另一种可实现的方式中,用户可以打开手机和PC中的WLAN开关以及蓝牙开关,并利用手机的设备搜索功能搜索到PC,与PC建立蓝牙连接。然后在蓝牙连接的通道上协商建立Wi-Fi P2P(peer to peer)数据传输通道。
在又一种可实现的方式中,PC内安装的电脑管家应用可以具有对应的二维码,用户可以使用手机扫描该二维码,以与PC建立通信连接以及数据传输通道。
S2,建立通信连接之后,手机的协同助手获取手机摄像头的属性信息。
其中,手机摄像头的属性信息包括但不限于摄像头的分辨率、视频帧率、支持的拍摄模式以及视频编码格式等。在手机与PC建立通信连接之后,手机的协同助手可以获取手机摄像头的属性信息,具体地,手机摄像头的属性信息可以存储于系统文件(例如xml格式的系统文件)中,协同助手可以从该系统文件中获取摄像头的属性信息。
S3,手机的协同助手将建立协同关系的指示消息发送至连接协议模块,该指示消息携带上述手机摄像头的属性信息。
S4,手机的连接协议模块将建立协同关系的指示消息发送至PC的连接协议模块。
S5,PC的连接协议模块将建立协同关系的指示消息发送至协同助手。
在S3-S5的步骤中,手机的协同助手将建立协同关系的指示消息途径手机的连接协议模块、PC的连接协议模块发送至PC的协同助手,此指示消息携带上述获取的手机摄像头的属性信息,以使PC依据该属性信息注册虚拟摄像头。可选地,上述指示消息可以为进程间通信(inter-process communication,IPC)消息,也可以为其他类型的通信消息。连接协议模块可以为手机和PC之间的通信提供协议,例如socket协议或其他协议等。
S6,PC的协同助手启动虚拟硬件服务。
S7,PC的协同助手根据指示消息中携带的手机摄像头的属性信息,通过虚拟硬件服务在PC摄像头驱动上注册虚拟摄像头。
其中,PC中的虚拟硬件服务可以用于在PC上注册所需要的虚拟硬件,比如此实施例中需要注册虚拟摄像头。那么,PC的协同助手可以先启动虚拟硬件服务,比如可以向虚拟硬件服务发送一个运行启动的指示消息。然后,PC的协同助手可以根据接收到的手机摄像头的属性信息,通过该虚拟硬件服务在PC摄像头驱动(上述图3中未示出)上注册一个虚拟摄像头(也可称为部署一个虚拟摄像头),也即是使得所注册的虚拟摄像头的属性信息与手机摄像头的属性信息相同;此时,PC具有两个摄像头,即PC摄像头(PC camera)和PC内的虚拟摄像头(PC V-camera),PC内的虚拟摄像头用于后续将手机摄像头拍摄的图像数据传送至安卓虚拟机内。可以理解,PC所注册的虚拟摄像头的信息可以在PC的设备管理器中进行查看。
以上步骤完成了手机与PC建立协同关系的过程。接下来,若用户在安卓虚拟机内打开了应用软件,例如打开了第三方安卓应用,该第三方安卓应用具有扫码功能,比如上述图1中的支付宝®软件。在第三方安卓应用的扫码界面的顶部控制栏上,可以具有选项控件,如图6所示,该选项控件包括“使用虚拟摄像头”选项控件,当用户点击该“使用虚拟摄像头”选项控件,如图7所示,PC和手机可以执行下述步骤:
S8,PC的协同助手向安卓虚拟机发送切换摄像头的消息,指示安卓虚拟机绑定上述PC所注册的虚拟摄像头。
S9,安卓虚拟机将切换摄像头的消息发送至安卓虚拟机内的虚拟摄像头。
S10,安卓虚拟机内的虚拟摄像头与PC内的虚拟摄像头进行绑定。
正常情况下,安卓虚拟机内的虚拟摄像头是与PC摄像头(PC camera)绑定的,安卓虚拟机内的虚拟摄像头拍摄的图像数据也即是PC摄像头拍摄的图像数据,比如用户使用安卓虚拟机内的视频软件与其他用户视频时,安卓虚拟机显示的画面即PC摄像头所拍摄的用户画面。但是,如果用户进行上述的扫码操作,若要使PC摄像头去对准并扫描二维码,这明显不便实现。因此,本申请实施例中,若用户点击了“使用虚拟摄像头”选项控件,则PC可以向安卓虚拟机发送切换摄像头的消息,使安卓虚拟机内的虚拟摄像头断开与PC摄像头的绑定关系,切换为与PC内的虚拟摄像头绑定。由于PC内的虚拟摄像头用于后续将手机摄像头拍摄的图像数据传送至安卓虚拟机,那么安卓虚拟机便可以获取到手机摄像头拍摄的图像数据,即获取到手机摄像头扫描的二维码数据并进行展示。可以理解,在安卓虚拟机内打开应用软件时,若应用软件的某个界面需要使用摄像头,都可以在该界面上设置上述“使用虚拟摄像头”选项控件,而在不需要使用摄像头的界面上不设置该选项控件。
与此同时,PC还需要将用户已点击“使用虚拟摄像头”选项控件的消息发送至手机,以使手机启动手机摄像头采集图像数据流(即二维码数据)。
S11,PC的协同助手将启动摄像头的指示消息发送至连接协议模块。
S12,PC的连接协议模块将启动摄像头的指示消息发送至手机的连接协议模块。
S13,手机的连接协议模块将启动摄像头的指示消息发送至协同助手。
S14,手机的协同助手启动手机摄像头。
其中,S8-S10的步骤与S11-S14的步骤可以同时进行,也可以先后执行,本申请实施例对此不做限制。
由此,经过S8-S14的步骤,PC端的安卓虚拟机内的虚拟摄像头与PC内的虚拟摄像头完成绑定,手机端也启动了手机摄像头,那么,用户便可以使用手机摄像头进行扫码。需要说明的是,当用户点击了“使用虚拟摄像头”选项控件后,用户需要手持手机,使手机摄像头对准要扫描的二维码。可以理解,手机的协同助手可以在后台启动手机摄像头,手机的前台界面可以显示用户正在使用的其他应用界面,比如手机的前台界面显示的是新闻网页;或者,手机的协同助手也可以在前台启动手机摄像头,手机的前台界面即摄像头的拍摄界面;亦或者,手机的协同助手启动手机摄像头后,在前台界面显示PC内安卓虚拟机的镜像界面,但此时需要PC将安卓虚拟机的镜像界面数据传送至手机。
再接着,手机摄像头所采集的图像数据流便可以经由PC内的虚拟摄像头传送至安卓虚拟机,此过程可参见图8,具体可以包括:
S15,手机摄像头采集图像数据流。
其中,图像数据流即手机摄像头采集的多帧图像形成的数据流,也可简称为图像数据。不管手机摄像头是在前台启动还是后台启动,只要将手机对准要扫描的二维码,便可采集到二维码对应的图像数据流。
S16,手机摄像头将采集到的图像数据流发送至协同助手。
S17,手机的协同助手将图像数据流发送至连接协议模块。
S18,手机的连接协议模块将图像数据流发送至PC的连接协议模块。
S19,PC的连接协议模块将图像数据流发送至协同助手。
在S16-S19的步骤中,手机摄像头将采集到的图像数据流途径手机的协同助手和连接协议模块、PC的连接协议模块发送至PC的协同助手,以使PC再将该图像数据流传送至虚拟摄像头。
S20,PC的协同助手将图像数据流发送至虚拟硬件服务。
S21,PC的虚拟硬件服务对接收到的图像数据流进行数据转换。
其中,PC中的虚拟硬件服务接收到PC的协同助手发送的图像数据流后,可以对该图像数据流进行数据转换。例如,手机摄像头采集的图像数据流可能是裸数据流,则虚拟硬件服务便需要对其进行分辨率和/或码率的转换;或者,手机摄像头采集的图像数据流为适用于手机的安卓格式的数据流,则虚拟硬件服务需要将其转换为适用于PC的Windows格式的数据流。
S22,PC的虚拟硬件服务启动PC摄像头驱动上的虚拟摄像头,将转换后的图像数据流发送至PC内的虚拟摄像头。
然后,PC的虚拟硬件服务将上述已注册的虚拟摄像头启动,具体地可以向该虚拟摄像头发送一个运行启动的指示消息,以使该PC内的虚拟摄像头接收上述转换后的图像数据流。
S23,PC内的虚拟摄像头将图像数据流经由安卓虚拟机发送至安卓虚拟机内的虚拟摄像头。
S24,安卓虚拟机内的虚拟摄像头将图像数据流发送至应用软件。
具体地,因安卓虚拟机内的虚拟摄像头已与PC内的虚拟摄像头绑定,那么PC内的虚拟摄像头便可以将接收到的图像数据流发送至安卓虚拟机内的虚拟摄像头,进而由安卓虚拟机内的虚拟摄像头再将该图像数据流发送至应用软件,也即当前打开扫码功能的应用软件(如支付宝®)。那么该应用软件的显示界面上便可以显示出二维码图像数据,如图9所示,使用户有种使用PC的安卓虚拟机进行扫码的体验。
可以理解,当用户将安卓虚拟机内的应用软件退出上述扫码界面,或者点击“不使用虚拟摄像头”选项控件后,安卓虚拟机内的虚拟摄像头可以与PC内的虚拟摄像头解除绑定,且PC可以向手机发送关闭手机摄像头的指示消息,使手机摄像头关闭运行,以减少用户隐私泄露的风险。
上述获取数据的方法,用户在使用PC的安卓虚拟机时,若需要调用硬件资源,可以使PC与手机建立协同关系,然后通过PC与手机的协同关系调用手机的硬件,以实现安卓虚拟机内应用软件的相应功能,从而便于实现安卓应用软件的多种功能,提高用户的使用体验。
在一些实施例中,上述S1-S7步骤建立了手机与PC之间的协同关系以及PC注册虚拟摄像头后,PC也可以直接触发内部安卓虚拟机的虚拟摄像头与PC内的虚拟摄像头进行绑定,并且向手机发送启动摄像头的指示消息,那么在此之后,安卓虚拟机内虚拟摄像头所获取的图像数据都是由手机摄像头所采集的。如果用户不再需要使用手机摄像头,则可以断开手机与PC的通信连接。
以上是以在PC内注册虚拟摄像头为例介绍获取数据的方法的整个过程,注册虚拟摄像头的使用场景不局限于上述的扫码场景,还可以适用于录制视频、拍照等场景(因为使用手机拍照更方便,效果也更佳)。但需要说明的是,除了可以在PC内注册虚拟摄像头来借用手机的摄像头之外,还可以在PC内注册其他虚拟硬件以借用手机的其他硬件资源。
例如,因手机的麦克风一般具有降噪和立体声采集等功能,则本申请实施例还可以在PC内注册虚拟麦克风,在需要使用安卓虚拟机内的麦克风功能时可以借用手机的麦克风采集声音信号。具体为:
手机与PC建立通信连接之后,手机的协同助手获取手机麦克风的属性信息;手机的协同助手将建立协同关系的指示消息途径手机的连接协议模块、PC的连接协议模块发送至PC的协同助手;PC的协同助手启动虚拟硬件服务,通过虚拟硬件服务在PC麦克风驱动上注册虚拟麦克风。当用户在安卓虚拟机内触发使用虚拟麦克风的指示时,PC的协同助手向安卓虚拟机发送切换麦克风的消息,使安卓虚拟机内的虚拟麦克风与PC内的虚拟麦克风进行绑定;同时,PC的协同助手将启动麦克风的指示消息途径PC的连接协议模块、手机的连接协议模块发送至手机的协同助手,手机的协同助手启动手机麦克风。手机麦克风采集声音信号,途径手机的协同助手、连接协议模块、PC的连接协议模块发送至PC的协同助手,PC的协同助手将声音信号发送至虚拟硬件服务,进而启动PC内的虚拟麦克风,再将声音信号由PC内的虚拟麦克风转发至安卓虚拟机内的虚拟麦克风,最后由安卓虚拟机内的虚拟麦克风发送至安卓虚拟机内的应用软件。
再例如,因PC内一般不具有Modem,则本申请实施例还可以在PC内注册虚拟Modem,在需要使用安卓虚拟机内打电话时可以借用手机的Modem打电话。具体为:
手机与PC建立通信连接之后,手机的协同助手获取手机Modem的属性信息;手机的协同助手将建立协同关系的指示消息途径手机的连接协议模块、PC的连接协议模块发送至PC的协同助手;PC的协同助手启动虚拟硬件服务,通过虚拟硬件服务在PC上注册虚拟Modem。当用户在安卓虚拟机内触发使用虚拟Modem的指示时,PC的协同助手向安卓虚拟机发送绑定Modem的消息,使安卓虚拟机内的虚拟Modem与PC内的虚拟Modem进行绑定;同时,PC的协同助手将启动Modem的指示消息途径PC的连接协议模块、手机的连接协议模块发送至手机的协同助手,手机的协同助手启动手机Modem。手机Modem获取调制解调信号,将调制解调信号途径手机的协同助手、连接协议模块、PC的连接协议模块发送至PC的协同助手,PC的协同助手将调制解调信号发送至虚拟硬件服务,进而启动PC内的虚拟Modem,再将调制解调信号由PC内的虚拟Modem转发至安卓虚拟机内的虚拟Modem,最后由安卓虚拟机内的虚拟Modem发送至安卓虚拟机内的应用软件。
再例如,因PC内一般不具有陀螺仪传感器、角度传感器、霍尔传感器等传感器,则本申请实施例还可以在PC内注册虚拟陀螺仪传感器、虚拟角度传感器、虚拟霍尔传感器等,在需要使用安卓虚拟机内的一些与传感器相关的功能时(例如微信®软件的摇一摇功能、模拟游戏机、折叠屏手机的折叠展开状态检测、翻盖手机的开合状态检测等)可以借用手机传感器采集传感器数据。具体为:
手机与PC建立通信连接之后,手机的协同助手获取手机传感器的属性信息;手机的协同助手将建立协同关系的指示消息途径手机的连接协议模块、PC的连接协议模块发送至PC的协同助手;PC的协同助手启动虚拟硬件服务,通过虚拟硬件服务在PC传感器驱动上注册虚拟传感器。当用户在安卓虚拟机内触发使用虚拟传感器的指示时,PC的协同助手向安卓虚拟机发送绑定传感器的消息,使安卓虚拟机内的虚拟传感器与PC内的虚拟传感器进行绑定;同时,PC的协同助手将启动传感器的指示消息途径PC的连接协议模块、手机的连接协议模块发送至手机的协同助手,手机的协同助手启动手机传感器。手机传感器采集传感器信号,途径手机的协同助手、连接协议模块、PC的连接协议模块发送至PC的协同助手,PC的协同助手将传感器信号发送至虚拟硬件服务,进而启动PC内的虚拟传感器,再将传感器信号由PC内的虚拟传感器转发至安卓虚拟机内的虚拟传感器,最后由安卓虚拟机内的虚拟传感器发送至安卓虚拟机内的应用软件。
再例如,因一些PC中不具有NFC感应区,则本申请实施例还可以在PC内注册虚拟NFC芯片,在需要使用安卓虚拟机内的NFC功能时(例如为公交卡充值等)可以借用手机的NFC功能。具体为:
手机与PC建立通信连接之后,手机的协同助手获取手机NFC芯片的属性信息;手机的协同助手将建立协同关系的指示消息途径手机的连接协议模块、PC的连接协议模块发送至PC的协同助手;PC的协同助手启动虚拟硬件服务,通过虚拟硬件服务在PC上注册虚拟NFC芯片。当用户在安卓虚拟机内触发使用虚拟NFC的指示时,PC的协同助手向安卓虚拟机发送绑定NFC芯片的消息,使安卓虚拟机内的虚拟NFC芯片与PC内的虚拟NFC芯片进行绑定;同时,PC的协同助手将启动NFC的指示消息途径PC的连接协议模块、手机的连接协议模块发送至手机的协同助手,手机的协同助手启动手机NFC。手机NFC采集NFC信号,途径手机的协同助手、连接协议模块、PC的连接协议模块发送至PC的协同助手,PC的协同助手将NFC信号发送至虚拟硬件服务,进而启动PC内的虚拟NFC芯片,再将NFC信号由PC内的虚拟NFC芯片转发至安卓虚拟机内的虚拟NFC芯片,最后由安卓虚拟机内的虚拟NFC芯片发送至安卓虚拟机内的应用软件。
对于在PC内注册其他虚拟硬件以借用手机的其他硬件资源的实现过程在此不再举例说明,其与上述实现过程和技术原理类似。
下面再以一个实施例对上述实施例的过程进行总结描述,图10是本申请实施例提供的一例获取数据的方法的流程示意图,具体可以包括:
S101,第一电子设备与第二电子设备建立通信连接,第一电子设备上当前运行有虚拟机,第一应用当前在该虚拟机上运行。
其中,第一电子设备可以为PC,第二电子设备可以为手机,但并不局限于这两种电子设备。
S102,基于上述通信连接,第二电子设备向第一电子设备发送硬件信息。
S103,第一电子设备根据接收到的硬件信息注册虚拟硬件。
S104,当接收到用户在第一应用输入的指示操作时,虚拟机内的虚拟硬件与第一电子设备内注册的虚拟硬件进行绑定,且第一电子设备向第二电子设备发送启动硬件的指示消息。
其中,第一应用可以为虚拟机内的应用软件,指示操作可以为上述用户点击“使用虚拟摄像头”选项控件的操作。
S105,第二电子设备启动硬件,获取硬件采集的数据流,并发送至第一电子设备。
S106,第一电子设备将数据流发送至虚拟机内的虚拟硬件,进而发送至虚拟机内的第一应用。
该实施例中各步骤的实现过程可以参见上述实施例的描述,在此不再赘述。
上文详细介绍了本申请实施例提供的获取数据的方法的示例。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分为各个功能模块,例如检测单元、处理单元、显示单元等,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的电子设备,用于执行上述获取数据的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,电子设备还可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对电子设备的动作进行控制管理。存储模块可以用于支持电子设备执行存储程序代码和数据等。通信模块,可以用于支持电子设备与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块具体可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他电子设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,本实施例所涉及的电子设备可以为具有图2或图3所示结构的设备。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质中存储了计算机程序,当计算机程序被处理器执行时,使得处理器执行上述任一实施例的获取数据的方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的获取数据的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的获取数据的方法。
其中,本实施例提供的电子设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (9)
1.一种获取数据的方法,其特征在于,所述方法由第一电子设备执行,所述第一电子设备上当前运行有虚拟机,第一应用当前在所述虚拟机上运行,所述虚拟机用于接收用户针对所述第一应用输入的操作,所述方法包括:
在所述第一电子设备与第二电子设备建立通信连接之后,所述第一电子设备接收来自所述第二电子设备的第一硬件的属性信息,所述第一硬件为支持所述第一应用运行的硬件;
根据所述第一硬件的属性信息在所述第一电子设备的摄像头驱动上部署第一虚拟硬件;
若检测到所述用户通过所述虚拟机输入的针对所述第一应用中第一功能的开启操作、且检测到所述用户针对所述第一应用的界面上第一预设控件的选择操作,解除所述虚拟机内部署的第二虚拟硬件与所述第一电子设备中硬件的绑定关系,将所述第一虚拟硬件与所述虚拟机内部署的第二虚拟硬件进行绑定,以及向所述第二电子设备发送启动所述第一硬件的指示消息;
通过所述第一虚拟硬件接收来自所述第二电子设备的第一数据,所述第一数据为所述第二电子设备通过所述第一硬件获取的、且所述第一应用在实现所述第一功能过程中所需的数据;
所述第一虚拟硬件将所述第一数据经由所述第二虚拟硬件发送至所述第一应用;
若检测到所述用户通过所述虚拟机输入的针对所述第一应用中第一功能的关闭操作,或者检测到所述用户针对所述第一应用的界面上第二预设控件的选择操作,解除所述第一虚拟硬件与所述虚拟机内部署的第二虚拟硬件的绑定关系。
2.根据权利要求1所述的方法,其特征在于,所述第一电子设备包括协同助手,所述第一电子设备接收来自所述第二电子设备的第一硬件的属性信息,包括:
所述协同助手接收来自所述第二电子设备的第一硬件的属性信息。
3.根据权利要求2所述的方法,其特征在于,所述第一电子设备还包括虚拟硬件服务,所述根据所述第一硬件的属性信息部署第一虚拟硬件,包括:
所述协同助手根据所述第一硬件的属性信息,通过所述虚拟硬件服务部署所述第一虚拟硬件。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一电子设备与所述第二电子设备之间建立通信连接的方式包括碰一碰连接方式、短距通信连接方式或者扫码连接方式。
5.根据权利要求1所述的方法,其特征在于,在接收到所述第一数据之后,所述方法还包括:
将所述第一数据的数据格式转换为所述第一电子设备支持的数据格式;
相应的,所述第一虚拟硬件将所述第一数据经由所述第二虚拟硬件发送至所述第一应用,包括:
所述第一虚拟硬件将数据格式转换后的第一数据经由所述第二虚拟硬件发送至所述第一应用。
6.一种获取数据的系统,其特征在于,包括第一电子设备和第二电子设备;
所述第一电子设备执行如权利要求1至5中任一项所述的方法,所述第二电子设备用于向所述第一电子设备发送第一硬件的属性信息,以及向所述第一电子设备发送通过所述第一硬件获取的第一数据。
7.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
所述电子设备上当前运行有虚拟机,第一应用当前在所述虚拟机上运行;
所述存储器存储有一个或多个程序,当所述一个或者多个程序被所述处理器执行时,使得所述电子设备执行如权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储了计算机程序,当所述计算机程序被处理器执行时,使得所述处理器执行权利要求1至5中任一项所述的方法。
9.一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,其特征在于,当所述计算机程序代码在电子设备上运行时,使得该电子设备执行权利要求1至5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210097901.1A CN114116140B (zh) | 2022-01-27 | 2022-01-27 | 获取数据的方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210097901.1A CN114116140B (zh) | 2022-01-27 | 2022-01-27 | 获取数据的方法和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114116140A CN114116140A (zh) | 2022-03-01 |
CN114116140B true CN114116140B (zh) | 2022-07-26 |
Family
ID=80361382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210097901.1A Active CN114116140B (zh) | 2022-01-27 | 2022-01-27 | 获取数据的方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114116140B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544298A (zh) * | 2017-06-27 | 2018-01-05 | 新华三云计算技术有限公司 | 一种摄像头调用方法和装置 |
CN108304247A (zh) * | 2017-12-19 | 2018-07-20 | 华为技术有限公司 | 访问摄像头的方法和装置、服务器、可读存储介质 |
US11165888B1 (en) * | 2020-04-29 | 2021-11-02 | Citrix Systems, Inc. | Image acquisition device virtualization for remote computing |
CN113784049A (zh) * | 2021-09-17 | 2021-12-10 | 西安万像电子科技有限公司 | 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8284267B2 (en) * | 2009-03-11 | 2012-10-09 | O2Micro Inc. | Virtual camera for sharing a physical camera |
WO2018072101A1 (zh) * | 2016-10-18 | 2018-04-26 | 深圳前海达闼云端智能科技有限公司 | 设备调用方法、装置、系统、电子设备和计算机程序产品 |
US11044591B2 (en) * | 2017-01-13 | 2021-06-22 | Futurewei Technologies, Inc. | Cloud based phone services accessible in the cloud by a remote device |
CN111859418B (zh) * | 2020-06-24 | 2024-07-05 | 华为技术有限公司 | 原子能力调用方法及终端设备 |
-
2022
- 2022-01-27 CN CN202210097901.1A patent/CN114116140B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107544298A (zh) * | 2017-06-27 | 2018-01-05 | 新华三云计算技术有限公司 | 一种摄像头调用方法和装置 |
CN108304247A (zh) * | 2017-12-19 | 2018-07-20 | 华为技术有限公司 | 访问摄像头的方法和装置、服务器、可读存储介质 |
US11165888B1 (en) * | 2020-04-29 | 2021-11-02 | Citrix Systems, Inc. | Image acquisition device virtualization for remote computing |
CN113784049A (zh) * | 2021-09-17 | 2021-12-10 | 西安万像电子科技有限公司 | 安卓系统虚拟机的摄像头调用方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114116140A (zh) | 2022-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020186969A1 (zh) | 一种多路录像方法及设备 | |
WO2020168965A1 (zh) | 一种具有折叠屏的电子设备的控制方法及电子设备 | |
WO2020244623A1 (zh) | 一种空鼠模式实现方法及相关设备 | |
WO2021208723A1 (zh) | 全屏显示方法、装置和电子设备 | |
WO2021063311A1 (zh) | 具有折叠屏的电子设备的显示控制方法及电子设备 | |
CN113810601B (zh) | 终端的图像处理方法、装置和终端设备 | |
CN114257670B (zh) | 一种具有折叠屏的电子设备的显示方法 | |
WO2022083386A1 (zh) | 投屏方法、系统及电子设备 | |
CN113691842A (zh) | 一种跨设备的内容投射方法及电子设备 | |
CN113938720B (zh) | 多设备协作的方法、电子设备及多设备协作系统 | |
WO2021213031A1 (zh) | 图像合成方法及相关装置 | |
CN112492193A (zh) | 一种回调流的处理方法及设备 | |
CN114489533A (zh) | 投屏方法、装置、电子设备及计算机可读存储介质 | |
CN114257671B (zh) | 一种图像显示方法及电子设备 | |
WO2022001258A1 (zh) | 多屏显示方法、装置、终端设备及存储介质 | |
CN113490291B (zh) | 数据下载方法、装置和终端设备 | |
WO2021175097A1 (zh) | 一种非视距物体的成像方法和电子设备 | |
WO2022170856A1 (zh) | 建立连接的方法与电子设备 | |
CN113746718B (zh) | 一种内容分享的方法、装置及系统 | |
CN111343326A (zh) | 获取测试日志的方法及相关装置 | |
WO2022170854A1 (zh) | 视频通话的方法与相关设备 | |
WO2022100219A1 (zh) | 数据转移方法及相关装置 | |
CN114363678A (zh) | 一种投屏方法及设备 | |
CN114116140B (zh) | 获取数据的方法和电子设备 | |
CN115002939B (zh) | 加入WiFi群组的方法和装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |