CN117473465A - 一种设备虚拟化服务的兼容性验证方法、设备及系统 - Google Patents

一种设备虚拟化服务的兼容性验证方法、设备及系统 Download PDF

Info

Publication number
CN117473465A
CN117473465A CN202210860613.7A CN202210860613A CN117473465A CN 117473465 A CN117473465 A CN 117473465A CN 202210860613 A CN202210860613 A CN 202210860613A CN 117473465 A CN117473465 A CN 117473465A
Authority
CN
China
Prior art keywords
dmsdp
equipment
service
version number
version
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.)
Pending
Application number
CN202210860613.7A
Other languages
English (en)
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.)
Honor Device Co Ltd
Original Assignee
Honor Device 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 Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202210860613.7A priority Critical patent/CN117473465A/zh
Publication of CN117473465A publication Critical patent/CN117473465A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Abstract

一种设备虚拟化服务的兼容性验证方法、电子设备、物联网设备及系统,涉及终端技术领域。该方法包括:当应用程序通过DVSDK访问电子设备的DMSDP提供的设备虚拟化服务时,DVSDK向电子设备的DMSDP请求第一版本号;第一版本号随DMSDP版本更新单调递增,DMSDP更新时,新增的安卓接口定义语言AIDL接口添加在DMSDP的AIDL接口文件的末尾;当根据DVSDK的版本号和第一版本号,确定DVSDK的版本低于或等于电子设备的DMSDP的版本时,对电子设备的DMSDP的兼容性验证通过;否则兼容性验证失败。利用该方法能够对应用程序实现设备虚拟化服务时的兼容性问题进行改善,提升了效率与用户体验。

Description

一种设备虚拟化服务的兼容性验证方法、设备及系统
技术领域
本申请涉及终端技术领域,尤其涉及一种设备虚拟化服务的兼容性验证方法、电子设备、物联网设备及系统。
背景技术
目前,通过在手机、平板电脑等中心侧设备上安装有设备虚拟化软件开发套件(device virtualization software development kit,DVSDK)和分布式移动感知开发平台(distribute mobile sensing development platform,DMSDP)等组件,并在台灯等可以使用相机的物联网(Internet of Things,IoT)设备上设置对应的DMSDP进行适配,可以使中心侧设备与IoT设备连接,并使中心侧设备上能使用IoT设备的虚拟化相机功能。
中心侧设备的第三方的应用程序一般通过DVSDK访问DMSDP以实现设备虚拟化服务能力。其中,DVSDK与DMSDP两个进程间通过安卓接口定义语言(android interfacedefinition language,AIDL)进行通信。DMSDP使用IoT设备的虚拟化相机能力,通过DMSDP创建的传输通道与IoT设备侧交互,控制IoT设备侧的相机进行预览和拍照。
但是,DMSDP一般是一个闭源的模块,其版本升级由中心侧设备的厂商进行;而DVSDK为一个接口模块,与应用程序属于同一个进程,DVSDK版本可以由第三方的应用程序厂商进行升级,因此DVSDK接口模块版本与DMSDP中AIDL的版本可能不匹配,导致存在兼容性问题,进而使得中心侧设备对IoT设备的控制流程异常中断,影响用户体验。
发明内容
为了解决上述问题,本申请提供了一种设备虚拟化服务的兼容性验证方法、电子设备、物联网设备及系统,能够对应用程序实现设备虚拟化服务时的兼容性问题进行改善,提升了效率与用户体验。
第一方面,本申请提供了一种设备虚拟化服务的兼容性验证方法,应用于电子设备,所述电子设备上安装有应用程序、设备虚拟化软件开发套件DVSDK和分布式移动感知开发平台DMSDP,所述电子设备用于连接物联网设备,所述方法包括:
当所述应用程序通过所述DVSDK访问所述电子设备的DMSDP的设备虚拟化服务时,所述DVSDK向所述电子设备的DMSDP请求第一版本号;所述第一版本号随所述电子设备的DMSDP版本更新单调递增,所述电子设备的DMSDP更新时,新增的安卓接口定义语言AIDL接口添加在所述电子设备的DMSDP的AIDL接口文件末尾;
当根据所述DVSDK的版本号和所述第一版本号,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;否则,对所述电子设备的DMSDP的兼容性验证失败。
本申请提供的方案,电子设备的DMSDP版本每更新一次,DMSDP的版本号单调递增。为了使低版本的DVSDK接口模块能够访问高版本的DMSDP,避免修改已有的AIDL接口,如果真的需要修改,改用新增的方式。每当新增AIDL接口的时候,确保该新增的AIDL接口在AIDL接口文件的末尾添加,使得前端未涉及更新的AIDL接口文件维持不变。从而即使DMSDP模块升级了,集成了低版本DVSDK的应用也可以使用DMSDP的能力。对DMSDP的兼容性验证过程可以在物联网设备发现阶段之前进行,保证了用户能够更早一步准确的知道物联网控制流程是否可以正常进行,确定是否需要升级DMSDP版本,从而提升了效率。
在一种可能的实现方式中,所述当根据所述DVSDK的版本号和所述第一版本号,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;否则,对所述电子设备的DMSDP的兼容性验证失败,具体包括:
当所述DVSDK的版本号低于或等于所述第一版本号时,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本,对所述电子设备的DMSDP的兼容性验证通过;
当所述DVSDK的版本号高于所述第一版本号时,确定所述DVSDK的版本高于所述电子设备的DMSDP的版本,对所述电子设备的DMSDP的兼容性验证失败。
在一种可能的实现方式中,所述当根据所述DVSDK的版本号和所述第一版本号,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;否则,对所述电子设备的DMSDP的兼容性验证失败,具体包括:
根据所述DVSDK的版本号和映射关系确定所述DVSDK支持的最低版本;
当所述DVSDK支持的最低版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;
当所述DVSDK支持的最低版本高于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证失败。
在一种可能的实现方式中,所述方法还包括:
当所述电子设备的DMSDP更新时,每新增一个所述AIDL接口,所述第一版本号递增1。与此同时,提供给应用的DVSDK也存在一个版本号与DMSDP中的版本号强相关。
在一种可能的实现方式中,当对所述电子设备的DMSDP的兼容性验证失败时,所述方法还包括:
向所述应用程序返回对所述电子设备的DMSDP的兼容性验证失败的错误码。
在一种可能的实现方式中,当对所述电子设备的DMSDP的兼容性验证通过后,所述方法还包括:
对所述应用程序进行鉴权;
当所述应用程序的鉴权通过后,允许所述应用程序继续访问所述电子设备的DMSDP的设备虚拟化服务。
在一种可能的实现方式中,所述对所述应用程序进行鉴权,具体包括:
当获取到所述应用程序的认证标识,且所述认证标识为指定认证标识时,所述应用程序的鉴权通过;否则,确定所述应用程序是否进行了云服务注册,若已进行了云服务注册,则所述应用程序的鉴权通过,若未进行云服务注册,则所述应用程序的鉴权不通过。
在一种可能的实现方式中,当所述应用程序的鉴权不通过时,所述方法还包括:
所述电子设备的DMSDP向所述DVSDK返回鉴权失败的错误码,并阻拦所述DVSDK对所述电子设备的DMSDP的访问。以排除了不安全应用对于中心侧设备乃至对IoT设备的攻击。
在一种可能的实现方式中,所述方法还包括:
当与所述物联网设备建立连接通道后,所述电子设备的DMSDP接收所述物联网设备发送的版本号信息,所述版本号信息用于指示所述物联网设备的DMSDP的版本号;
所述电子设备的DMSDP根据所述版本号信息,确定所述第一版本号与所述物联网设备的DMSDP的版本号中的最低版本号;
当根据所述DVSDK的版本号和所述最低版本号,确定所述DVSDK的版本低于或等于所述最低版本号对应的版本时,对所述物联网设备的DMSDP的兼容性验证通过;否则,对所述物联网设备的DMSDP的兼容性验证失败。
该方案还能够实现对IoT侧DMSDP的兼容性验证,该兼容性验证的过程发生在虚拟相机服务使能阶段,保证了用户能够更早一步准确的知道物联网设备控制流程是否可以正常进行,从而确定是否需要升级IoT侧的DMSDP版本,从而提升了效率。
在一种可能的实现方式中,当对所述物联网设备的DMSDP的兼容性验证失败时,所述方法还包括:
向所述应用程序返回对所述物联网设备的DMSDP的兼容性验证失败的错误码。
在一种可能的实现方式中,所述版本号信息携带在所述物联网设备向所述电子设备发送的设备能力信息中,所述设备能力信息还用于指示所述物联网设备支持的设备虚拟化服务,所述设备虚拟化服务包括虚拟化相机服务和虚拟化麦克风服务中的至少一种。
在一种可能的实现方式中,当对所述物联网设备的DMSDP的兼容性验证通过时,所述方法还包括:
所述电子设备的DMSDP将所述设备能力信息缓存至缓存对象中;
当所述应用程序使能所述电子设备的DMSDP的设备虚拟化服务时,所述电子设备的DMSDP根据所述缓存对象缓存的设备能力信息确定所述物联网设备是否支持需要使能的设备虚拟化服务;若支持,则继续对所述设备虚拟化服务的使能,否则使能失败。
在一种可能的实现方式中,所述电子设备的DMSDP将所述设备能力信息缓存至缓存对象中,具体包括:
所述电子设备的DMSDP,以所述设备能力信息中的服务序号和设备序号为键,将所述键存储在所述缓存对象中。
在一种可能的实现方式中,所述电子设备的DMSDP根据所述缓存对象缓存的设备能力信息确定所述物联网设备是否支持需要使能的设备虚拟化服务,具体包括:
所述电子设备的DMSDP当在所述缓存对象存储的所述键中,寻找到与所述需要使能的设备虚拟化服务对应的服务序号和设备序号匹配的键时,确定所述物联网设备支持所述需要使能的设备虚拟化服务,否则,确定所述物联网设备不支持所述需要使能的设备虚拟化服务。
在一种可能的实现方式中,对所述设备虚拟化服务的使能结束后,所述方法还包括:
所述电子设备的DMSDP以使能结束的所述设备虚拟化服务为键,以使能结束的所述设备虚拟化服务的能力为值,形成键值对;
所述电子设备的DMSDP将所述键值对存储在能力缓冲器中。
在一种可能的实现方式中,所述方法还包括:
当所述应用程序访问所述使能结束的设备虚拟化服务的目标能力时,所述电子设备的DMSDP以所述使能结束的设备虚拟化服务为键,当所述能力缓冲器中获取到所述目标能力对应的值时,确定所述物联网设备支持所述目标能力,否则确定所述物联网设备不支持所述目标能力。
以上实现方式中,能够确保整个虚拟化服务的应用流程中,在准备工作前及时对物联网设备侧能够提供的虚拟化服务以及虚拟化服务的能力进行校验,避免了流程过程中出现奔溃的问题,提高了效率与用户体验。
在一种可能的实现方式中,所述设备虚拟化服务为虚拟化相机服务时,所述虚拟化服务的能力为预览或拍照。
第二方面,本申请还提供了一种虚拟化服务的兼容性验证方法,其特征在于,应用于物联网设备,物联网设备上安装有分布式移动感知开发平台DMSDP,所述物联网设备用于连接所述电子设备,所述方法包括:,
建立与电子设备的传输通道;
向所述电子设备发送版本号信息,所述版本号信息用于指示所述物联网设备的DMSDP的版本号。
以使电子设备根据该版本号信息实现对IoT侧DMSDP的兼容性验证,该兼容性验证的过程发生在虚拟相机服务使能阶段前,保证了用户能够更早一步准确的知道台灯控制流程是否可以正常进行,从而确定是否需要升级IoT侧的DMSDP版本,从而提升了效率。
在一种可能的实现方式中,所述版本号信息携带在所述物联网设备向所述电子设备发送的设备能力信息中,所述设备能力信息还用于指示所述物联网设备支持的设备虚拟化服务,所述设备虚拟化服务包括虚拟化相机服务和虚拟化麦克风服务中的至少一种。
第三方面,本申请还提供了一种电子设备,该电子设备包括存储器和处理器,存储器与处理器耦合。存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得电子设备执行以上第一方面或第一方面对应的各实现方式中提供的设备虚拟化服务的兼容性验证方法。
第四方面,本申请还提供了一种物联网设备,该物联网设备包括摄像头、存储器和处理器。存储器与处理器耦合,摄像头与所述处理器耦合,物联网设备包括的摄像头的数量可以为一个或多个。存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得物联网设备执行以上第二方面或第二方面对应的各实现方式中提供的设备虚拟化服务的兼容性验证方法。
第五方面,本申请还提供了一种协同工作系统,协同工作系统中包括一个或多个第三方面提供的电子设备,以及一个或多个第四方面提供的物联网设备。
附图说明
图1为场景示意图一;
图2a为本申请提供的一种中心侧设备的示意图;
图2b为本申请提供的中心侧设备的软件结构的示意图;
图3a为本申请提供的一种IoT设备的示意图;
图3b为本申请提供的IoT设备的软件结构的示意图;
图4为本申请实施例提供的拍照方法的流程图一;
图5为本申请实施例提供的设备虚拟化服务的兼容性验证方法的流程图;
图6为本申请实施例提供的一种处理多应用与设备虚拟服务间交互兼容性的架构图;
图7为本申请实施例提供的另一种设备虚拟化服务的兼容性验证方法的流程图;
图8为本申请实施例提供的另一种处理多应用与设备虚拟服务间交互兼容性的架构图;
图9为本申请实施例提供的又一种设备虚拟化服务的兼容性验证方法的流程图;
图10为本申请实施例提供的又一种处理多应用与设备虚拟服务间交互兼容性的架构图;
图11为本申请实施例提供的再一种设备虚拟化服务的兼容性验证方法的流程图;
图12为本申请实施例提供的再一种处理多应用与设备虚拟服务间交互兼容性的架构图;
图13为本申请实施例提供的一种协同工作系统的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有进行创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。
为了使本技术领域的人员更清楚地理解本申请的方案,下面首先说明本申请技术方案的应用场景。
目前,在线教育受到越来越多人的欢迎,学生对在线教育的需求也越来越大。在一些应用场景中,当遇到生词时,学生可以进行在线查词以获取相关解释;在一些应用场景中,对书本内容的在线朗读更便于学生学习知识和发音;在一些应用场景中,学生需要将其作业进行在线提交。因此,如何基于智能设备满足用户的在线教育需求,是需要解决的问题。
参见图1,该图为场景示意图一。
中心侧设备10上安装有的教育类应用程序,台灯等IoT设备20利用摄像头进行拍照后,将照片回传至中心侧设备,以实现答疑、作业递交等功能,或者中心侧设备10利用IoT设备20上的摄像头进行图片的预览,并根据IoT设备20采集到的图像为用户提供各种在线教育功能,例如在线查词、在线朗读。
其中,中心侧设备10可以为手机、平板电脑、笔记本电脑或者台式电脑等,本申请实施例不作具体限定。
中心侧设备10与IoT设备20可以进行近场通信和/或远场通信。其中,近场通信可以通过路由器等设备完成设备间信息交互,远场通信可以通过云服务器完成设备间信息交互。
下面首先说明中心侧设备10的硬件架构。
参见图2a,该图为本申请提供的一种中心侧设备的示意图。
图2a所示的中心侧设备10仅是一个范例,并且中心侧设备10可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图2a中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
中心侧设备10可以包括:处理器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可以包括压力传感器,陀螺仪传感器,加速度传感器,温度传感器,运动传感器,气压传感器,磁传感器,距离传感器,接近光传感器,指纹传感器,触摸传感器,环境光传感器,骨传导传感器等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。
其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是中心侧设备10的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为中心侧设备10充电,也可以用于中心侧设备10与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。
在一些无线充电的实施例中,充电管理模块140可以通过中心侧设备10的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
中心侧设备10的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。中心侧设备10中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。
例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在中心侧设备10上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160可以提供应用在中心侧设备10上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,中心侧设备10的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得中心侧设备10可以通过无线通信技术与网络以及其他设备通信。
中心侧设备10通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。在一些实施例中,中心侧设备10可以包括1个或N个显示屏194,N为大于1的正整数。
在本申请实施例中,显示屏194可以显示拍摄预览界面和拍照图像界面等。需要说明的是,在本申请实施例中,拍摄预览界面是指用户可通过显示屏194观看IoT设备的摄像头实时采集的图像的界面。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展中心侧设备10的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行中心侧设备10的各种功能应用以及数据处理,例如使得中心侧设备10实现本申请实施例中的协同工作方法。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。
存储数据区可存储中心侧设备10使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
中心侧设备10可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。中心侧设备10可以通过扬声器170A收听音乐,或收听免提通话。在一些实施例中,中心侧设备10可以设置多个扬声器170A。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当中心侧设备10接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。中心侧设备10可以设置至少一个麦克风170C。在另一些实施例中,中心侧设备10可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,中心侧设备10还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
下面说明中心侧设备10的软件结构。
参见图2b,该图为本申请提供的中心侧设备的软件结构的示意图。
中心侧设备10的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明中心侧设备10的软件结构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,从上至下分别为应用程序层,应用程序框架层,系统库,扩展层以及内核层。
应用程序层可以包括一系列应用程序包。例如应用程序包可以包括图库,地图,Wi-Fi,蓝牙,短信,音乐,通话,导航,视频,相机,设备管理应用,教育应用程序等应用程序。
其中,设备管理应用可以感知、发现并注册区域内的IoT设备。
教育应用程序可以由第三方厂商开发,用于为用户提供在线教育功能,可以具备但不限于视图、播报、注释、查询等功能。
在一些实施例中,设备管理应用可以与台灯等IoT设备进行绑定;教育应用程序也可以与台灯等IoT设备进行绑定。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2b所示,应用程序框架层可以包括DVSDK,DMSDK,AUTH,智能互联服务与互联服务等。
其中,身份验证(authentication,AUTH),又称“认证”、“鉴权”,是指通过一定的手段,接口调用鉴权,提供安全权限管理能力,完成对用户身份的确认,也即提供鉴权服务。
DVSDK,用于提供设备虚拟化服务,为第三方厂商的应用程序提供互联服务的入口,同时进行接口访问安全权限管理。具体可以用于在中心设备侧与IoT设备侧之间建立逻辑通道,提供虚拟化相机的能力。
DMSDK,用于提供设备管理服务,为第三方厂商提供远场(即云端)IOT设备信息以及近场(即附近可连接)的IOT设备信息。
智能互联服务用于提供物理传输通道,用于提供数据传输能力,同时管理互联服务的启动。
互联服务,在中心侧设备和IoT设备之间建立逻辑通道,提供虚拟化相机能力。具体用于实现数据处理、传输通道、流量控制以及能力采集功能。
除此之外,还可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。
例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。
系统层包括系统库和安卓运行时(Android Runtime)。
Android Runtime包括核心库和虚拟机。Android Runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
在本申请实施例中,Android Runtime还包括虚拟相机适配层,提供虚拟相机注册的能力。
系统库可以包括多个功能模块。例如:包括多媒体平台、音频框架、图形图像处理库、解码模块以及虚拟相机适配层等。
其中,多媒体平台可以用于对多媒体的管理,支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。多媒体平台可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
图形图像处理库可以用于实现图形绘图,图像渲染,合成,和图层处理等。
编解码器可以用于实现对音频数据、视频数据的编解码操作。
拓展层中包括硬件抽象层(Hardware Abstraction Layer,HAL),HAL是软件层的例行程序包,为位于操作系统内核与硬件电路之间的接口层,用于模拟特定系统平台的细节使程序可以直接访问硬件的资源。
HAL层包括但不限于:音频(Audio)HAL、传感器(Sensor)HAL、调制解调(Modem)HAL、相机HAL、虚拟相机HAL。
其中,音频HAL用于对音频流进行处理,例如,对音频流进行降噪、定向增强等处理。相机HAL用于对与电子设备侧摄像头对应的图像流进行处理,虚拟相机HAL用于对电子设备侧注册的虚拟相机对应的图像流进行处理,也即用于对IOT设备侧摄像头采集的图像流进行处理。
内核层是硬件和软件之间的层。内核层可以包含显示驱动,相机驱动,USB驱动,CPU驱动,音频驱动,网络驱动(如Wi-Fi驱动),存储驱动和打印驱动等。
下面说明IoT设备20的硬件结构。
参见图3a,该图为本申请提供的一种IoT设备的示意图。
在一些实施例中,IoT设备为带有摄像头的台灯。应该理解的是,图3a所示的IoT设备20仅是一个范例,并且可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图3a中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
IoT设备可以包括:处理器210,摄像头201,无线通信模块202,存储器203,音频模块204,USB接口205,充电管理模块206,电源管理模块207,电池208,照明装置209,按键211等。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括GPU,ISP,控制器,存储器,视频编解码器等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是IoT设备20的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
摄像头201用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。
感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。以台灯为例,摄像头201可以设置于台灯支架上,用于向下采集图像。
IoT设备20可以通过ISP,摄像头201,视频编解码器,GPU等实现拍摄功能。
ISP用于处理摄像头201反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头201中。
无线通信模块202可以提供应用在IoT设备20上的包括WLAN(如Wi-Fi网络),蓝牙(bluetooth,BT)等无线通信的解决方案。在一些实施例中,IoT设备20的天线和无线通信模块202耦合,使得IoT设备20可以通过无线通信技术与网络以及其他设备通信。
存储器203可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在存储器203的指令,从而执行IoT设备20的各种功能应用以及数据处理,例如使得IoT设备20实现本申请实施例中的协同工作方法。
IoT设备20可以通过音频模块204,扬声器212等实现音频功能,例如音乐播放等。
USB接口205是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口205可以用于连接充电器为IoT设备20充电,也可以用于IoT设备20与外围设备之间传输数据。
充电管理模块206用于从充电器接收充电输入。充电管理模块206为电池208充电的同时,还可以通过电源管理模块207为IoT设备20供电。
电源管理模块207用于连接电池208,充电管理模块206与处理器210。电源管理模块207接收电池208和/或充电管理模块206的输入,为处理器210,存储器203,摄像头201,无线通信模块202,以及照明装置209等供电。
按键211包括开机键(或称电源键)等。
下面说明IoT设备20的软件结构。
参见图3b,该图为本申请提供的IoT设备的软件结构的示意图。
IoT设备的层与层之间通过软件接口通信。在一些实施例中,从上至下分别为应用程序层、应用程序框架层,系统库以及内核层。
应用程序层可以包括设备应用服务,设备应用服务可以理解为系统级应用,IoT设备系统启动后设备应用服务启动。
应用程序框架层包括一些预先定义的函数。如图3b所示,应用程序框架层可以包括智能互联服务、资源管理器与互联服务等。
资源管理器用于提供各种资源,比如本地化字符串,图标,图片,布局文件,音频文件,视频文件等等。
智能互联服务提供物理传输通道,用于提供数据传输能力同时管理互联服务的启动开关。
互联服务:在中心侧设备和IoT之间建立逻辑通道,提供虚拟化相机能力,同时提供设备相机开放接口,具体可以包括数据处理、能力采集、虚拟音频模块以及虚拟相机模块等。
系统层可以包括多个功能模块。例如:包括多媒体平台、音频框架、图形图像处理库、解码模块以及IoT厂商适配相机模块等。
多媒体平台可以用于对多媒体的管理,支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。多媒体平台可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
图形图像处理库可以用于实现图形绘图,图像渲染,合成,和图层处理等。
编解码器可以用于实现对音频数据、视频数据的编解码操作。
IoT厂商适配相机模块,用于实现互联模块的接口,提供打开相机、拍照、预览等功能。
内核层是硬件和软件之间的层。内核层可以包含相机驱动,USB驱动,CPU驱动,音频驱动,网络驱动和存储驱动等。
目前,通过在手机、平板电脑等中心侧设备上安装有DVSDK和DMSDP等组件,并在台灯等IoT设备上设置对应的DMSDP进行适配,可以使中心侧设备与IoT设备连接,并使中心侧设备上能使用IoT设备的虚拟化相机功能。
以上技术的一种典型的应用场景为教育场景。中心侧设备上安装有的第三方的教育类应用程序,台灯等IoT设备上包括摄像头。当中心侧设备与IoT设备建立连接后,可以在中心侧设备上使用IoT设备的虚拟化相机功能。例如,使用IoT设备的摄像头捕捉桌面上书本的文字,当手机指向文字时,中心侧设备上的教育类应用程序自动识别文字显示注解并进行语音播报。教育类应用程序,还可以发出拍照请求,台灯等IoT设备利用摄像头进行拍照后,将照片回传至中心侧设备,以实现答疑、作业递交等功能。
中心侧设备的第三方的应用程序(application,APP)一般通过DVSDK访问DMSDP以实现设备虚拟化服务能力。其中,DVSDK与DMSDP两个进程间通过Android接口定义语言(android interface definition language,AIDL)进行通信。DMSDP使用IoT设备的虚拟化相机能力,通过DMSDP创建的传输通道与IoT设备侧交互,控制IoT设备侧的相机进行预览和拍照。
但是,DMSDP一般是一个闭源的模块,其版本升级由中心侧设备的厂商进行,中心侧设备的厂商将DMSDP通过DVSDK开放给多个授权的第三方应用程序厂商进行使用;而DVSDK为一个接口模块,与应用程序属于同一个进程,DVSDK版本可以由中心侧设备的厂商的第三方的应用程序厂商进行升级。
由于中心侧设备的厂商与第三方的应用程序的厂商可能是相互独立的,因此在一些情况下,第三方的应用程序厂商使用的DVSDK接口模块版本,与DMSDP中AIDL的版本可能不匹配,甚至存在较大的版本差异,进而导致存在兼容性问题,使得中心侧设备对IoT设备的控制流程异常中断,无法使用IoT设备侧的相机进行预览和拍照,影响用户体验。
为了解决以上技术问题,本申请提供了一种设备虚拟化服务的兼容性验证方法、电子设备、物联网设备及系统,能够对应用程序实现设备虚拟化服务时的兼容性问题进行改善,提升了用户体验。
下面结合具体的实现方式进行说明。
为了使本领域技术人员更清楚地理解本申请的技术方案,下面首先说明本申请方案中一台中心侧设备与一台IoT设备建立连接并协同实现拍照的过程。以下说明中,以中心侧设备为平板电脑,IoT设备为台灯为例进行说明。
参见图4,该图为本申请实施例提供的拍照方法的流程图一。
0.设备服务初始化阶段,具体包括以下步骤:
S0.1:响应于用户操作,台灯的设备应用服务启动,加载互联服务。
示例性的,用户操作可以时用户开启台灯电源的操作。响应于用户操作,台灯系统启动,设备应用服务随之启动,并加载互联服务。其中,互联服务可以用于在平板和台灯之间建立物理传输通道,用于提供数据传输能力。
S0.2,台灯的互联服务加载硬件抽象服务。
互联服务还可以控制硬件抽象服务的开启。示例性的,在互联服务启动后,互联服务可以以插件的形式加载硬件抽象服务。其中,硬件抽象服务可以用于在平板和台灯之间建立逻辑通道,提供虚拟化相机的能力,同时还可以提供台灯相机的开放接口。
硬件抽象服务至少可以包括基础组件和相机组件。其中,在设备服务初始化阶段,互联服务加载首先加载基础组件,并对基础组件进行初始化。在基础组件初始化之后,可以与台灯的设备适配模块进行信息交互,获取设备信息和虚拟化能力信息。示例性的,设备信息包括但不限于设备名称、设备标识、设备类型等。示例性的,虚拟化能力信息包括但不限于是否支持虚拟化相机、是否支持虚拟化麦克风等,还可以进一步包括支持的虚拟化相机的功能,例如只支持视频预览、只支持拍照、或者同时支持拍照和视频预览。
其中,台灯具有支持虚拟化相机的能力,可以理解为台灯的摄像头允许其他电子设备(如平板)调用,也即可以理解为台灯的摄像头允许被作为其他电子设备的虚拟相机。
在基础组件获取到台灯的设备信息和能力信息之后,如果台灯具有支持虚拟化相机的能力,则基础组件加载相机组件,以提供虚拟化相机的能力。此时,基础组件即可进行协商通道建立准备,以待与平板建立协商通道协商网络连接相关信息(包括但不限于IP地址和端口等)。其中,在基础组件进行协商通道建立准备时,创建一个会话服务(SessionServer),并将会话服务的会话名称(Session Name)发送至互联服务中,以待平板侧的传输管理服务与台灯侧的互联服务建立协商通道。
1.设备发现阶段,具体包括以下步骤:
S1.1:响应于用户操作,平板的教育APP向设备管理服务发送设备发现指令。
用户操作可以是用户点击教育APP中需要调用虚拟相机的功能选项的操作。示例性的,用户操作可以为点击教育APP中点读功能、查词功能、作业功能、拍照功能的操作。
平板的教育APP接收到用户操作,响应于该操作,向平板的设备管理服务发送设备发现指令。其中,设备发现指令,用于指示查找能够与平板建立连接的IoT设备。示例性的,设备发现指令中可以包括但不限于指令类型和待发现的设备类型。在本实施例中,设备发现指令具体用于查找能够与平板建立连接的台灯。
S1.2:平板中设备管理服务调用鉴权服务对教育APP进行鉴权,获取到对教育APP的鉴权结果。
设备管理服务接收到设备发现指令后,并根据教育APP的名称对教育APP进行APP鉴权。
在鉴权服务得到教育APP的鉴权结果(鉴权成功或鉴权失败),将鉴权结果发送给设备管理服务。
S1.3:平板中设备管理服务在教育APP鉴权成功时向传输管理服务发送设备搜索指令。
其中,设备搜索指令可以包括但不限于指令类型、待搜索的设备类型以及搜索方式。示例性的,搜索方式包括但不限于近场设备扫描和从云服务器中获取设备信息。在本实施中,待搜索的设备类型为台灯。
S1.4:平板中传输管理服务根据设备搜索指令获取到远近场设备列表,并将远近场设备列表发送给设备管理服务。
远近场设备列表包括远场设备列表和近场设备列表。其中,远场设备列表中包括的远场设备是指从云服务器中获取到的已注册设备,近场设备列表中包括的近场设备是指通过近场通信扫描到的设备。在远场设备列表和近场设备列表中,设备信息包括但不限于设备名称、设备标识、设备类型等。
传输管理服务接收到设备搜索指令时,根据设备搜索指令中携带的待搜索的设备类型以及搜索方式执行相关设备搜索操作,如执行近场设备扫描操作以及在云服务器中获取相关设备信息的操作,得到远场设备列表和近场设备列表,并将远场设备列表和近场设备列表发送给设备管理服务。
S1.5:平板中设备管理服务根据远近场设备列表进行设备过滤,并将过滤后得到的设备信息上报给教育APP。
进行设备过滤,确定能够与平板联动的台灯信息,并发送给教育APP。
其中,设备管理服务可以对远场设备列表和近场设备列表执行取交集的操作,过滤掉仅存在于远场设备列表或仅存在于近场设备列表中的台灯,将既存在于远场设备列表又存在于近场设备列表中的台灯,作为能够与平板联动的台灯信息。这样,设备管理服务能够过滤掉未在云服务器中注册的台灯,也能过滤掉无法与平板进行近场通信的台灯。
在另一种可选的实施方式中,若平板和台灯无论是否处于同一个局域网下,平板的传输管理服务可以根据设备搜索指令获取通信设备列表和注册设备列表。其中,通信设备列表中包括的设备是指通过近场通信或远场通信扫描到的设备,注册设备列表中包括的设备是指从云服务器中获取到的已注册设备。近场设备列表中包括的近场设备是指通过近场通信扫描到的设备。在通信设备列表和注册设备列表中,设备信息包括但不限于设备名称、设备标识、设备类型等。
平板中传输管理服务将通信设备列表和注册设备列表发送至设备管理服务,设备管理服务根据通信设备列表和注册设备列表进行设备过滤,并将过滤后得到的设备信息上报给教育APP。其中,设备管理服务可以对通信设备列表和注册设备列表执行取交集的操作,过滤掉仅存在于通信设备列表或仅存在于注册设备列表中的台灯,将既存在于通信设备列表又存在于注册设备列表中的台灯,作为能够与平板联动的台灯信息。这样,设备管理服务能够过滤掉未在云服务器中注册的台灯,也能过滤掉无法与平板进行近场通信的台灯。
2.虚拟相机使能阶段,包括以下步骤:
S2.1:平板的教育APP确定待联动的台灯。
S2.2:平板的教育APP对台灯进行设备校验、设备连接,并获取到台灯具有支持虚拟化相机的能力。
S2.3:平板的教育APP向硬件虚拟化服务发送虚拟相机使能请求。
虚拟相机使能请求用于指示在虚拟相机HAL中注册虚拟相机。虚拟相机使能请求中可以包括但不限于请求类型、设备名称、设备标识、设备类型以及虚拟相机的标识。
S2.4:平板的硬件虚拟化服务向虚拟相机HAL注册虚拟相机。
硬件虚拟化服务接收到虚拟相机使能请求之后,根据虚拟相机使能请求中向虚拟相机HAL注册相应的虚拟相机。
S2.5:平板的虚拟相机HAL在虚拟相机注册完成之后,向教育APP发送虚拟相机使能成功指示。
3.虚拟相机预览访问阶段:
S3.1:平板中硬件虚拟化API向相机服务发送虚拟相机访问指令。
虚拟相机访问指令,指的是用于调用虚拟相机的指令。其中,虚拟相机访问指令中可以包括但不限于指令类型、虚拟相机ID和摄像头配置参数。
S3.2:平板中相机服务根据虚拟相机访问指令向虚拟相机HAL发送图像预览请求。
相机服务接收到虚拟相机访问指令后,根据虚拟相机ID生成相应的图像预览请求发送至虚拟相机HAL。
其中,该图像预览请求用于请求预览图像数据流。示例性的,该图像预览请求中可以包括但不限于请求标识、虚拟相机ID和摄像头配置参数等。
S3.3:平板中虚拟相机HAL向硬件虚拟化服务发送图像预览请求。
虚拟相机HAL接收到图像预览请求后,根据图像请求中携带的虚拟相机ID,确定匹配的虚拟化硬件标识。
在本实施例中,虚拟相机HAL根据虚拟相机ID,以及虚拟相机ID与台灯摄像头的映射关系,确定联动的台灯摄像头,并根据确定的虚拟化硬件标识生成相应的图像请求发送至硬件虚拟化服务。
示例性的,该图像预览请求中可以包括但不限于请求标识、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。
S3.4:平板中硬件虚拟化服务向传输管理服务发送图像预览请求。
硬件虚拟化服务将图像预览请求发送至传输管理服务。其中,图像预览请求中可以包括但不限于请求标识、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。
在平板中硬件虚拟化服务向传输管理服务发送图像预览请求时,如果发现未与台灯建立数据通道,则生成数据通道建立请求,发送至传输管理服务中。数据通道建立请求,用于指示与台灯之间传输数据。其中,数据通道建立请求中可以包括但不限于会话标识、连接信息、数据编解码模式等。
平板中传输管理服务接收到数据通道建立请求,根据数据通道建立请求携带的信息与台灯建立数据通道连接,也即在平板和台灯之间建立数据通道。进而,平板中传输管理服务和台灯中互联服务可以基于该数据通道传输各种数据,包括但不限于图像数据。
在数据通道建立成功之后,平板中传输管理服务向平板中硬件虚拟化服务发送数据通道成功连接指示,台灯中互联服务向硬件抽象服务中相机组件发送数据通道成功连接指示。其中,数据通道成功连接指示中可以包括但不限于连接成功标识以及数据通道相关信息。
S3.5:平板中传输管理服务向台灯的互联服务传输图像预览请求。
平板中传输管理服务根据图像预览请求中携带的设备信息确定相应的控制通道,并在该控制通道中向台灯的互联服务传输图像预览请求。
S3.6:台灯中互联服务向相机驱动下发图像预览请求。
台灯中互联服务接收到图像预览请求之后,根据虚拟化硬件标识确定响应的硬件驱动(在本实施例中为确定相机驱动),并将相应的图像预览请求发送至相机驱动。
S3.7:台灯中相机驱动驱动摄像头采集图像,并将预览图像数据通过数据通道传输至平板的硬件虚拟化服务。
相机驱动使摄像头开启,并驱动摄像头以图像预览请求中携带的摄像头配置参数采集图像,得到预览图像数据流,并将预览图像数据流通过硬件抽象服务发送至互联服务,以使互联服务在数据通道中向平板的硬件虚拟化服务中持续传输预览图像数据流。其中,关于预览图像数据流的分包组包及编解码流程,此处不再赘述。
S3.8:平板中硬件虚拟化服务将预览图像数据发送至虚拟相机HAL。
硬件虚拟化服务持续接收到预览图像数据流,将预览图像数据流发送至虚拟相机HAL。
S3.9:平板中虚拟相机HAL将预览图像数据发送至相机服务。
此时,虚拟相机HAL持续获取到台灯摄像头采集的预览图像数据,并将预览图像数据持续发送至相机服务。
S3.10:平板中相机服务将预览图像数据发送至教育APP。
S3.11:平板中教育APP显示预览图像。
4.虚拟相机拍照阶段
S4.1:响应于接收到的用户操作,平板中教育APP向硬件虚拟化服务发送拍照请求。
用户操作例如可以是点击拍照选项的操作。响应于接收到的用户操作,平板中教育APP向硬件虚拟化服务发送拍照请求。
其中,拍照请求中可以包括但不限于拍摄图像序号、设备信息(即台灯信息)、虚拟化硬件标识(即台灯摄像头标识)和摄像头配置参数等。摄像头配置参数包括但不限于图像分辨率。
其中,拍照请求还可以携带任务标识,以保证多拍照任务的有序管理。
S4.2:平板中硬件虚拟化服务向传输管理服务发送拍照请求。
S4.3:平板中传输管理服务将向台灯的互联服务传输拍照请求。
平板中传输管理服务根据图像预览请求中携带的设备信息确定相应的控制通道,并在该控制通道中向台灯的互联服务传输图像预览请求。
S4.4:台灯中互联服务向相机驱动下发拍照请求。
台灯中互联服务接收到图像预览请求之后,根据虚拟化硬件标识确定响应的硬件驱动(在本实施例中为确定相机驱动),并将相应的拍照请求发送至相机驱动。
S4.5:台灯中相机驱动驱动摄像头拍摄图像,并将拍摄图像数据通过数据通道传输至平板的硬件虚拟化服务。
相机驱动驱动摄像头以拍照请求中携带的摄像头配置参数采集图像,得到拍摄图像数据,并将拍摄图像数据通过硬件抽象服务发送至互联服务,以使互联服务在数据通道中向平板的硬件虚拟化服务中持续传输拍摄图像数据。其中,关于拍摄图像数据的分包组包及编解码流程,此处不再赘述。
S4.6:平板中硬件虚拟化服务将拍摄图像数据发送至教育APP。
S4.7:平板中教育APP显示拍摄图像。
该技术方案,中心侧设备可以直接采用手机、平板电脑等电子设备,IoT设备与中心侧设备可以分离设置,因此中心侧设备不需要配置带有可升降式摄像头的厚重底座,IoT设备,例如台灯的摆放方式较为自由,可以根据实际需要调整屏幕角度。并且在中心侧设备上安装的教育应用程序,还具备较高的兼容性和拓展性,易于实现推广,可为教育提供极大的便利。
通过以上的步骤实现中心侧设备与IoT设备建立连接并协同实现拍照的过程,但是当教育APP通过DVSDK接口模块拉起DMSDP服务时,也即实现以上的硬件虚拟化服务时,DVSDK版本与DMSDP中AIDL版本不匹配会导致兼容性问题,使得以上的拍照过程出现异常中断,大大浪费了用户的时间,降低了效率。因此本申请的方案在IoT设备未启动,也即以上的步骤S01前,设计了对于兼容性的检测步骤,以尽早发现兼容性的问题。可以理解的是,该方法的执行顺序也可以设置在S1.1之间,同样能够实现及早发现兼容性的问题。
参见图5,该图为本申请实施例提供的设备虚拟化服务的兼容性验证方法的流程图。
该设备虚拟化服务的兼容性验证方法包括以下步骤:
S51:教育APP访问DMSDP提供的设备虚拟化服务。
DMSDP为能力平台,不仅需要通过AIDL跨进程和应用层交互,也需要通过传输通道跨设备和IoT设备侧交互。因此教育APP首先需要通过DVSDK进行接口访问,访问DMSDP模块提供的DV服务能力。
具体的,DMSDP与DVSDK两个进程间通过AIDL接口进行通信。也即DVSDK可以通过AIDL接口访问DMSDP。
S52:DVSDK请求获取当前DMSDP的版本号。
一并参见图6,该图为本申请实施例提供的一种处理多应用与设备虚拟服务间交互兼容性的架构图。
其中,中心侧设备上安装有多个三方APP,多个三方APP的DVSDK接口模块的版本可以相同也可以不同,本申请实施例不作具体限定。
DMSDP的升级,意味着DMSDP AIDL接口的进行了变换。为确保兼容问题,也即低版本的DVSDK接口模块能够访问高版本的DMSDP模块,本申请采用的技术方案是:
首先,避免修改已有的AIDL接口,如果真的需要修改,改用新增的方式。也即如果AIDL接口1是当前版本的接口,版本更新后的接口为AIDL接口2,则不会使AIDL接口2替换AIDL接口1,而是在保留AIDL接口1的基础上新增AIDL接口2。采用该方式更新后,原先连接AIDL接口1而不支持连接AIDL接口2的DVSDK,仍然可以通过AIDL接口1与DMSDP通信不受影响。
其次,每当新增AIDL接口的时候,确保该新增的AIDL接口在AIDL接口文件的末尾添加,使得前端未涉及更新的AIDL接口文件维持不变。从而即使DMSDP模块升级了,集成了低版本DVSDK的应用也可以使用DMSDP的能力。
此外,为了确保DMSDP与DVSDK之间的高效交互,在DMSDP中新增了一个版本管理模块。DMSDP的版本号随版本的更新而增加。
在一些实施例中,版本每更新一次,DMSDP的版本号单调递增。以当前DMSDP的版本为1.0.0为例,版本更新一次后,版本管理模块中的版本号以计数的方式加一,DMSDP的版本变为1.0.1。每次版本的更新中,AIDL接口的新增数量可以为一个或多个,本申请实施例不作具体限定。
在另一些实施例中,以当前DMSDP的版本为1.0.0为例,在版本更新过程中,每新增一个AIDL接口,版本管理模块中的版本号以计数的方式加一,DMSDP的版本变为1.0.1。
与此同时,提供给应用的DVSDK也存在一个版本号与DMSDP中的版本号强相关。
在一些实施例中,提供给应用的DVSDK的版本号与DMSDP的版本号相同时,表征DVSDK能够向上兼容对应该版本号的DMSDP的版本。例如DVSDK的版本号为1.0.0.则表明DVSDK能够兼容1.0.0及以上版本(1.0.1、1.0.2…)的DMSDP。
在另一些实施例中,提供给应用的DVSDK的版本号与DMSDP的版本号之间存在映射关系。根据DVSDK的版本号能够确定其支持的最低DMSDP的版本。例如DVSDK的版本号为2.0.0。通过映射关系确定DVSDK支持的最低的DMSDP的版本为1.0.0,则此时表明DVSDK能够兼容1.0.0及以上版本(1.0.1、1.0.2…)的DMSDP。
DVSDK通过AIDL接口访问版本管理模块,获取当前DMSDP的版本。
S53:DMSDP向DVSDK返回当前DMSDP的版本号。
DMSDP通过AIDL接口向DVSDK返回自身当前的版本号。
S54:DVSDK将当前DMSDP的版本号与自身的版本号作对比,判断是否兼容。
DVSDK将获取的当前DMSDP的版本号与自身的版本号作对比,若是DVSDK的版本号低于或是等于DMSDP的版本号,则表示兼容性验证通过;当DVSDK的版本号高于DMSDP的版本号,则表示兼容性验证失败。
S55:返回兼容性验证结果。
兼容性验证通过时,中心侧设备的APP可以正常访问DMSDP提供的设备虚拟化服务,可以继续执行S56;当兼容性验证不通过时,可以向APP返回不兼容的错误码,并提示用户需要升级DMSDP版本。
S56:教育APP连接DVSDK接口模块。
S57:DVSDK连接DMSDP提供的设备虚拟化服务。
综上所述,本申请实施例提供的方案,电子设备的DMSDP版本每更新一次,DMSDP的版本号单调递增。为了使低版本的DVSDK接口模块能够访问高版本的DMSDP,避免修改已有的AIDL接口,如果真的需要修改,改用新增的方式。每当新增AIDL接口的时候,确保该新增的AIDL接口在AIDL接口文件的末尾添加,使得前端未涉及更新的AIDL接口文件维持不变。从而即使DMSDP模块升级了,集成了低版本DVSDK的应用也可以使用DMSDP的能力。对DMSDP的兼容性验证过程可以在物联网设备发现阶段之前进行,保证了用户能够更早一步准确的知道物联网控制流程是否可以正常进行,确定是否需要升级DMSDP版本,从而提升了效率。
由于DVSDK是一个开放的接口,而DMSDP是一个闭源的模块,并且提供了跨设备的能力,为精准管控跨设备场景的信息安全问题,需要确保只有中心侧设备厂商授权的三方应用以及中心侧设备厂商的应用才可以访问DMSDP服务,因此需要设计一种机制去解决不同应用访问DMSDP服务的安全问题,下面具体说明。
在一些实施例中,对APP的鉴权步骤可以每当APP通过DVSDK调用DMSDP中的接口的时候进行,例如连接、使能、预览、拍照等。可以理解的是,即使是中心侧设备厂商授权的三方应用,也可能仅授权该三方应用使用DMSDP服务中的部分而不是全部,因此为了避免三方应用出现权限使用过度的情况,鉴权可以进行多次,例如三方应用进行预览流程鉴权通过后,在进行拍照流程时,也需要再次鉴权。
一并参见图7和图8。其中,图7为本申请实施例提供的另一种设备虚拟化服务的兼容性验证方法的流程图;图8为本申请实施例提供的另一种处理多应用与设备虚拟服务间交互兼容性的架构图。
继续以APP为教育APP为例进行说明,在兼容性验证的基础上,该方法还包括:
S58:对教育APP进行鉴权。
每当应用需要通过DVSDK调用DMSDP中的接口的时候,对APP进行鉴权。
DMSDP提供的设备管理服务中,集成了鉴权模块。鉴权模块可以根据教育APP的程序包名以及签名指纹,确定应用程序层的教育APP是三方应用还是中心侧设备厂商的自研应用。
其中,签名指纹是中心侧设备厂商的特有认证标识,用于直接表明教育APP的自身,具有不可伪造性,相当于防伪标识。中心侧设备厂商在研发APP过程中,会在其中添加该签名指纹。中心侧设备厂商研发的不同APP的签名指纹可以相同也可以不同,本申请实施例不作具体限定。
如果是来自中心侧设备厂商的自研应用,则可直接通过鉴权。
如果是来自三方应用,则可以通过云端鉴权的方式确定其是否能够访问DMSDP的能力。
在一些实施例中,中心侧设备厂商授权的三方应用可以在中心侧设备厂商云服务注册,通过访问云服务,确定是否该三方应用为已在云服务注册的安全应用,如果是安全应用,则通过鉴权;如果不是安全应用,则DMSDP直接返回鉴权失败的错误码,阻拦其访问DMSDP的能力,以排除了不安全应用对于中心侧设备乃至对IoT设备的攻击。
S59:返回鉴权结果。
鉴权通过时,鉴权结果为通过;鉴权失败时,鉴权结果为鉴权失败的错误码。
进一步的,以上说明中仅以中心侧设备的DVSDK与DMSDP的兼容验证为例进行说明,实际应用中,由于中心侧设备需要与IoT设备建立连接,IoT设备也包括对应的DMSDP模块,因此还需要考虑与IoT设备的兼容性问题,下面具体说明。
一并参见图9和图10。其中,图9为本申请实施例提供的又一种设备虚拟化服务的兼容性验证方法的流程图;图10为本申请实施例提供的另一种处理多应用与设备虚拟服务间交互兼容性的方案架构图。
图9所示方法在图7的基础上,还包括以下步骤:
S60:发送设备发现指令。
响应于用户操作,平板的教育APP通过DVSDK向DMSDP的设备管理服务发送设备发现指令。设备发现指令,用于指示查找能够与平板建立连接的IOT设备。
S61:建立传输通道。
S62:设备发现连接。
S63:IoT设备连接中心侧设备。
S64:IoT设备的DVSDK获取包括IoT侧DMSDP版本号的设备能力信息。
S65:DVSDK通过IoT设备侧的网络传输模块向中心设备侧的网络传输模块返回设备能力信息。
S66:中心设备侧的网络传输模块向传输通道返回设备能力信息。
S67:传输通道向设备管理服务返回设备能力信息。
S68:确定最低DMSDP版本号。
在一些实施例中,中心设备侧DMSDP的版本管理模块确定最低DMSDP版本号。
其中,最低DMSDP版本号为IoT侧DMSDP的版本号与中心设备侧DMSDP的版本号中的最小值。
例如,IoT侧DMSDP的版本号为1.0.2,中心设备侧DMSDP的版本号为1.1.1,则最低版本号为1.0.2。这样取值的意义是:由于DVSDK为向上兼容DMSDP的版本,当DVSDK能够兼容最低DMSDP版本时,则可以同时兼容为IoT侧DMSDP以及中心设备侧DMSDP。
S69:DMSDP向DVSDK返回最低DMSDP版本号。
S70:DVSDK将最低DMSDP版本号与自身的版本号作对比,判断是否兼容。
DVSDK将获取的最低DMSDP的版本号与自身的版本号作对比,若是DVSDK的版本号低于或是等于最低DMSDP的版本号,则表示兼容性验证通过;当DVSDK的版本号高于该最低DMSDP的版本号,则表示兼容性验证失败。
S71:返回最终兼容性验证结果。
兼容性验证通过时,中心侧设备的APP可以正常访问DMSDP提供的设备虚拟化服务,进入后续的虚拟相机服务使能阶段;当兼容性验证不通过时,表示用户需要升级IoT设备的DMSDP版本。
可以理解的是,以上说明中的IoT侧DMSDP的版本号信息携带在设备能力信息中,在另一些实施例中,IoT侧DMSDP的版本号还可以携带在其它的信息中,或者以独立的版本号信息由IoT发出,例如IoT侧发出直接发出版本号信息,其中携带有IoT侧DMSDP的版本号。
在一些实施例中,IoT侧DMSDP的更新方式与物联网设备侧的DMSDP的更新方式相同,再次不再赘述。
综上所述,利用本申请实施例提供的方案,当与物联网设备建立连接通道后,电子设备的DMSDP接收物联网设备发送的版本号信息,版本号信息用于指示物联网设备的DMSDP的版本号;电子设备的DMSDP根据版本号信息,确定第一版本号与物联网设备的DMSDP的版本号中的最低版本号;当根据DVSDK的版本号和最低版本号,确定DVSDK的版本低于或等于最低版本号对应的版本时,对物联网设备的DMSDP的兼容性验证通过;否则,对物联网设备的DMSDP的兼容性验证失败
因此够实现对IoT侧DMSDP的兼容性验证,该兼容性验证的过程发生在虚拟相机服务使能阶段前,保证了用户能够更早一步准确的知道台灯控制流程是否可以正常进行,从而确定是否需要升级IoT侧的DMSDP版本,从而提升了效率。
IoT侧设备除了需要进行DMSDP的版本兼容性验证外,该需要进行对设备能力进行兼容性验证,有可能手机/平板等中心侧设备所需要的能力,IoT设备并不具备,例如APP需要通过中心侧设备控制IoT设备的摄像头去拍照,而IoT设备的摄像头不具备拍照能力。
一并参见图11和图12。其中,图11为本申请实施例提供的再一种设备虚拟化服务的兼容性验证方法的流程图;图12为本申请实施例提供的再一种处理多应用与设备虚拟服务间交互兼容性的架构图。
以下方法中以IoT设备的相机支持预览功能但不支持拍照功能为例进行说明,当IoT设备的相机支持拍照功能时的实现方式原理类似,在此不再赘述。
本申请实施例提供的方法可以在图9中的S71后继续进行。
S80:将设备能力信息缓存到缓存对象中。
设备能力信息也即S67中获取的设备能力信息。设备能力信息用于指示所述物联网设备支持的设备虚拟化服务,所述设备虚拟化服务包括但不限于虚拟化相机服务和虚拟化麦克风服务中的至少一种。
DMSDP设计设备能力管理模块。
设备能力管理模块的运作机制为:在中心侧设备和IoT设备连接的流程中,当传输通道建立完成后,IoT设备通过传输通道向中心侧设备发送设备能力信息。中心侧设备接收到设备能力信息后,将其缓存到一个缓存对象Profile Management中,ProfileManagement中保存了IoT设备的所有服务以及该服务所具备的能力,通过服务序号(service Id)和设备序号(device Id)作为键(key)来保存。
设备序号(device Id)用于表示相机个体,IoT设备上可以包括一个或多个摄像头,每个摄像头的设备序号不同,例如摄像头1的device Id为1,摄像头2的device Id为2。Profile Management存储各个摄像头分别能够提供的服务。每个摄像头能够提供的服务与能力可以相同,也可以不同,本申请实施例不作限定。
S81:调用DMSDP使能接口,注册虚拟相机服务。
如果APP需要通过DMSDP访问IoT设备端的虚拟相机服务,以进行预览或拍照,则首先需要调用DMSDP使能接口,使能虚拟相机服务,也即注册虚拟相机服务。
S82:根据缓存对象缓存的设备能力信息确定IoT设备是否具备需要使能的服务。
在虚拟相机服务使能流程中,首先从Profile Management中以service Id和device Id作为key寻找对端IoT设备是否具备需要使能的设备虚拟化服务,如果没有,则表示应用需要使能的虚拟化服务超出了IoT设备的服务能力范围,使能失败,直接返回能力不支持,以尽早实现对IoT设备的服务校验。
如果Profile Management存在需要使能的设备虚拟化服务则流程继续。
S83:进行虚拟相机服务使能。
关于虚拟相机服务使能的具体流程可以参见以上图4中的说明,本申请实施例在此不再赘述。
本申请实施例中以使能虚拟相机服务为例,也即中心侧设备能够利用IoT设备的相机进行预览或拍照,将IoT设备的相机虚拟为自身的相机。当进行虚拟麦克风服务时的原理类似,在此不再赘述。
S84:将服务序号与相机能力的对应关系存储至相机能力缓冲器中。
虚拟相机服务使能成功后,将使能成功的相机以service Id也即具体的设备虚拟化服务为key;以设备虚拟化服务的能力为值(value),形成键值对,缓存到相机能力缓冲器(buffer)中。本实施例中,设备虚拟化服务的能力也即虚拟化相机的能力,包括拍照和预览中的一种或多种。
当APP通过DMSDP控制IoT设备打开相机预览或者拍照的时候,从相机能力buffer以service Id为key取值,如果能取到value,且value表示支持对应的预览或者支持拍照,则流程继续。如果取不到value,则表示此时IoT设备的相机不支持选定的能力。
例如:service Id为1表示虚拟化相机服务,service Id为2虚拟化麦克风服务为例,IoT设备的相机仅支持预览能力,不支持拍照能力,则以1为key从相机能力buffer中取值时,能取到对应预览能力的value,不能取到对应拍照能力的value。
S85:发送虚拟相机预览访问指令。
教育APP通过DVSDK接口向DMSDP发送虚拟相机预览访问指令。
S86:根据服务序号从相机能力缓冲器中查询相机是否支持预览。
DMSDP的能力管理模块根据虚拟相机服务对应的service Id从相机能力buffer中取值,如果能取到value,且value表示支持预览,则流程继续。如果取不到value,则表示此时IoT设备的相机不支持预览。
S87:继续进行虚拟相机预览访问流程。
关于虚拟相机预览访问流程的具体流程可以参见以上图4中的说明,本申请实施例在此不再赘述。
S88:发送拍照请求。
教育APP通过DVSDK接口向DMSDP发送拍照请求。
S89:根据服务序号从相机能力缓冲器中查询相机是否支持拍照。
DMSDP的能力管理模块根据虚拟相机服务对应的service Id从相机能力buffer中取值,如果能取到value,且value表示支持拍照,则流程继续。如果取不到value,则表示此时IoT设备的相机不支持拍照。
S90:返回不支持拍照的错误码。
当相机不支持拍照时,返回不支持拍照的错误码。
当相机支持拍照时,继续进行虚拟相机拍照的流程,具体参见图4中的相关说明,本申请实施例在此不再赘述。
综上,本申请实施例提供的方案,电子设备的DMSDP以设备能力信息中的服务序号和设备序号为键,将键存储在缓存对象中。当应用程序使能电子设备的DMSDP的设备虚拟化服务时,电子设备的DMSDP当在缓存对象存储的键中,寻找到与需要使能的设备虚拟化服务对应的服务序号和设备序号匹配的键时,确定物联网设备支持需要使能的设备虚拟化服务,否则,确定物联网设备不支持需要使能的设备虚拟化服务。对设备虚拟化服务的使能结束后,电子设备的DMSDP以使能结束的设备虚拟化服务为键,以使能结束的设备虚拟化服务的能力为值,形成键值对;电子设备的DMSDP将键值对存储在能力缓冲器中。当应用程序访问使能结束的设备虚拟化服务的目标能力时,电子设备的DMSDP以使能结束的设备虚拟化服务为键,当能力缓冲器中获取到目标能力对应的值时,确定物联网设备支持目标能力,否则确定物联网设备不支持目标能力。
因此,以上设备能力管理模块的设计能够确保整个虚拟化服务的应用流程中,在准备工作前及时对IoT侧能够提供的虚拟化服务以及虚拟化服务的能力进行校验,避免了流程过程中出现奔溃的问题,提高了效率与用户体验。
基于以上实施例提供的设备虚拟化服务的兼容性验证方法,本申请还提供了一种电子设备。
继续参见图2a所示的电子设备的示意图。
本申请实施例提供的电子设备包括:存储器(也即内部存储器121)和处理器110。
其中,存储器121与处理器110耦合。
存储器121存储有程序指令,当所述程序指令由处理器110执行时,使得电子设备实现以上实施例中所述的设备虚拟化服务的兼容性验证方法。
基于以上实施例提供的设备虚拟化服务的兼容性验证方法,本申请还提供了一种物联网设备。
继续参见图3a所示的物联网设备的示意图。
本申请实施例提供的物联网包括:摄像头201、存储器203和处理器210。
其中,存储器203与处理器210耦合,摄像头201与处理器210耦合。在一些实施例中,摄像头201的数量可以为多个。
利用本申请实施例提供的电子设备,电子设备的DMSDP版本每更新一次,DMSDP的版本号单调递增。为了使低版本的DVSDK接口模块能够访问高版本的DMSDP,避免修改已有的AIDL接口,如果真的需要修改,改用新增的方式。每当新增AIDL接口的时候,确保该新增的AIDL接口在AIDL接口文件的末尾添加,使得前端未涉及更新的AIDL接口文件维持不变。从而即使DMSDP模块升级了,集成了低版本DVSDK的应用也可以使用DMSDP的能力。对DMSDP的兼容性验证过程可以在物联网设备发现阶段之前进行,保证了用户能够更早一步准确的知道物联网控制流程是否可以正常进行,确定是否需要升级DMSDP版本,从而提升了效率。
此外,物联网设备可以通过向电子设备发送版本号信息,指示物联网设备的DMSDP的版本号。以使电子设备根据该版本号信息实现对IoT侧DMSDP的兼容性验证,该兼容性验证的过程发生在虚拟相机服务使能阶段前,保证了用户能够更早一步准确的知道台灯控制流程是否可以正常进行,从而确定是否需要升级IoT侧的DMSDP版本,从而提升了效率。
进一步的,基于以上实施例提供的电子设备和物联网设备,本申请实施例还提供了一种协同工作系统。
参见图13,该图为本申请实施例提供的一种协同工作系统的示意图。
该协同工作系统30包括电子设备10和IoT设备20。
电子设备10也即中心侧设备。关于电子设备10和IoT设备20的具体实现方式可以参见以上实施例中的相关说明,本申请实施例在此不再赘述。
综上所述,利用本申请实施例提供的协同工作系统中,电子设备的DMSDP版本每更新一次,DMSDP的版本号单调递增。为了使低版本的DVSDK接口模块能够访问高版本的DMSDP,避免修改已有的AIDL接口,如果真的需要修改,改用新增的方式。每当新增AIDL接口的时候,确保该新增的AIDL接口在AIDL接口文件的末尾添加,使得前端未涉及更新的AIDL接口文件维持不变。从而即使DMSDP模块升级了,集成了低版本DVSDK的应用也可以使用DMSDP的能力。对DMSDP的兼容性验证过程可以在物联网设备发现阶段之前进行,保证了用户能够更早一步准确的知道物联网控制流程是否可以正常进行,确定是否需要升级DMSDP版本,从而提升了效率。
并且,还能够实现对物联网设备侧DMSDP的兼容性验证,该兼容性验证的过程发生在虚拟相机服务使能阶段,保证了用户能够更早一步准确的知道台灯控制流程是否可以正常进行,从而确定是否需要升级物联网设备侧的DMSDP版本,提升了效率。此外,还能够确保整个虚拟相机应用流程在准备工作前及时对物联网设备侧的能力进行校验,避免了流程过程中出现奔溃的问题,提高了效率与用户体验。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的设备虚拟化服务的兼容性验证方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的设备虚拟化服务的兼容性验证方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的设备虚拟化服务的兼容性验证方法。
其中,本实施例提供的电子设备(如平板、手机、IOT设备等)、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (22)

1.一种设备虚拟化服务的兼容性验证方法,其特征在于,应用于电子设备,所述电子设备上安装有应用程序、设备虚拟化软件开发套件DVSDK和分布式移动感知开发平台DMSDP,所述电子设备用于连接物联网设备,所述方法包括:
当所述应用程序通过所述DVSDK访问所述电子设备的DMSDP的设备虚拟化服务时,所述DVSDK向所述电子设备的DMSDP请求第一版本号;所述第一版本号随所述电子设备的DMSDP版本更新单调递增,所述电子设备的DMSDP更新时,新增的安卓接口定义语言AIDL接口添加在所述电子设备的DMSDP的AIDL接口文件末尾;
当根据所述DVSDK的版本号和所述第一版本号,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;否则,对所述电子设备的DMSDP的兼容性验证失败。
2.根据权利要求1所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述当根据所述DVSDK的版本号和所述第一版本号,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;否则,对所述电子设备的DMSDP的兼容性验证失败,具体包括:
当所述DVSDK的版本号低于或等于所述第一版本号时,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本,对所述电子设备的DMSDP的兼容性验证通过;
当所述DVSDK的版本号高于所述第一版本号时,确定所述DVSDK的版本高于所述电子设备的DMSDP的版本,对所述电子设备的DMSDP的兼容性验证失败。
3.根据权利要求1所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述当根据所述DVSDK的版本号和所述第一版本号,确定所述DVSDK的版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;否则,对所述电子设备的DMSDP的兼容性验证失败,具体包括:
根据所述DVSDK的版本号和映射关系确定所述DVSDK支持的最低版本;
当所述DVSDK支持的最低版本低于或等于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证通过;
当所述DVSDK支持的最低版本高于所述电子设备的DMSDP的版本时,对所述电子设备的DMSDP的兼容性验证失败。
4.根据权利要求1所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述方法还包括:
当所述电子设备的DMSDP更新时,每新增一个所述AIDL接口,所述第一版本号递增1。
5.根据权利要求1所述的设备虚拟化服务的兼容性验证方法,其特征在于,当对所述电子设备的DMSDP的兼容性验证失败时,所述方法还包括:
向所述应用程序返回对所述电子设备的DMSDP的兼容性验证失败的错误码。
6.根据权利要求1所述的设备虚拟化服务的兼容性验证方法,其特征在于,当对所述电子设备的DMSDP的兼容性验证通过后,所述方法还包括:
对所述应用程序进行鉴权;
当所述应用程序的鉴权通过后,允许所述应用程序继续访问所述电子设备的DMSDP的设备虚拟化服务。
7.根据权利要求6所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述对所述应用程序进行鉴权,具体包括:
当获取到所述应用程序的认证标识,且所述认证标识为指定认证标识时,所述应用程序的鉴权通过;否则,确定所述应用程序是否进行了云服务注册,若已进行了云服务注册,则所述应用程序的鉴权通过,若未进行云服务注册,则所述应用程序的鉴权不通过。
8.根据权利要求7所述的设备虚拟化服务的兼容性验证方法,其特征在于,当所述应用程序的鉴权不通过时,所述方法还包括:
所述电子设备的DMSDP向所述DVSDK返回鉴权失败的错误码,并阻拦所述DVSDK对所述电子设备的DMSDP的访问。
9.根据权利要求1-8中任一项所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述方法还包括:
当与所述物联网设备建立连接通道后,所述电子设备的DMSDP接收所述物联网设备发送的版本号信息,所述版本号信息用于指示所述物联网设备的DMSDP的版本号;
所述电子设备的DMSDP根据所述版本号信息,确定所述第一版本号与所述物联网设备的DMSDP的版本号中的最低版本号;
当根据所述DVSDK的版本号和所述最低版本号,确定所述DVSDK的版本低于或等于所述最低版本号对应的版本时,对所述物联网设备的DMSDP的兼容性验证通过;否则,对所述物联网设备的DMSDP的兼容性验证失败。
10.根据权利要求9所述的设备虚拟化服务的兼容性验证方法,其特征在于,当对所述物联网设备的DMSDP的兼容性验证失败时,所述方法还包括:
向所述应用程序返回对所述物联网设备的DMSDP的兼容性验证失败的错误码。
11.根据权利要求9所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述版本号信息携带在所述物联网设备向所述电子设备发送的设备能力信息中,所述设备能力信息还用于指示所述物联网设备支持的设备虚拟化服务,所述设备虚拟化服务包括虚拟化相机服务和虚拟化麦克风服务中的至少一种。
12.根据权利要求11所述的设备虚拟化服务的兼容性验证方法,其特征在于,当对所述物联网设备的DMSDP的兼容性验证通过时,所述方法还包括:
所述电子设备的DMSDP将所述设备能力信息缓存至缓存对象中;
当所述应用程序使能所述电子设备的DMSDP的设备虚拟化服务时,所述电子设备的DMSDP根据所述缓存对象缓存的设备能力信息确定所述物联网设备是否支持需要使能的设备虚拟化服务;若支持,则继续对所述设备虚拟化服务的使能,否则使能失败。
13.根据权利要求12所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述电子设备的DMSDP将所述设备能力信息缓存至缓存对象中,具体包括:
所述电子设备的DMSDP,以所述设备能力信息中的服务序号和设备序号为键,将所述键存储在所述缓存对象中。
14.根据权利要求13所述的设备虚拟化服务的兼容性验证方法,所述电子设备的DMSDP根据所述缓存对象缓存的设备能力信息确定所述物联网设备是否支持需要使能的设备虚拟化服务,具体包括:
所述电子设备的DMSDP当在所述缓存对象存储的所述键中,寻找到与所述需要使能的设备虚拟化服务对应的服务序号和设备序号匹配的键时,确定所述物联网设备支持所述需要使能的设备虚拟化服务,否则,确定所述物联网设备不支持所述需要使能的设备虚拟化服务。
15.根据权利要求12所述的设备虚拟化服务的兼容性验证方法,其特征在于,对所述设备虚拟化服务的使能结束后,所述方法还包括:
所述电子设备的DMSDP以使能结束的所述设备虚拟化服务为键,以使能结束的所述设备虚拟化服务的能力为值,形成键值对;
所述电子设备的DMSDP将所述键值对存储在能力缓冲器中。
16.根据权利要求15所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述方法还包括:
当所述应用程序访问所述使能结束的设备虚拟化服务的目标能力时,所述电子设备的DMSDP以所述使能结束的设备虚拟化服务为键,当所述能力缓冲器中获取到所述目标能力对应的值时,确定所述物联网设备支持所述目标能力,否则确定所述物联网设备不支持所述目标能力。
17.根据权利要求16所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述设备虚拟化服务为虚拟化相机服务时,所述虚拟化服务的能力为预览或拍照。
18.一种设备虚拟化服务的兼容性验证方法,其特征在于,应用于物联网设备,所述物联网设备上安装有分布式移动感知开发平台DMSDP,所述物联网设备用于连接所述电子设备,所述方法包括:
建立与电子设备的传输通道;
向所述电子设备发送版本号信息,所述版本号信息用于指示所述物联网设备的DMSDP的版本号。
19.根据权利要求18所述的设备虚拟化服务的兼容性验证方法,其特征在于,所述版本号信息携带在所述物联网设备向所述电子设备发送的设备能力信息中,所述设备能力信息还用于指示所述物联网设备支持的设备虚拟化服务,所述设备虚拟化服务包括虚拟化相机服务和虚拟化麦克风服务中的至少一种。
20.一种电子设备,其特征在于,所述电子设备包括:
存储器和处理器,所述存储器与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述电子设备执行权利要求1-17中任一项所述的设备虚拟化服务的兼容性验证方法。
21.一种物联网设备,其特征在于,所述物联网设备包括:
摄像头、存储器和处理器,所述存储器与所述处理器耦合,所述摄像头与所述处理器耦合;
所述存储器存储有程序指令,当所述程序指令由所述处理器执行时,使得所述物联网设备执行权利要求18-19中任一项所述的设备虚拟化服务的兼容性验证方法。
22.一种协同工作系统,其特征在于,所述系统包括至少一个权利要求20中所述的电子设备,还包括至少一个权利要求21中所述的物联网设备。
CN202210860613.7A 2022-07-21 2022-07-21 一种设备虚拟化服务的兼容性验证方法、设备及系统 Pending CN117473465A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210860613.7A CN117473465A (zh) 2022-07-21 2022-07-21 一种设备虚拟化服务的兼容性验证方法、设备及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210860613.7A CN117473465A (zh) 2022-07-21 2022-07-21 一种设备虚拟化服务的兼容性验证方法、设备及系统

Publications (1)

Publication Number Publication Date
CN117473465A true CN117473465A (zh) 2024-01-30

Family

ID=89635272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210860613.7A Pending CN117473465A (zh) 2022-07-21 2022-07-21 一种设备虚拟化服务的兼容性验证方法、设备及系统

Country Status (1)

Country Link
CN (1) CN117473465A (zh)

Similar Documents

Publication Publication Date Title
JP2022525284A (ja) デバイス制御ページ表示方法、関連装置、およびシステム
US20230021994A1 (en) Cross-Device Content Projection Method and Electronic Device
US20230422154A1 (en) Method for using cellular communication function, and related apparatus and system
CN114124980B (zh) 一种启动应用的方法、设备、系统、终端及存储介质
WO2024037032A1 (zh) 账号登录的方法及电子设备
CN113190362A (zh) 服务调用方法、装置、计算机设备及存储介质
CN114928898B (zh) 建立基于WiFi直接连接的会话的方法和装置
CN116056076B (zh) 通信系统、方法及电子设备
WO2022247626A1 (zh) 基于应用身份的访问控制方法、相关装置及系统
WO2022001192A1 (zh) 应用数据的传输方法、终端及系统
CN116982042A (zh) 灵活授权的访问控制方法、相关装置及系统
CN115238299A (zh) 基于安全等级的访问控制方法、相关装置及系统
CN117473465A (zh) 一种设备虚拟化服务的兼容性验证方法、设备及系统
CN117499781A (zh) 一种拍照方法、物联网设备及协同工作系统
CN116414500A (zh) 电子设备操作引导信息录制方法、获取方法和终端设备
CN117499780A (zh) 一种拍照方法、电子设备及协同工作系统
CN116033592B (zh) 蜂窝通信功能的使用方法和装置
CN116366957B (zh) 一种虚拟化相机使能的方法、电子设备及协同工作系统
WO2022228214A1 (zh) 设备发现方法、系统及其电子设备
CN116056176B (zh) 一种apn切换方法及相关设备
JP7515638B2 (ja) カメラ使用方法、電子デバイス、およびカメラ
WO2023142941A1 (zh) 播放记录显示方法及相关设备
CN117478682A (zh) 建立点对点通道的方法、设备及协同工作系统
WO2023142940A1 (zh) 应用组件分享方法及相关设备
CN117472603A (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