WO2023011216A1 - 一种设备热插拔方法及终端设备 - Google Patents

一种设备热插拔方法及终端设备 Download PDF

Info

Publication number
WO2023011216A1
WO2023011216A1 PCT/CN2022/107435 CN2022107435W WO2023011216A1 WO 2023011216 A1 WO2023011216 A1 WO 2023011216A1 CN 2022107435 W CN2022107435 W CN 2022107435W WO 2023011216 A1 WO2023011216 A1 WO 2023011216A1
Authority
WO
WIPO (PCT)
Prior art keywords
real
terminal device
camera
virtual
application
Prior art date
Application number
PCT/CN2022/107435
Other languages
English (en)
French (fr)
Inventor
李毅
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023011216A1 publication Critical patent/WO2023011216A1/zh

Links

Images

Classifications

    • 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/4401Bootstrapping

Definitions

  • the present application relates to the field of terminal technology, and in particular to a device hot swap method and a terminal device.
  • An Android emulator is a software that enables users to run and simulate an Android operating system on a personal computer in addition to the original computer system, and can install, use, and uninstall Android applications. For example, you can install camera applications, music applications, etc. on the Android emulator, but if you need to use cameras, microphones, speakers, etc. on the emulator, you need to pre-configure on the personal computer or externally connected by the user and other equipment.
  • the emulator can obtain the information of the external device on the personal computer in the initial state.
  • the emulator cannot The external device information obtained in the state is updated. That is to say, if an external device is added or unplugged on the personal computer, the application on the emulator may not work normally.
  • an external camera device is connected to the personal computer.
  • the user unplugs the external camera device.
  • the camera application in the emulator cannot be used normally. For example, the user opens the camera application , unable to collect images or unable to switch front and rear cameras, etc., which makes the user experience not good.
  • the present application provides a device hot-swapping method and a terminal device, so as to realize hot-swapping of multiple devices and improve user experience.
  • the present application provides a device hot swapping method, which can be applied to a terminal device equipped with a Windows system, and the terminal device is externally connected to a first real device.
  • the method includes: the Windows system of the terminal device receives the first virtual device identifier sent by the first application, then determines the first real device identifier corresponding to the first virtual device identifier based on the first virtual device identifier, and finally the Windows system of the terminal device.
  • the data collected by the first real device corresponding to the first real device identifier may be acquired, and the data collected by the first real device may be sent to the first application.
  • the Windows system of the terminal device can determine the real device ID corresponding to the virtual device ID based on the virtual device ID, so that when the external device changes, the Windows system can update the information of the external device, so that when using the simulated When using the application in the device, the real device can be called normally, ensuring the normal use of the application and improving the user experience. Moreover, hot swapping of multiple devices can be realized.
  • the Windows system of the terminal device determines the first real device identifier corresponding to the first virtual device identifier, including: the Windows system of the terminal device determines the first real device identifier corresponding to the first mapping relationship.
  • the first real device identifier corresponding to the first virtual device identifier, the first mapping relationship includes a correspondence between the first real device identifier connected to the terminal device and the configured virtual device identifier.
  • the Windows system of the terminal device can determine the real device ID corresponding to the virtual device ID based on the mapping relationship between the virtual device and the real device, thereby calling the real device corresponding to the real device ID to establish a communication connection.
  • the device connected to the terminal device further includes a second real device, and the first real device and the second real device are devices of the same type.
  • the method further includes: the Windows system of the terminal device determines a second real device identifier corresponding to the first virtual device identifier according to a second mapping relationship, the second mapping relationship includes The corresponding relationship between the identifier of the second real device connected to the terminal device and the identifier of the configured virtual device; the Windows system of the terminal device obtains the data collected by the second real device corresponding to the second real device identifier, and converts the second real device The data collected by the device is sent to the first application.
  • the mapping relationship between the virtual device and the real device can be updated as the external device changes.
  • the external devices connected to the terminal device include the same type of external devices, such as the first real device and the second real device
  • the mapping relationship can be updated, that is, the first real device and the corresponding The mapping relationship of the virtual device.
  • the mapping relationship can also be updated, so that the corresponding real device can be found according to the updated mapping relationship, ensuring that the real device can be called normally .
  • the method further includes: the Windows system of the terminal device receives the second virtual device identifier sent by the first application; the Windows system of the terminal device determines the first real Device identifier: the Windows system of the terminal device acquires the data collected by the first real device corresponding to the first real device identifier, and sends the data collected by the first real device to the first application.
  • the same real device can correspond to multiple virtual devices, that is, the same real device ID can be found through different virtual device IDs.
  • the external real device is a camera
  • the virtual device identifiers of the front camera and the rear camera are different, but the external real camera can be invoked as either the front camera or the rear camera.
  • the device connected to the terminal device further includes a second real device
  • the method further includes: the Windows system of the terminal device Receive the second virtual device identifier sent by the first application; the Windows system of the terminal device determines the second real device identifier corresponding to the second virtual device identifier; the Windows system of the terminal device obtains the second real device collection corresponding to the second real device identifier and send the data collected by the second real device to the first application.
  • one real device can correspond to one virtual device. That is, the Windows system of the terminal device can find the first real device ID according to the first virtual device ID, and can find the second real device ID according to the second virtual device ID. For example, when there are two external cameras, one camera may be called as a front camera, and the other camera may be called as a rear camera. Of course, there may also be a situation where one real device corresponds to multiple virtual devices, which is not limited in this application.
  • the first real device includes at least one of the following devices: a camera, a microphone, and a speaker.
  • the terminal device can be connected to devices such as cameras, microphones, speakers, etc., to ensure the normal use of applications under the simulator of the terminal device.
  • the first real device is a device connected to the terminal device through a wired connection or a wireless connection.
  • the external real device can establish a connection with the terminal device in a wireless or wired manner, so that a communication connection is established between the real device and the terminal device.
  • the first real device is a device connected to a terminal device different from the terminal device through a wired connection or a wireless connection.
  • the real device connected to the terminal device may be a device connected to another terminal device. That is, the external real device can be connected to at least one terminal device at the same time.
  • the wired connection includes a Universal Serial Bus (USB) cable and an adapter cable
  • the wireless connection includes Wi-Fi, Bluetooth, ultra-wideband wireless communication UWB, and short-range wireless communication technology NFC.
  • the first application is any application under the system carried by the Android emulator.
  • the emulator on the terminal device may be an Android emulator
  • the first application may be an Android application under the Android emulator, such as a camera application, a video application, a music application, and the like.
  • the first virtual device identifier is pre-stored in the Android system.
  • the Windows system of the terminal device can obtain the real device ID connected to itself, then configure the virtual device ID based on the real device ID, and send the virtual device ID to the Android system.
  • the Android system After the Android system receives the virtual device identifier, it can save the virtual device identifier, so that when the application under the emulator calls the external device, it can find the virtual device identifier.
  • the method further includes: displaying the data collected by the first real device.
  • the data collected by the first real device can be displayed on the application interface of the first application.
  • the real device is a camera
  • the image (or picture) collected by the camera may be displayed on the application interface of the camera for the user to view.
  • the present application provides a terminal device, which includes a display screen; one or more processors; one or more memories; one or more sensors; ; wherein said one or more computer programs are stored in said one or more memories, said one or more computer programs comprising instructions, and when said instructions are called for execution by said one or more processors,
  • the terminal device is made to execute the method of the above first aspect and any possible design of the first aspect thereof.
  • the present application also provides a terminal device, the terminal device includes modules/units that execute the first aspect or any possible design method of the first aspect; these modules/units can be implemented by hardware, or can be The corresponding software implementation is executed by hardware.
  • the present application also provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the instructions are run on a terminal device, the terminal device executes the first aspect and its The method of any possible design in the first aspect.
  • the present application provides a computer program product, which, when the computer program product is run on a terminal device, enables the terminal device to execute the method of the first aspect of the embodiment of the present application and any possible design of the first aspect thereof .
  • FIG. 1 is a schematic diagram of an application scenario provided by an embodiment of the present application
  • FIG. 2 is a schematic structural diagram of an electronic device provided in an embodiment of the present application.
  • FIG. 3A is a structural block diagram of a terminal device provided in an embodiment of the present application.
  • FIG. 3B is a schematic flowchart of a device hot swap method provided in an embodiment of the present application.
  • FIG. 4A is a schematic flow diagram of a device hot swap provided in an embodiment of the present application.
  • FIG. 4B is a schematic flow diagram of a camera device hot swap provided in an embodiment of the present application.
  • FIG. 5 is a schematic diagram of a user interface provided by an embodiment of the present application.
  • FIG. 6 is a flow chart of a device hot swap method provided in an embodiment of the present application.
  • FIG. 7 is a flow chart of another device hot-swapping method provided by the embodiment of the present application.
  • FIG. 8 is a schematic structural diagram of another electronic device provided by an embodiment of the present application.
  • Simulator It is a kind of software that enables users to run and simulate other operating systems in addition to the original computer system on a personal computer, and can install, use, and uninstall other operating system applications.
  • an Android emulator is a software that enables a user to run and simulate an Android operating system on a personal computer in addition to a native computer system, and to install, use, and uninstall Android applications.
  • Hot plugging refers to allowing users to insert, remove and replace devices connected to terminal devices through wired or wireless connections without shutting down the system or cutting off the power supply.
  • these devices can be cameras, Microphones, speakers, etc.
  • the wired connection mode may be a universal serial bus (universal serial bus, USB) line, an adapter cable, etc.
  • the wireless connection mode may be wireless fidelity (wireless fidelity, Wi-Fi), bluetooth, ultra-wideband wireless communication ( Ultra wide band, UWB), near field communication technology (near field communication, NFC) at least one.
  • Application is a software program that can realize one or more specific functions.
  • multiple applications can be installed in a terminal device.
  • camera application SMS application
  • email application email application
  • video application music application
  • WeLink etc.
  • the applications mentioned below may be the applications installed on the terminal device when it leaves the factory, or the applications downloaded by the user from the network or obtained by other terminal devices during the process of using the terminal device.
  • the device hot-swapping method provided in the embodiment of the present application can be applied to a terminal device with a display screen, such as a personal computer (personal computer, PC) (for example, a tablet computer, a notebook computer, a super mobile personal computer ( Ultra-mobile personal computer, UMPC)), smart screen, etc., are not limited in this embodiment of the present application.
  • exemplary embodiments of terminal devices include but are not limited to carrying Or terminal devices with other operating systems.
  • FIG. 1 it is a schematic diagram of an application scenario provided by the embodiment of the present application.
  • the application scenario may include a terminal device 10, an external real device (also called: an external device or a real device), such as a Bluetooth speaker 20, a camera 21, a camera 22, a microphone 23, and a speaker 24.
  • an external real device also called: an external device or a real device
  • the terminal device 10 and the external device may be connected through a USB interface, that is, the connection may be established through a USB cable.
  • the terminal device 10 may also establish a connection with the external device through other methods, for example, establish a connection through Bluetooth (BT), etc., which is not limited.
  • BT Bluetooth
  • the following introduces the structure of the terminal device in the application scenario shown in FIG. 1 .
  • the terminal device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a USB interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, and a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone jack 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a user identification module ( subscriber identification module, SIM) card interface 195 etc.
  • SIM subscriber identification module
  • the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, bone conduction sensor 180M, etc.
  • the processor 110 may include one or more processing units, for example: the processor 110 may include an application processor (application processor, AP), a modem processor, a graphics processing unit (graphics processing unit, GPU), an image signal processor (image signal processor, ISP), controller, memory, video codec, digital signal processor (digital signal processor, DSP), baseband processor, and/or neural network processor (neural-network processing unit, NPU) wait. Wherein, different processing units may be independent devices, or may be integrated in one or more processors. Wherein, the controller may be the nerve center and command center of the terminal device 100 . The controller can generate an operation control signal according to the instruction opcode and timing signal, and complete the control of fetching and executing the instruction.
  • a memory may also be provided in the processor 110 for storing instructions and data.
  • the memory in processor 110 is a cache memory.
  • the memory may hold instructions or data that the processor 110 has just used or recycled. If the processor 110 needs to use the instruction or data again, it can be called directly from the memory. Repeated access is avoided, and the waiting time of the processor 110 is reduced, thereby improving the efficiency of the system.
  • the USB interface 130 is an interface conforming to the USB standard specification, specifically, it can be a Mini USB interface, a Micro USB interface, a USB Type C interface, and the like.
  • the USB interface 130 can be used to connect a charger to charge the terminal device 100, and can also be used to transmit data between the terminal device 100 and peripheral devices.
  • the charging management module 140 is configured to receive a charging input from a charger.
  • the power management module 141 is used for connecting the battery 142 , the charging management module 140 and the processor 110 .
  • the power management module 141 receives the input from the battery 142 and/or the charging management module 140 to provide power for the processor 110 , the internal memory 121 , the external memory, the display screen 194 , the camera 193 , and the wireless communication module 160 .
  • the terminal device 100 may communicate with the real device through a USB interface or Bluetooth.
  • the wireless communication function of the terminal device 100 may be implemented by the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, a modem processor, a baseband processor, and the like.
  • Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals.
  • Each antenna in the terminal device 100 can be used to cover single or multiple communication frequency bands. Different antennas can also be multiplexed to improve the utilization of the antennas.
  • Antenna 1 can be multiplexed as a diversity antenna of a wireless local area network.
  • the antenna may be used in conjunction with a tuning switch.
  • the mobile communication module 150 can provide wireless communication solutions including 2G/3G/4G/5G applied on the terminal device 100 .
  • the mobile communication module 150 may include at least one filter, switch, power amplifier, low noise amplifier (low noise amplifier, LNA) and the like.
  • the mobile communication module 150 can receive electromagnetic waves through the antenna 1, filter and amplify the received electromagnetic waves, and send them to the modem processor for demodulation.
  • the mobile communication module 150 can also amplify the signals modulated by the modem processor, and convert them into electromagnetic waves through the antenna 1 for radiation.
  • at least part of the functional modules of the mobile communication module 150 may be set in the processor 110.
  • at least part of the functional modules of the mobile communication module 150 and at least part of the modules of the processor 110 may be set in the same device.
  • the wireless communication module 160 can provide wireless local area network (wireless local area networks, WLAN) (such as Wi-Fi network), Bluetooth (bluetooth, BT), global navigation satellite system (global navigation satellite system, GNSS) applied on the terminal device 100. ), FM (frequency modulation, FM), NFC, infrared technology (infrared, IR) and other wireless communication solutions.
  • the wireless communication module 160 may be one or more devices integrating at least one communication processing module.
  • the wireless communication module 160 receives electromagnetic waves via the antenna 2 , frequency-modulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110 .
  • the wireless communication module 160 can also receive the signal to be sent from the processor 110 , frequency-modulate it, amplify it, and convert it into electromagnetic waves through the antenna 2 for radiation.
  • the antenna 1 of the terminal device 100 is coupled to the mobile communication module 150, and the antenna 2 is coupled to the wireless communication module 160, so that the terminal device 100 can communicate with the network and other devices through wireless communication technology.
  • the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (general packet radio service, GPRS), code division multiple access (code division multiple access, CDMA), broadband Code division multiple access (wideband code division multiple access, WCDMA), time division code division multiple access (time-division code division multiple access, TD-SCDMA), long term evolution (long term evolution, LTE), the fifth generation (the fifth generation , 5G) mobile communication system, future communication system, such as the sixth generation (6th generation, 6G) system, BT, GNSS, WLAN, NFC, FM and/or IR technology, etc.
  • GSM global system for mobile communications
  • GPRS general packet radio service
  • code division multiple access code division multiple access
  • CDMA broadband Code division multiple access
  • WCDMA wideband code division multiple access
  • the GNSS may include a global positioning system (global positioning system, GPS), a global navigation satellite system (global navigation satellite system, GLONASS), a Beidou navigation satellite system (beidou navigation satellite system, BDS), a quasi-zenith satellite system (quasi -zenith satellite system (QZSS) and/or satellite based augmentation systems (SBAS).
  • GPS global positioning system
  • GLONASS global navigation satellite system
  • Beidou navigation satellite system beidou navigation satellite system
  • BDS Beidou navigation satellite system
  • QZSS quasi-zenith satellite system
  • SBAS satellite based augmentation systems
  • the display screen 194 is used to display the display interface of the application and the like.
  • the display screen 194 includes a display panel.
  • the display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active matrix organic light emitting diode or an active matrix organic light emitting diode (active-matrix organic light emitting diode, AMOLED), flexible light-emitting diode (flex light-emitting diode, FLED), Miniled, MicroLed, Micro-oLed, quantum dot light emitting diodes (quantum dot light emitting diodes, QLED), etc.
  • the terminal device 100 may include 1 or N display screens 194, where N is a positive integer greater than 1.
  • the display screen 194 may be used to display an application interface.
  • Camera 193 is used to capture still images or video.
  • the camera 193 may include a front camera and a rear camera.
  • the internal memory 121 may be used to store computer-executable program codes including instructions.
  • the processor 110 executes various functional applications and data processing of the terminal device 100 by executing instructions stored in the internal memory 121 .
  • the internal memory 121 may include an area for storing programs and an area for storing data.
  • the storage program area can store the operating system and software codes of at least one application program (such as iQiyi application, WeChat application, etc.).
  • the data storage area can store data (such as images, videos, etc.) generated during the use of the terminal device 100 .
  • the internal memory 121 may include a high-speed random access memory, and may also include a non-volatile memory, such as at least one magnetic disk storage device, flash memory device, universal flash storage (universal flash storage, UFS) and the like.
  • the external memory interface 120 may be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the terminal device 100.
  • the external memory card communicates with the processor 110 through the external memory interface 120 to implement a data storage function. For example, save pictures, videos and other files in the external memory card.
  • the terminal device 100 may implement an audio function through an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, and an application processor. Such as music playback, recording, etc.
  • the keys 190 include a power key, a volume key and the like.
  • the key 190 may be a mechanical key. It can also be a touch button.
  • the terminal device 100 may receive key input and generate key signal input related to user settings and function control of the terminal device 100 .
  • the motor 191 can generate a vibrating reminder.
  • the motor 191 can be used for incoming call vibration prompts, and can also be used for touch vibration feedback. For example, touch operations applied to different applications (such as taking pictures, playing audio, etc.) may correspond to different vibration feedback effects.
  • the indicator 192 can be an indicator light, and can be used to indicate charging status, power change, and can also be used to indicate messages, missed calls, notifications, and the like.
  • the SIM card interface 195 is used for connecting a SIM card. The SIM card can be connected and separated from the terminal device 100 by inserting it into the SIM card interface 195 or pulling it out from the SIM card interface 195 .
  • the components shown in FIG. 2 do not constitute a specific limitation on the terminal device 100, and the mobile phone may also include more or fewer components than shown in the figure, or combine some components, or split some components, or different component arrangements.
  • the terminal device 100 shown in FIG. 2 is taken as an example for introduction.
  • FIG. 3A is a structural block diagram of a terminal device 100 provided in an embodiment of the present application.
  • the terminal device 100 may be an electronic device equipped with a Windows system, and multiple application programs may be installed under the Windows system, such as an emulator application (emulator.exe).
  • the emulator application may be an application equipped with an Android (Android) system, and the Android system may include multiple Android applications, such as a camera application, a music application, a Huawei video application, and the like.
  • Android Android
  • the terminal device takes a notebook computer as an example.
  • the same number of virtual devices can be generated on the Android emulator, and then the connection between the virtual device and the external device can be established. Mapping relations.
  • the virtual device on the emulator is invoked, the external real device can be called according to the mapping relationship, so that communication can be established with the real device, and the emulator can support the hot plug function of the device.
  • the real device may be the aforementioned device connected to the terminal device through a wired connection or a wireless connection, such as a camera, a microphone, a speaker, and the like.
  • the Windows system can obtain information about the connected real devices.
  • the emulator can send an initialization request message to the Windows system.
  • the Windows system can convert the information of the external real device into virtual device information, that is, construct real device information and virtual device information. The mapping relationship between them, and send the virtual device information to the Android system.
  • the camera application can obtain the virtual device information from the Android system, and send the virtual device information to the Windows system, so that the Windows system can find the corresponding real device information according to the mapping relationship.
  • the emulator can send an initialization request message to the Windows system to initialize the Android camera.
  • the initialization request message may include virtual camera information, such as the resolution of the virtual camera.
  • the initialization request message may include three resolutions supported by the camera, 1:1 (720*720), 4:3 (960*720), 16:9 (1280* 720). It should be understood that the above-mentioned resolutions are only an illustration, and the real external camera does not necessarily fully support the above-mentioned three resolutions, and may only support one of the resolutions, which is not limited in this application.
  • FIG. 4A is an interactive schematic diagram of a method for hot plugging and unplugging a device according to an embodiment of the present application.
  • the terminal device 100 is an electronic device equipped with a Windows system, and an emulator application can be installed under the Windows system, and the emulator is an application equipped with an Android system.
  • the terminal device 100 may be externally connected to at least one real device. Exemplarily, as shown in (a) in FIG. 4A, when the emulator starts, the emulator can send an initialization request message to the Windows system.
  • the Windows system After the Windows system receives the initialization request message, it can send the information of the external real device Convert to virtual device information, and construct a mapping relationship between real device information and virtual device information, for example, a mapping relationship between a virtual device and a real device on the Windows side can be established according to the name of the real device. Then, the Windows system can send the virtual device information to the Android system, and the Android system can save the virtual device information after receiving the virtual device information.
  • FIG. 4A there is a real device (Real Device) externally connected to the Windows side, and the user can perform device plugging (Device Plugging) on the real device, such as adding a device or deleting a device.
  • the user connects a new external device on the Windows side, that is, adds a new real device, and at this time, the Windows side can update the mapping relationship through hot plugging of the device.
  • the Windows side executes corresponding operations by responding to the user's device operation instructions on the real device.
  • the device operation of the real device may include operations such as connection (Connect) and disconnection (Disconnect) of the device.
  • the emulator can send an initialization request message to the Windows system, and Windows After the system receives the initialization request message, it can configure the virtual camera information (Virtual Camera Info) according to the external real camera information, and establish the mapping relationship between the virtual camera information and the real camera information. Then, the Windows system can send virtual camera information to the Android system, such as the name (Name) of the virtual camera, the direction (Direction) of the virtual camera, the resolution (Frame) of the virtual camera, and the identification (ID) of the virtual camera. After the Android system receives the virtual camera information, it can save the virtual camera information.
  • the Android system receives the virtual camera information, it can save the virtual camera information.
  • the Windows system can perform corresponding operations in response to device operation instructions received by the external real camera device.
  • the device operation of the external real camera device may include: camera connection (Connect), image acquisition start (Start), camera resolution (Frame), image acquisition stop (Stop), camera disconnection (Disconnect) operation etc.
  • the external real camera device can receive the camera connection (Connect) instruction, and then turn on the camera.
  • the external real camera device can receive the image acquisition Start (Start) command, start to take pictures or video, etc.
  • the identification of the virtual camera is used to identify whether the camera is a front camera or a rear camera.
  • the identification of the virtual camera is A
  • the virtual camera is a front camera
  • the identification of the virtual camera is B
  • the virtual camera can be considered as the rear camera.
  • the identifier of the virtual camera can be used to identify whether the camera is preset on the terminal device at the factory or an external camera.
  • the identifier of the virtual camera is A, it can be considered that the virtual camera is preset on the terminal device at the factory. on the camera; when the identifier of the virtual camera is B, it can be considered that the virtual camera is an external camera.
  • At least one of the following embodiments includes one or more; wherein, a plurality means greater than or equal to two.
  • terms such as “first” and “second” are only used for the purpose of distinguishing description.
  • the notebook computer may be a device equipped with a Windows system, and an emulator application (hereinafter referred to as: emulator) may be installed on the notebook computer equipped with the Windows system.
  • emulator an emulator application
  • the interface 500 may include at least one application icon, such as an emulator application icon 501, a camera application icon 502, a music application icon 503, and a Huawei video application icon 504. .
  • the camera application, music application, and Huawei video application are Android applications installed in the Android emulator, that is, after the emulator installs the above applications, the application icons are placed on the Windows desktop.
  • the interface 500 may also include a task bar 505 and the like, which is not limited in this application.
  • the notebook computer can display the interface 510 .
  • the interface 510 may include a desktop window 511 of the Android system carried by the emulator, and the desktop window 511 may include application icons of Android applications, such as a camera application icon 502 , a music application icon 503 , and a Huawei video application icon 504 .
  • At least one device can be connected to the notebook computer, for example, two camera devices can be connected externally, or a camera device and an audio device can be connected externally.
  • the emulator can send an initialization request message to the Windows system.
  • the Windows system After the Windows system receives the initialization request message, it can convert real device information (such as a real device list) into virtual device information (such as a virtual device list), and Construct a mapping relationship between virtual device information and real device information.
  • the Windows system can send the virtual device information to the Android system, and the Android system can save the virtual device information, so that when the corresponding device is called, the corresponding virtual device can be found in the Android system, and then the corresponding virtual device can be found according to the mapping relationship.
  • the real device so that the real device can be successfully called, and the application on the emulator can be used normally. That is to say, in the embodiment of the present application, the mapping relationship is used by the Windows system to determine the real device information corresponding to the virtual device information according to the virtual device information.
  • the mapping relationship between the virtual device and the real device may be a one-to-one relationship. That is, each virtual device can correspond to a real device. Specifically, a virtual device may be mapped to a device identifier (display name) of a real device through a device identifier (display name). That is to say, the same device ID (display name) can correspond to a virtual device ID (fake name) and a real device ID (real name).
  • the device identifier of the camera device can be camera()
  • the device identifier of the virtual camera can be fake camera()
  • the device identifier of the real camera can be real camera().
  • the display name is camera1
  • the virtual camera device ID is fake camera1
  • the real camera device ID is real camera2
  • mapping relationship between a real device and a virtual device may refer to Table 1 below.
  • Table 1 is only a schematic description, and 1 and 2 can be understood as identification information of devices, that is, a mapping relationship between real devices and virtual devices can be established through identification information.
  • the above-mentioned mapping relationship may be updated in real time according to the plugging and unplugging of the external real device. For example, if the camera 1 in the external real device is pulled out from the laptop and a new camera 3 is inserted, the mapping relationship between the camera 1 and the virtual camera 1 can be deleted and a new mapping relationship can be established, for example, The mapping relationship between camera 3 and virtual camera 1. Or when camera 1 in the above-mentioned external real device is pulled out, and only camera 2 and audio device 1 remain in the external real device, camera 2 can be mapped to virtual camera 1 and virtual camera 2 at the same time. Or on the basis of the above table 1, if a camera 3 is newly inserted, a mapping relationship between the camera 3 and the virtual camera 3 can be added on the basis of the above table.
  • FIG. 6 it is a flow chart of a device hot-swapping method provided in the embodiment of the present application.
  • the method may include the following steps:
  • S601 The first application in the emulator responds to the first operation of the user, and searches for information about the first virtual device.
  • the Android application in the emulator may be recorded as a "first application", for example, the first application may be a camera application.
  • the first operation may be the operation of opening the first application, for example, it may be the operation of clicking the application icon of the first application by the user, or it may be the operation of opening the first application through voice triggering by the user.
  • the first operation may be a user's click operation on the camera application icon 502 on the interface 500 or interface 510 shown in FIG. 5 .
  • the first operation may also be a user's click operation on a certain button on the application interface of the first application.
  • the first operation may be a click operation on a button for switching front and rear cameras.
  • the emulator when the user clicks the application icon of the Android application under the Android system carried by the emulator, such as the application icon of the camera application, the emulator can send a notification message to the Android system to notify the Android system which application to start .
  • the Android system can start the camera application. And send a feedback message to the emulator after launching the app to tell the emulator that the Android app is opened.
  • the Android system can save the corresponding virtual device information, so that when the corresponding device needs to be called, the virtual device information can be found in the Android system .
  • the user opens the camera application, that is, the camera needs to be invoked, and the virtual camera information needs to be searched in the Android system.
  • the first virtual device information may include information about at least one virtual device, that is, the first virtual device may include at least one virtual device.
  • the front and rear cameras of the camera can be mapped by a camera. That is, an external camera can serve as a front camera and a rear camera at the same time, and at this time, the first virtual device is a virtual device.
  • the front and rear cameras of the camera can be mapped by one camera respectively, that is, one camera is used as the front camera, and the other camera is used as the rear camera. At this time, the first virtual device is two virtual device.
  • the first virtual device information may include attribute information of the virtual device, such as identification, resolution, and the like.
  • S602 The first application in the simulator sends the first virtual device information to the Windows system.
  • the first application after the first application finds the first virtual device information from the Android system, it can send the first virtual device information to the Windows system, so that the Windows system can find the corresponding real device according to the first virtual device information.
  • Device Information After the first application finds the first virtual device information from the Android system, it can send the first virtual device information to the Windows system, so that the Windows system can find the corresponding real device according to the first virtual device information.
  • the first application may send the attribute information of the first virtual device to the Windows system, so that the Windows system can find corresponding real device information according to the attribute information of the first virtual device.
  • the first application may send the device identification (display name) information of the first virtual device to the Windows system.
  • S603 The Windows system determines corresponding first real device information according to the first virtual device information.
  • the Windows system may match the first real device information corresponding to the first virtual device information according to the mapping relationship between the virtual device and the real device.
  • the first virtual device information is virtual camera 1 and virtual camera 2, according to the mapping relationship in Table 1, it can be obtained that: the first real device information may be camera 1 and camera 2.
  • the first virtual device and the first real device are of the same type, and the number of the first virtual device and the first real device may be the same or different, and this application does not specifically limit this.
  • the virtual device information found in S601 is: the identification information of the virtual camera device is fake camera1, and the corresponding device identification display name is camera1
  • the virtual device information sent to the Windows system in S602 can be display name, and then the Windows system finds the real camera ID corresponding to camera1 in the real device ID according to the display name, such as real camera2.
  • mapping relationship Since the mapping relationship is updated with the plugging and unplugging of the device, that is, by monitoring the plugging and unplugging of the external device in real time, the mapping relationship can be updated in real time, so that it can still communicate normally when switching between different external devices of the same type, and can Realizing hot swapping of multiple devices of the same type can improve user experience.
  • S604 The Windows system acquires the data collected by the first real device.
  • the Windows system can acquire the data collected by the first real device.
  • the Windows system can determine the real camera corresponding to the virtual camera according to the mapping relationship, establish a connection with the real camera, call the camera driver of the external real camera on the Windows side to take pictures, and then obtain the real camera The captured image.
  • the Windows system can call the audio driver of the external real device to collect audio data, and then obtain the audio data collected by the real device.
  • S605 The Windows system sends the data collected by the first real device to the first application.
  • the Windows system can call the real device to collect data, and then feed back the data collected by the real device to the first application, so that the first application can be used normally.
  • the Windows system can call a real camera to collect images, and then feed back the images collected by the real camera to the camera application, so that the user can see the images collected by the real camera on the interface of the camera application.
  • S606 Display the data collected by the first real device.
  • the Windows system can call the real camera to collect images, and then send the collected images to the camera application.
  • the display interface of the camera application can display the images collected by the real camera. For example, if the resolution supported by the real camera is 4:3 (960*720), then the display interface of the camera application can display an image with the resolution of 4:3 (960*720).
  • the data collected by the real device may not necessarily be displayed on the display interface of the application.
  • the data collected by the microphone is audio data.
  • the audio data can be played through the speaker instead of being displayed on the application interface. superior.
  • the real device external to the terminal device equipped with the Windows system may also be an external device connected to other devices.
  • the terminal device equipped with Windows system is terminal device 1, and the real devices connected to terminal device 1 include camera 1, camera 2, and speaker 1, where camera 1 can be a terminal device other than terminal device 1 (for example, terminal device 2) camera.
  • terminal device 1 and terminal device 2 can be mutually distributed devices, and terminal device 1 can call the local device (camera, speaker, etc.) and external devices (camera, speaker, etc.) of terminal device 2, wherein, the optional calling method
  • the local device and/or the external device of the terminal device 2 are virtualized as the local device and/or the external device of the terminal device 1 for the terminal device 1 .
  • the terminal device 2 may be an Android system, a Windows system, or other systems, which is not limited in this application.
  • FIG. 7 it is a flow chart of another device hot-swapping method provided by the embodiment of the present application.
  • FIG. 7 may include two flow charts.
  • the left flowchart is how to create a mapping relationship
  • the right flowchart is how to update the mapping relationship when a device hot-swapping event occurs.
  • Windows system can first obtain the connected camera device information on the terminal device, and judge whether the number of connected camera devices is greater than or equal to two, which can include the following situations:
  • Case 2 If the number of connected camera devices is less than two, for example, there is one connected camera device, create a virtual camera device, and compare the created virtual camera device information with the connected camera device information save.
  • Case 3 If the number of connected camera devices is less than two, for example, there are 0 connected camera devices, then create two virtual camera devices and save the created virtual camera device information.
  • the above process is distinguished by whether the number of cameras is greater than or equal to 2.
  • the number of cameras may be different, for example, it may also be 4, etc.
  • This application does not No limit.
  • the virtual camera device created here is used to occupy space, that is, to ensure that the number of cameras is at least two.
  • the connected camera device information and/or the created virtual camera device information for occupying space may be recorded as the initial camera information.
  • the initial camera information (g_cameraServiceDesc) can then be saved in g_cameraUpdateDesc and used as the basis for real device updates.
  • the Windows system can create corresponding virtual camera information based on the initial camera information, and construct a mapping relationship between the initial camera (or real camera) and the virtual camera.
  • the Windows system can obtain the information of the currently connected camera device, and then update it according to the number of currently connected camera devices Mapping relations. Specifically, here can be divided into the following situations:
  • Case 3 If the number of currently connected camera devices is two, continue to determine whether the currently connected camera devices have the same device connection, and if there is the same device connection, update another device other than the same device. For example, assuming that two camera devices are connected to the terminal device, namely camera device 1 and camera device 2, if the user unplugs a camera device from the terminal device, such as camera device 1, and inserts a new camera device (for example, camera device 3), at this time, camera device 2 is the same device, and the different device is camera device 3, so it is only necessary to establish a connection between the newly connected camera device (ie, camera device 3) and the virtual camera device mapping relationship.
  • the terminal device namely camera device 1 and camera device 2
  • a new camera device for example, camera device 3
  • the mapping relationship can be updated accordingly.
  • the Windows system can search for real camera information corresponding to the virtual camera information according to the constantly updated mapping relationship.
  • the device identifier (display name) in the virtual device information can be mapped to the constantly updated real device information, and the same device identifier (display name) can correspond to a real device and a virtual device. Therefore, the Windows system can map the device identifier (display name) in the virtual device information to the real device with the same device identifier in the constantly updated real device information, thereby finding the real device corresponding to the virtual device.
  • the above-mentioned embodiment is only described with the camera as an example.
  • the specified device can be selected as the input/output device on the Android side. Do limited.
  • the method provided in the embodiments of the present application is introduced from the perspective of an electronic device serving as an execution subject.
  • the electronic device may include a hardware structure and/or a software module, and realize the above-mentioned functions in the form of a hardware structure, a software module, or a hardware structure plus a software module. Whether one of the above-mentioned functions is executed in the form of a hardware structure, a software module, or a hardware structure plus a software module depends on the specific application and design constraints of the technical solution.
  • the terminal device 800 includes: a display screen 801; one or more processors 802; one or more memory 803; one or more sensors 804 (not shown in the figure), a plurality of applications 805 (not shown in the figure); and one or more computer programs 806 (not shown in the figure), the above-mentioned components can be connected through one or more communication buses 807 .
  • the display screen 801 is used to display the display interface of the application in the electronic device.
  • One or more computer programs are stored in the memory 803, and the one or more computer programs include instructions; the processor 802 invokes the instructions stored in the memory 803, so that the terminal device 800 can implement the device hot-swapping method of the above-mentioned embodiment .
  • the processor 802 may be a general-purpose processor, a digital signal processor, an application-specific integrated circuit, a field programmable gate array or other programmable logic device, a discrete gate or transistor logic device, or a discrete hardware component. Or execute the methods, steps and logic block diagrams disclosed in the embodiments of the present application.
  • a general purpose processor may be a microprocessor or any conventional processor or the like.
  • the steps of the methods disclosed in connection with the embodiments of the present application may be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules in the processor.
  • the software module may be located in the memory 803, and the processor 802 reads the program instructions in the memory 803, and completes the steps of the above method in combination with its hardware.
  • the memory 803 may be a non-volatile memory, such as a hard disk (hard disk drive, HDD) or a solid-state drive (solid-state drive, SSD), etc., and may also be a volatile memory (volatile memory), For example RAM.
  • the memory may also be, but is not limited to, any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
  • the memory in the embodiment of the present application may also be a circuit or any other device capable of implementing a storage function, and is used for storing instructions and/or data.
  • the present application also provides a computer storage medium, where a computer program is stored, and when the computer program is executed by a computer, the computer executes the method provided by the above embodiments.
  • Embodiments of the present application further provide a computer program product, including instructions, which, when run on a computer, cause the computer to execute the method provided in the above embodiments.
  • Embodiments of the present application are described with reference to flowcharts and/or block diagrams of methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each procedure and/or block in the flowchart and/or block diagram, and a combination of procedures and/or blocks in the flowchart and/or block diagram can be realized by instructions. These instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine such that execution of the instructions by the processor of the computer or other programmable data processing device produces a Means for specifying functions in one or more steps of a flowchart and/or one or more blocks of a block diagram.
  • These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to operate in a specific manner, such that the instructions stored in the computer-readable memory produce an article of manufacture comprising instruction means, the instructions
  • the device realizes the function specified in one or more procedures of the flowchart and/or one or more blocks of the block diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Telephone Function (AREA)

Abstract

一种设备热插拔方法及终端设备,该方法包括:真实设备通过无线连接或有线连接的方式连接到终端设备上,终端设备的Windows系统可以接收应用发送的虚拟设备信息,然后基于真实设备信息与虚拟设备信息的映射关系找到相应的真实设备信息,从而调用真实设备,建立通信连接。并且,当终端设备连接的真实设备发生热插拔时,可以实时更新映射关系,保证真实设备侧的正常调用,能够提升用户体验。

Description

一种设备热插拔方法及终端设备
相关申请的交叉引用
本申请要求在2021年08月06日提交中国专利局、申请号为202110901795.3、申请名称为“一种设备热插拔方法及终端设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及终端技术领域,尤其涉及一种设备热插拔方法及终端设备。
背景技术
当前市面上存在各种品牌的模拟器,例如雷电、夜神、Mumu模拟器均为安卓模拟器。安卓模拟器是一种可以使用户在个人计算机除原生计算机系统外,运行并模拟安卓操作系统的模拟器,并能安装、使用、卸载安卓应用的软件。比如,可以在安卓模拟器上安装相机应用、音乐应用等,但是如果需要在模拟器上使用摄像头、麦克风、扬声器等,则需要在个人计算机上预先配置的或者是用户外接的摄像头、麦克风、扬声器等设备。
目前,当安卓模拟器启动时,模拟器可获取初始状态下个人计算机上外接的设备信息,然而在模拟器使用过程中如果在个人计算机上新增或者拔出外接设备时,模拟器无法对初始状态下获取到的外接设备信息进行更新。也就是说,如果在个人计算机上新增或者拔出外接设备时,可能会使得模拟器上的应用无法正常使用。比如,初始状态下个人计算机上外接了一个摄像头设备,在模拟器使用过程中,用户拔掉了外接的摄像头设备,此时将会导致模拟器中的相机应用无法正常使用,比如用户打开相机应用,采集不到图像或者无法切换前后置摄像头等,使得用户体验不好。
发明内容
本申请提供一种设备热插拔方法及终端设备,用以实现多设备的热插拔,提升用户体验。
第一方面,本申请提供一种设备热插拔方法,该方法可应用于搭载Windows系统的终端设备,且终端设备外接第一真实设备。该方法包括:终端设备的Windows系统接收第一应用发送的第一虚拟设备标识,然后基于第一虚拟设备标识确定与该第一虚拟设备标识对应的第一真实设备标识,最后终端设备的Windows系统可获取第一真实设备标识对应的第一真实设备采集到的数据,并将第一真实设备采集到的数据发送给第一应用。
通过上述技术方案,终端设备的Windows系统可以基于虚拟设备标识确定与该虚拟设备标识对应的真实设备标识,这样在外接设备发生变化时,Windows系统能够对外接设备的信息进行更新,使得在使用模拟器内的应用时,能够正常调用真实设备,保证应用的正常使用,能够提升用户体验。并且,可以实现多设备的热插拔。
在一种可能的设计中,所述终端设备的Windows系统确定与所述第一虚拟设备标识对应的第一真实设备标识,包括:所述终端设备的Windows系统根据第一映射关系确定与所 述第一虚拟设备标识对应的第一真实设备标识,所述第一映射关系包括终端设备连接的第一真实设备的标识与配置的虚拟设备的标识之间的对应关系。
通过上述技术方案,终端设备的Windows系统可以基于虚拟设备与真实设备之间的映射关系确定与虚拟设备标识对应的真实设备标识,从而调用真实设备标识对应的真实设备,建立通信连接。
在一种可能的设计中,所述终端设备连接的设备还包括第二真实设备,且所述第一真实设备与所述第二真实设备为同一类型的设备。
当所述第一真实设备被拔出时,所述方法还包括:终端设备的Windows系统根据第二映射关系确定与第一虚拟设备标识对应的第二真实设备标识,所述第二映射关系包括终端设备连接的第二真实设备的标识与配置的虚拟设备的标识之间的对应关系;终端设备的Windows系统获取第二真实设备标识对应的第二真实设备采集到的数据,并将第二真实设备采集到的数据发送给第一应用。
通过上述技术方案,虚拟设备与真实设备之间的映射关系可以随着外接设备的变化而更新。比如,当终端设备外接的设备包括同一类型的外接设备,比如第一真实设备和第二真实设备时,如果将第一真实设备拔出,则可以更新映射关系,即删除第一真实设备与对应的虚拟设备的映射关系。或者当第一真实设备拔出,新插入一个同类型的外接设备,比如第二真实设备时,也可以更新映射关系,从而能够根据更新的映射关系找到对应的真实设备,保证能够正常调用真实设备。
在一种可能的设计中,所述方法还包括:终端设备的Windows系统接收第一应用发送的第二虚拟设备标识;所述终端设备的Windows系统确定与第二虚拟设备标识对应的第一真实设备标识;终端设备的Windows系统获取第一真实设备标识对应的第一真实设备采集到的数据,并将第一真实设备采集到的数据发送给第一应用。
通过上述技术方案,当同一类型的外接真实设备仅有一个时,同一个真实设备可对应多个虚拟设备,即通过不同的虚拟设备标识可找到同一个真实设备标识。比如,外接真实设备为一个摄像头时,前置摄像头和后置摄像头的虚拟设备标识不同,但是外接的真实摄像头既可以作为前置摄像头调用,也可以作为后置摄像头调用。
在一种可能的设计中,所述终端设备连接的设备还包括第二真实设备,且第一真实设备与第二真实设备为同一类型的设备时,所述方法还包括:终端设备的Windows系统接收第一应用发送的第二虚拟设备标识;终端设备的Windows系统确定与第二虚拟设备标识对应的第二真实设备标识;终端设备的Windows系统获取第二真实设备标识对应的第二真实设备采集到的数据,并将第二真实设备采集到的数据发送给第一应用。
通过上述技术方案,当终端设备外接的真实设备中同一类型的设备包括至少两个时,一个真实设备可对应一个虚拟设备。即终端设备的Windows系统可根据第一虚拟设备标识找到第一真实设备标识,可根据第二虚拟设备标识找到第二真实设备标识。例如,当外接的摄像头为两个时,可以将一个摄像头作为前置摄像头调用,将另一个摄像头作为后置摄像头调用。当然,也可能存在一个真实设备对应多个虚拟设备的情况,本申请对此不做限定。
在一种可能的设计中,所述第一真实设备包括以下设备中的至少一种:摄像头、麦克风、扬声器。
通过上述技术方案,终端设备上可连接摄像头、麦克风、扬声器等设备,以保证终端 设备的模拟器下的应用的正常使用。
在一种可能的设计中,所述第一真实设备为通过有线连接或无线连接的方式连接到所述终端设备上的设备。
通过上述技术方案,外接的真实设备可以通过无线或有线的方式与终端设备建立连接,从而使得真实设备与终端设备之间建立通信连接。
在一种可能的设计中,所述第一真实设备为通过有线连接或无线连接的方式连接到与所述终端设备不同的终端设备上的设备。
通过上述技术方案,终端设备上外接的真实设备可以为其它的终端设备上外接的设备。即外接的真实设备可以同时连接到至少一个终端设备上。
在一种可能的设计中,所述有线连接包括通用串行总线USB线、转接线,所述无线连接包括无线保真Wi-Fi、蓝牙、超宽带无线通信UWB、近距离无线通信技术NFC。
在一种可能的设计中,所述第一应用为安卓模拟器搭载的系统下的任意一个应用。
本申请实施例中,终端设备上的模拟器可以为安卓模拟器,第一应用可以为安卓模拟器下的安卓应用,比如可以为相机应用、视频应用、音乐应用等。
在一种可能的设计中,所述第一虚拟设备标识预先存储在安卓系统中。
通过上述技术方案,终端设备的Windows系统可以获取自身所连接的真实设备标识,然后基于真实设备标识配置虚拟设备标识,并将虚拟设备标识发送给安卓系统。安卓系统接收到虚拟设备标识之后,可保存虚拟设备标识,以便模拟器下的应用调用外接设备时,能够找到虚拟设备标识。
在一种可能的设计中,所述方法还包括:显示所述第一真实设备采集到的数据。
通过上述技术方案,终端设备的Windows系统将第一真实设备采集到的数据发送给第一应用之后,可将第一真实设备采集到的数据显示在第一应用的应用界面。比如,真实设备为摄像头时,可将摄像头采集到的图像(或画面)显示在相机的应用界面,以便用户查看。
第二方面,本申请提供一种终端设备,所述终端设备包括显示屏;一个或多个处理器;一个或多个存储器;一个或多个传感器;多个应用;以及一个或多个计算机程序;其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器调用执行时,使得所述终端设备执行上述第一方面及其第一方面任一可能设计的方法。
第三方面,本申请还提供一种终端设备,该终端设备包括执行第一方面或者第一方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行第一方面及其第一方面任一可能设计的方法。
第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行本申请实施例第一方面及其第一方面任一可能设计的方法。
上述第二方面至第五方面中的各个方面以及各个方面可能达到的技术效果请参照上述针对第一方面中的各种可能方案可以达到的技术效果说明,这里不再重复赘述。
附图说明
图1为本申请实施例提供的一种应用场景示意图;
图2为本申请实施例提供的一种电子设备的结构示意图;
图3A为本申请实施例提供的一种终端设备的结构框图;
图3B为本申请实施例提供的一种设备热插拔方法流程示意图;
图4A为本申请实施例提供的一种设备热插拔的流程示意图;
图4B为本申请实施例提供的一种摄像头设备热插拔的流程示意图;
图5为本申请实施例提供的一种用户界面示意图;
图6为本申请实施例提供的一种设备热插拔方法流程图;
图7为本申请实施例提供的另一种设备热插拔方法流程图;
图8为本申请实施例提供的另一种电子设备的结构示意图。
具体实施方式
下面将结合本申请以下实施例中的附图,对本申请实施例中的技术方案进行详尽描述。
首先,对本申请实施例相关的概念进行解释说明。
1)模拟器:是一种可以使用户在个人计算机除原生计算机系统外,运行并模拟其他操作系统的模拟器,并能安装、使用、卸载其他操作系统应用的软件。例如,安卓模拟器是一种可以使用户在个人计算机除原生计算机系统外,运行并模拟安卓操作系统的模拟器,并能安装、使用、卸载安卓应用的软件。
2)热插拔:指的是允许用户在不关闭系统,不切断电源的情况下插入、取出和更换通过有线连接或者无线连接的方式连接到终端设备上的设备,例如这些设备可以为摄像头、麦克风、扬声器等。其中,有线连接的方式可以为通用串行总线(universal serial bus,USB)线,转接线等;无线连接的方式可以为无线保真(wireless fidelity,Wi-Fi)、蓝牙、超宽带无线通信(ultra wide band,UWB)、近距离无线通信技术(near field communication,NFC)中的至少一种。
3)应用程序(application,APP):简称应用,为能够实现某项或多项特定功能的软件程序。通常,终端设备中可以安装多个应用。比如,相机应用、短信应用、邮箱应用、视频应用、音乐应用、WeLink等。下文中提到的应用,可以是终端设备出厂时已安装的应用,也可以是用户在使用终端设备的过程中从网络下载或其他终端设备获取的应用。
需要说明的是,本申请实施例提供的设备热插拔方法,可以适用于具有显示屏的终端设备,诸如个人计算机(personal computer,PC)(比如,平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC))、智慧屏等,本申请实施例不作限定。并且,终端设备的示例性实施例包括但不限于搭载
Figure PCTCN2022107435-appb-000001
Figure PCTCN2022107435-appb-000002
或者其它操作系统的终端设备。
首先,对本申请实施例的应用场景进行介绍。如图1所示,为本申请实施例提供的一种应用场景示意图。参阅图1所示,该应用场景可包括终端设备10、外接的真实设备(也可以称为:外接设备或者真实设备),比如蓝牙音箱20、摄像头21、摄像头22、麦克风23、扬声器24。应理解,图1中仅是以五个外接的真实设备为例,本申请中还可以有更多或更少的外接设备,对此不做具体限定。
其中,终端设备10与外接设备之间可以通过USB接口来连接,即可以通过USB线建立连接。当然,终端设备10还可以通过其它方式与外接设备建立连接,比如可以通过蓝牙(bluetooth,BT)等来建立连接,对此不做限定。
下面介绍图1所示的应用场景中终端设备的结构。
如图2所示,终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,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 processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。在本申请一些实施例中,终端设备100可以通过USB接口或者蓝牙与真实设备进行通信连接。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。终端设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实 施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wireless local area networks,WLAN)(如Wi-Fi网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),NFC,红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),第五代(the fifth generation,5G)移动通信系统,未来通信系统,如第六代(6th generation,6G)系统等,BT,GNSS,WLAN,NFC,FM和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
显示屏194用于显示应用的显示界面等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏194,N为大于1的正整数。在本申请实施例中,显示屏194可用于显示应用界面。
摄像头193用于捕获静态图像或视频。摄像头193可以包括前置摄像头和后置摄像头。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,以及至少一个应用程序(例如爱奇艺应用,微信应用等)的软件代码等。存储数据区可存储终端设备100使用过程中所产生的数据(例如图像、视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图片,视频等文件保存在外部存储卡中。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端设备100的接触和分离。
可以理解的是,图2所示的部件并不构成对终端设备100的具体限定,手机还可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。以下的实施例中,以图2所示的终端设备100为例进行介绍。
图3A所示为本申请实施例提供的一种终端设备100的结构框图。示例性的,如图3A所示,终端设备100可以是搭载Windows系统的电子设备,在该Windows系统下可以安装多个应用程序,比如模拟器应用(模拟器.exe)。其中,模拟器应用可以是搭载安卓(Android)系统的应用,安卓系统下可以包括多个安卓应用,例如相机应用、音乐应用、华为视频应用等。
终端设备以笔记本电脑为例,在本申请实施例中,当用户在笔记本电脑上外接真实设时,可以在安卓模拟器上生成相同数量的虚拟设备,然后建立虚拟设备与外接的设备之间的映射关系。这样当模拟器上的虚拟设备被调用时,可以根据映射关系调用外接的真实设备,从而能够与真实设备建立通信,实现模拟器支持设备的热插拔功能。应理解,真实设备可以为前述所介绍的:通过有线连接或者无线连接的方式连接到终端设备上的设备,比如摄像头、麦克风、扬声器等设备。
示例性的,参阅图3B所示,假设终端设备外接了N(所述N为大于等于1的正整数)个真实设备,Windows系统可以获取外接的真实设备的信息。当模拟器启动时,模拟器可以向Windows系统发送初始化请求消息,Windows系统接收到该初始化请求消息之后,可将外接的真实设备的信息转换为虚拟设备信息,即构建真实设备信息与虚拟设备信息之间的映射关系,并将虚拟设备信息发送给Android系统。当用户使用相机应用时,需要调用摄像头,此时相机应用可以从Android系统获取虚拟设备信息,并将虚拟设备信息发送给Windows系统,进而使得Windows系统根据映射关系找到对应的真实设备信息。以摄像头设备为例,当模拟器启动时,模拟器可以向Windows系统发送初始化请求消息,以初始化Android相机。其中,该初始化请求消息中可包括虚拟摄像头信息,比如虚拟摄像头的分辨率。示例性的,在本申请实施例中该初始化请求消息中可包括摄像头所支持的三种分辨率,1:1(720*720)、4:3(960*720)、16:9(1280*720)。应理解,上述分辨率仅是一种示意,外接的真实摄像头并不一定完全支持上述三种分辨率,有可能仅支持其中一种分辨率,本申请对此不做限定。
图4A所示为本申请实施例提供的一种设备热插拔方法交互示意图。参阅图4A所示,终端设备100为搭载Windows系统的电子设备,在该Windows系统下可以安装有模拟器应用,模拟器为搭载Android系统的应用。并且,终端设备100可以外接至少一个真实设备。示例性的,参阅图4A中的(a)所示,当模拟器启动时,模拟器可以向Windows系统 发送初始化请求消息,Windows系统接收到该初始化请求消息之后,可将外接的真实设备的信息转换为虚拟设备信息,并构建真实设备的信息与虚拟设备信息之间的映射关系,比如可以根据真实设备的名称建立虚拟设备与Windows侧的真实设备之间的映射关系。然后,Windows系统可以向Android系统发送虚拟设备信息,Android系统在接收到虚拟设备信息之后可将虚拟设备信息进行保存。
参阅图4A中的(b)所示,Windows侧外接有真实设备(Real Device),用户可以对真实设备进行设备的热插拔(Device Plugging),比如新增设备或者删除设备。示例性的,比如用户在Windows侧连接了一个新的外接设备,即新增了一个真实设备,此时Windows侧可以通过设备的热插拔更新映射关系。参阅图4A中的(c)所示,Windows侧通过响应用户对真实设备的设备操作指令,执行相应的操作。其中,真实设备的设备操作可包括设备的连接(Connect)、断开(Disconnect)等操作。
如图4B所示,以摄像头为例继续介绍设备的热插拔方法交互示意图,参阅图4B中的(a)所示,当模拟器启动时,模拟器可以向Windows系统发送初始化请求消息,Windows系统接收到该初始化请求消息之后,可根据外接的真实摄像头信息配置虚拟摄像头信息(Virtual Camera Info),并建立虚拟摄像头信息与真实摄像头信息之间的映射关系。然后,Windows系统可以向Android系统发送虚拟摄像头信息,比如虚拟摄像头的名称(Name)、虚拟摄像头的朝向(Direction)、虚拟摄像头的分辨率(Frame)、虚拟摄像头的标识(ID)。Android系统接收到虚拟摄像头信息之后,可将虚拟摄像头信息进行保存。
参阅图4B中的(b)所示,当用户从终端设备上插入或者拔出外接的真实摄像头设备,即对摄像头设备的热插拔时,上述映射关系可随之进行更新,以保证Android在调用虚拟摄像头时能够映射到真实的摄像头,从而保证摄像头的正常使用。参阅图4B中的(c)所示,Windows系统可响应外接的真实摄像头设备接收到的设备操作指令,执行相应的操作。其中,外接的真实摄像头设备的设备操作可包括:摄像头的连接(Connect)、图像采集开始(Start)、摄像头的分辨率(Frame)、图像采集停止(Stop)、摄像头的断开连接(Disconnect)操作等。比如,用户打开相机应用,需要使用摄像头时,外接的真实摄像头设备可接收到摄像头的连接(Connect)的指令,然后打开相机,当用户点击拍摄按钮时,外接的真实摄像头设备可接收到图像采集开始(Start)的指令,开始拍照或者录像等。
需要说明的是,虚拟摄像头的标识用于标识摄像头为前置摄像头还是后置摄像头,比如当虚拟摄像头的标识为A时,可以认为该虚拟摄像头为前置摄像头;当虚拟摄像头的标识为B时,可以认为该虚拟摄像头为后置摄像头。或者,虚拟摄像头的标识可以用于标识摄像头为出厂时预置在终端设备上的摄像头还是外接的摄像头,比如当虚拟摄像头的标识为A时,可以认为该虚拟摄像头为出厂时预置在终端设备上的摄像头;当虚拟摄像头的标识为B时,可以认为该虚拟摄像头为外接的摄像头。
以下实施例以应用在图2所示的终端设备100所示的架构中为例进行描述。
此外,下述实施例涉及的至少一个,包括一个或者多个;其中,多个是指大于或者等于两个。另外,需要理解的是,在本申请的描述中,“第一”、“第二”等词汇,仅用于区分描述的目的。
以笔记本电脑为例,笔记本电脑可以为搭载Windows系统的设备,在搭载有Windows系统的笔记本电脑上可安装有模拟器应用(以下简称:模拟器)。假设模拟器为安卓模拟 器,可以在安卓模拟器内安装安卓应用,比如可安装相机应用、音乐应用、华为视频应用等。示例性的,参阅图5所示,假设笔记本电脑显示界面500,该界面500中可包括至少一个应用图标,例如模拟器应用图标501、相机应用图标502、音乐应用图标503、华为视频应用图标504。其中,相机应用、音乐应用、华为视频应用为安装在安卓模拟器内的安卓应用,即模拟器安装完上述应用之后将应用图标放置在Windows的桌面上。当然,界面500还可以包括任务栏505等,本申请对此不做限定。当用户在界面500中点击模拟器应用图标501之后,笔记本电脑可显示界面510。其中,界面510可包括模拟器搭载的安卓系统的桌面窗口511,该桌面窗口511中可包括安卓应用的应用图标,比如相机应用图标502、音乐应用图标503、华为视频应用图标504。
在一些实施例中,在安卓模拟器启动之前,笔记本电脑上可外接至少一个设备,比如外接两个摄像头设备或者可以外接一个摄像头设备和一个音频设备等。当模拟器启动时,模拟器可向Windows系统发送初始化请求消息,Windows系统接收到初始化请求消息之后,可将真实设备信息(比如真实设备列表)转换为虚拟设备信息(比如虚拟设备列表),并构建虚拟设备信息与真实设备信息之间的映射关系。接着,Windows系统可将虚拟设备信息发送给Android系统,Android系统可将虚拟设备信息进行保存,以使在调用相应的设备时,能够在Android系统中找到对应的虚拟设备,进而根据映射关系找到相应的真实设备,从而成功调用真实设备,能够正常使用模拟器上的应用程序。也就是说,在本申请实施例中,该映射关系用于Windows系统根据虚拟设备信息确定与虚拟设备信息对应的真实设备信息。
其中,虚拟设备与真实设备之间的映射关系可以为一对一的关系。即每一个虚拟设备可对应一个真实设备。具体来说,虚拟设备可通过设备标识(display name)映射到真实设备的设备标识(display name)。也就是说,同一个设备标识(display name)可对应一个虚拟设备标识(fake name)和一个真实设备标识(real name)。以摄像头设备为例,摄像头设备的设备标识可以为camera(),虚拟摄像头设备标识可以为fake camera(),真实摄像头设备标识可以为real camera()。比如display name为camera1,虚拟摄像头设备标识为fake camera1,真实摄像头设备标识为real camera2,那么当调用fake camera1时,可根据fake camera1找到相应的display name,即camera1,然后再根据display name在真实设备标识中找到camera1对应的真实摄像头标识即real camera2,从而调用真实的摄像头。
示例性的,真实设备与虚拟设备的映射关系可参阅如下表1所示。
表1
外接设备 虚拟设备
摄像头1 虚拟摄像头1
摄像头2 虚拟摄像头2
音频设备1 虚拟音频设备1
应理解,上述表1仅是一种示意性说明,1、2可以理解为设备的标识信息,即真实设备与虚拟设备之间可以通过标识信息来建立映射关系。
在另一些实施例中,可以根据外接真实设备的插入和拔出实时更新上述映射关系。比如,将外接真实设备中的摄像头1从笔记本电脑上拔出,插入一个新的摄像头3,则可以将摄像头1与虚拟摄像头1之间的映射关系删除,并建立新的映射关系,例如可以为摄像头3与虚拟摄像头1之间的映射关系。或者当上述外接真实设备中的摄像头1拔出,外接 真实设备仅剩摄像头2和音频设备1时,可以将摄像头2同时映射到虚拟摄像头1和虚拟摄像头2。或者在上述表1的基础上,如果新插入一个摄像头3,则可以在上述表格的基础上新增一条摄像头3与虚拟摄像头3之间的映射关系。
下面结合上述场景对本申请实施例的设备热插拔方法进行介绍。
如图6所示,为本申请实施例提供的一种设备热插拔方法流程图,参阅图6所示,该方法可包括如下步骤:
S601:模拟器内的第一应用响应用户的第一操作,查找第一虚拟设备信息。
为了描述方便,可将模拟器内的安卓应用记为“第一应用”,例如该第一应用可以为相机应用。其中,第一操作可以为打开第一应用的操作,例如可以为用户对第一应用的应用图标的点击操作,或者还可以为用户通过语音触发的方式打开第一应用的操作等,本申请对此不做限定。示例性的,该第一操作可以为用户在图5所示的界面500或者界面510上对相机应用图标502的点击操作。当然,第一操作还可以为用户在第一应用的应用界面对某个按钮的点击操作,比如第一操作可以为对切换前后置摄像头按钮的点击操作。
在一些实施例中,当用户点击模拟器所搭载的安卓系统下的安卓应用的应用图标,比如相机应用的应用图标之后,模拟器可向安卓系统发送通知消息,以通知安卓系统哪个应用要启动。相应的,安卓系统接收到通知消息之后,可启动相机应用。并在启动应用之后向模拟器发送反馈消息,以告知模拟器安卓应用已打开。
基于上述对应用场景的介绍可知,当搭载Windows系统的笔记本电脑上外接设备之后,Android系统可以保存有相应的虚拟设备信息,这样当需要调用相应的设备时,可在Android系统中查找虚拟设备信息。例如,用户打开相机应用,即需要调用摄像头,则需要在Android系统中查找虚拟摄像头信息。
在本申请实施例中,第一虚拟设备信息可以包括至少一个虚拟设备的信息,也就是说,第一虚拟设备可以包括至少一个。比如,当笔记本电脑外接了一个摄像头时,相机的前后置摄像头可以通过一个摄像头来映射。即一个外接摄像头可以同时作为前置摄像头和后置摄像头,此时第一虚拟设备为一个虚拟设备。比如,当笔记本电脑外接了两个摄像头时,相机的前后置摄像头可以分别通过一个摄像头来映射,即一个摄像头作为前置摄像头,另外一个摄像头作为后置摄像头,此时第一虚拟设备为两个虚拟设备。
进一步的,第一虚拟设备信息可以包括虚拟设备的属性信息,比如标识、分辨率等。
S602:模拟器内的第一应用向Windows系统发送第一虚拟设备信息。
在一些实施例中,当第一应用从Android系统中查找到第一虚拟设备信息之后,可以将第一虚拟设备信息发送给Windows系统,以使Windows系统能够根据第一虚拟设备信息找到相应的真实设备信息。
示例性的,第一应用可以将第一虚拟设备的属性信息发送给Windows系统,以使Windows系统能够根据第一虚拟设备的属性信息找到对应的真实设备信息。比如,第一应用可以将第一虚拟设备的设备标识(display name)信息发送给Windows系统。
S603:Windows系统根据第一虚拟设备信息确定对应的第一真实设备信息。
在本申请实施例中,Windows系统可以根据虚拟设备与真实设备之间的映射关系,匹配出与第一虚拟设备信息对应的第一真实设备信息。示例性的,假设第一虚拟设备信息为虚拟摄像头1和虚拟摄像头2,则根据表1的映射关系可得到:第一真实设备信息可以为摄像头1和摄像头2。应理解,第一虚拟设备与第一真实设备为同一类型的设备,第一虚 拟设备与第一真实设备的数量可以相同,也可以不同,本申请对此不作具体限定。
举个例子,假设S601中查找到的虚拟设备信息为:虚拟摄像头设备的标识信息为fake camera1,其对应的设备标识display name为camera1,那么在S602中发送给Windows系统的虚拟设备信息可以为display name,然后Windows系统根据display name在真实设备标识中找到camera1对应的真实摄像头标识,比如real camera2。
由于映射关系是随着设备的插入和拔出来更新的,即通过实时监测外接设备的插拔,可以实时更新映射关系,这样能够实现在同一类型的不同外接设备切换时仍然能够正常通信,并且可以实现同一类型的多设备热插拔,能够提升用户体验。
S604:Windows系统获取第一真实设备采集到的数据。
当Windows系统根据映射关系确定出第一真实设备信息之后,Windows系统可以获取第一真实设备所采集的数据。比如,当外接真实设备为摄像头时,Windows系统可以根据映射关系确定出虚拟摄像头对应的真实摄像头之后,可与真实摄像头建立连接,调用Windows侧外接的真实摄像头的摄像头驱动进行拍照,然后获取真实摄像头采集到的图像。当外接真实设备为麦克风/扬声器时,Windows系统可以调用外接的真实设备的音频驱动采集音频数据,然后获取真实设备采集到的音频数据。
S605:Windows系统将第一真实设备采集到的数据发送给第一应用。
在一些实施例中,Windows系统可调用真实设备采集数据,然后将真实设备采集到的数据反馈给第一应用,使得第一应用能够正常使用。比如,Windows系统可调用真实摄像头采集图像,然后将真实摄像头采集到的图像反馈给相机应用,这样用户在相机应用的界面看到真实摄像头采集到的图像。
可选的,在S605之后,还可以包括如下步骤:
S606:显示第一真实设备采集到的数据。
示例性的,当真实设备为摄像头时,Windows系统可调用真实摄像头采集图像,然后将采集到的图像发送给相机应用,此时相机应用的显示界面上可显示真实摄像头采集到的图像。比如,真实摄像头支持的分辨率为4:3(960*720),则此时相机应用的显示界面上可显示分辨率为4:3(960*720)的图像。
当然,真实设备采集到的数据不一定显示在应用的显示界面上,比如当真实设备为麦克风时,麦克风采集到的数据为音频数据,此时音频数据可以通过扬声器播放,可以不显示在应用界面上。
通过上述技术方案,可以实现模拟器的设备热插拔,使得用户能够在模拟器上正常使用摄像头、麦克风等,能够提升用户体验。
需要说明的是,上述实施例可以任意拆分组合,构成新的实施例,本申请对此不做限定。示例性的,在一种可能的实施例中,搭载Windows系统的终端设备外接的真实设备也可以是连接其他设备的外接设备。比如,搭载Windows系统的终端设备为终端设备1,该终端设备1连接的真实设备包括摄像头1、摄像头2、扬声器1,其中摄像头1可以为终端设备1外的终端设备(例如,终端设备2)的摄像头。即终端设备1可以和终端设备2互为分布式设备,终端设备1可以调用终端设备2的本机设备(摄像头、扬声器等)以及外接设备(摄像头、扬声器等),其中,可选的调用方式为终端设备1将终端设备2的本机设备和/或外接设备虚拟成终端设备1的本机设备和/或外接设备。终端设备2可以为安卓系统或Windows系统,或者其他系统,本申请对此不做限定。
下面以摄像头为例,对图6所示的方法进行详细介绍。参阅图7所示,为本申请实施例提供的另一种设备热插拔方法流程图。图7中可包括两部分流程图,左边的流程图为如何创建映射关系的过程,右边的流程图为当发生设备热插拔事件时,如何更新映射关系。首先介绍创建映射关系的过程:Windows系统首先可获取终端设备上已连接的摄像头设备信息,并且判断已连接的摄像头设备的数量是否大于等于两个,此处可包括如下几种情况:
情况1:若已连接的摄像头设备的数量大于等于两个,则将已连接的摄像头设备信息进行保存。
情况2:若已连接的摄像头设备的数量小于两个,比如已连接的摄像头设备为1个,则创建一个虚拟的摄像头设备,并将创建的虚拟摄像头设备信息和已连接的摄像头设备的信息进行保存。
情况3:若已连接的摄像头设备的数量小于两个,比如已连接的摄像头设备为0个,则创建两个虚拟的摄像头设备,并将创建的虚拟摄像头设备信息进行保存。
需要说明的是,上述过程中是以摄像头的数量是否大于等于2个来区分的,在本申请中根据应用场景的不同,摄像头的数量可能不同,例如也可以为4个等,本申请对此不做限定。应理解,此处创建的虚拟摄像头设备是用来占位的,即为了保证摄像头的数量为至少两个。为了方便理解,可以将已连接的摄像头设备信息和/或创建的用来占位的虚拟摄像头设备信息记为初始摄像头信息。然后,可将初始摄像头信息(g_cameraServiceDesc)保存在g_cameraUpdateDesc中,并将该初始摄像头信息作为真实设备更新的基础。
在得到初始摄像头信息之后,Windows系统可基于初始摄像头信息创建相应的虚拟摄像头信息,构建初始摄像头(或者说真实摄像头)与虚拟摄像头之间的映射关系。
下面介绍发生设备热插拔事件时,如何更新映射关系的过程。当设备热插拔事件触发,即终端设备上外接的真实设备被拔出或有新的设备插入时,Windows系统可获取当前已连接的摄像头设备信息,然后根据当前已连接的摄像头设备的数量更新映射关系。具体的,此处可分为如下几种情况:
情况1:如果当前已连接的摄像头设备的数量等于0,则不作处理。
情况2:如果当前已连接的摄像头设备的数量为一个,则前后置摄像头均使用同一个摄像头。
情况3:如果当前已连接的摄像头设备的数量为两个,则继续判断当前已连接的摄像头设备是否有相同的设备连接,若有相同的设备连接,则更新相同设备之外的另一个设备。举例来说,假设终端设备上连接了两个摄像头设备,分别为摄像头设备1和摄像头设备2,如果用户从终端设备上拔出了一个摄像头设备,比如摄像头设备1,并且新插入了一个摄像头设备(例如,摄像头设备3),此时摄像头设备2即为相同的设备,不同的设备为摄像头设备3,因此只需要对新接入的摄像头设备(即摄像头设备3)建立与虚拟摄像头设备之间的映射关系。
也就是说,随着真实摄像头设备的更新,映射关系可随之进行更新。这样Windows系统可根据不断更新的映射关系查找与虚拟摄像头信息相对应的真实摄像头信息。具体的,虚拟设备信息中的设备标识(display name)可映射到不断更新的真实设备信息,同一设备标识(display name)可对应一个真实设备以及一个虚拟设备。因此,Windows系统可根据虚拟设备信息中的设备标识(display name)映射到不断更新的真实设备信息中具有相同设备标识的真实设备,从而找到与虚拟设备对应的真实设备。
通过本申请实施例的方法,通过检测设备热插拔实时更新,避免Android重复初始化,并且实现了同类产品中多设备热插拔,能够做到多设备实时切换。例如,如果拔掉已连接的摄像头,插上一个新的摄像头设备,打开相机,可以顺利调用新插入的摄像头采集画面,保证相机应用的正常使用,能够提升用户体验。
应理解,上述实施例仅是以摄像头为例进行的说明,当Windows侧接入多个音频(麦克风、扬声器)设备时,可以在Android侧选择指定设备作为输入/输出设备,本申请对此不做限定。
上述本申请提供的实施例中,从电子设备作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
如图8所示,本申请另外一些实施例公开了一种终端设备,该终端设备可以是具有显示屏的电子设备。参阅图8所示,所述终端设备800包括:显示屏801;一个或多个处理器802;一个或多个存储器803;一个或多个传感器804(图中未示出)、多个应用805(图中未示出);以及一个或多个计算机程序806(图中未示出),上述各器件可以通过一个或多个通信总线807连接。
其中,显示屏801用于显示电子设备中的应用的显示界面。存储器803中存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令;处理器802调用存储器803中存储的所述指令,使得终端设备800可以上述实施例的设备热插拔方法。
在本申请实施例中,处理器802可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储器803中,处理器802读取存储器803中的程序指令,结合其硬件完成上述方法的步骤。
在本申请实施例中,存储器803可以是非易失性存储器,比如硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatile memory),例如RAM。存储器还可以是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储指令和/或数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于以上实施例,本申请还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被计算机执行时,使得所述计算机执行以上实施例提供的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行以上实施例提供的方法。
本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

Claims (15)

  1. 一种设备热插拔方法,应用于搭载Windows系统的终端设备,所述终端设备连接的设备包括第一真实设备,其特征在于,包括:
    终端设备的Windows系统接收第一应用发送的第一虚拟设备标识;
    所述终端设备的Windows系统确定与所述第一虚拟设备标识对应的第一真实设备标识;
    所述终端设备的Windows系统获取所述第一真实设备标识对应的第一真实设备采集到的数据,并将所述第一真实设备采集到的数据发送给第一应用。
  2. 如权利要求1所述的方法,其特征在于,所述终端设备的Windows系统确定与所述第一虚拟设备标识对应的第一真实设备标识,包括:
    所述终端设备的Windows系统根据第一映射关系确定与所述第一虚拟设备标识对应的第一真实设备标识,所述第一映射关系包括终端设备连接的第一真实设备的标识与配置的虚拟设备的标识之间的对应关系。
  3. 如权利要求1或2所述的方法,其特征在于,所述终端设备连接的设备还包括第二真实设备,且所述第一真实设备与所述第二真实设备为同一类型的设备;
    当所述第一真实设备被拔出时,所述方法还包括:
    所述终端设备的Windows系统根据第二映射关系确定与所述第一虚拟设备标识对应的第二真实设备标识,所述第二映射关系包括终端设备连接的第二真实设备的标识与配置的虚拟设备的标识之间的对应关系;
    所述终端设备的Windows系统获取所述第二真实设备标识对应的第二真实设备采集到的数据,并将所述第二真实设备采集到的数据发送给第一应用。
  4. 如权利要求1或2所述的方法,其特征在于,所述方法还包括:
    所述终端设备的Windows系统接收第一应用发送的第二虚拟设备标识;
    所述终端设备的Windows系统确定与所述第二虚拟设备标识对应的第一真实设备标识;
    所述终端设备的Windows系统获取所述第一真实设备标识对应的第一真实设备采集到的数据,并将所述第一真实设备采集到的数据发送给第一应用。
  5. 如权利要求1或2所述的方法,其特征在于,所述终端设备连接的设备还包括第二真实设备,且所述第一真实设备与所述第二真实设备为同一类型的设备时,所述方法还包括:
    所述终端设备的Windows系统接收第一应用发送的第二虚拟设备标识;
    所述终端设备的Windows系统确定与所述第二虚拟设备标识对应的第二真实设备标识;
    所述终端设备的Windows系统获取所述第二真实设备标识对应的第二真实设备采集到的数据,并将所述第二真实设备采集到的数据发送给第一应用。
  6. 如权利要求1-5任一项所述的方法,其特征在于,所述第一真实设备包括以下设备中的至少一种:摄像头、麦克风、扬声器。
  7. 如权利要求1-6任一项所述的方法,其特征在于,所述第一真实设备为通过有线连接或无线连接的方式连接到所述终端设备上的设备。
  8. 如权利要求1-6任一项所述的方法,其特征在于,所述第一真实设备为通过有线连接或无线连接的方式连接到与所述终端设备不同的终端设备上的设备。
  9. 如权利要求7或8所述的方法,其特征在于,所述有线连接包括通用串行总线USB线、转接线,所述无线连接包括无线保真Wi-Fi、蓝牙、超宽带无线通信UWB、近距离无线通信技术NFC。
  10. 如权利要求1-9任一项所述的方法,其特征在于,所述第一应用为安卓模拟器搭载的系统下的任意一个应用。
  11. 如权利要求1所述的方法,其特征在于,所述第一虚拟设备标识预先存储在安卓系统中。
  12. 如权利要求1所述的方法,其特征在于,所述方法还包括:
    显示所述第一真实设备采集到的数据。
  13. 一种终端设备,其特征在于,所述终端设备包括显示屏;一个或多个处理器;一个或多个存储器;一个或多个传感器;多个应用;以及一个或多个计算机程序;
    其中所述一个或多个计算机程序被存储在所述一个或多个存储器中,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器调用执行时,使得所述终端设备执行如权利要求1至12任一项所述的方法。
  14. 一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当所述指令在终端设备上运行时,使得所述终端设备执行如权利要求1至12任一项所述的方法。
  15. 一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在终端设备上运行时,使得所述终端设备执行如权利要求1至12任一项所述的方法。
PCT/CN2022/107435 2021-08-06 2022-07-22 一种设备热插拔方法及终端设备 WO2023011216A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110901795.3A CN115878191A (zh) 2021-08-06 2021-08-06 一种设备热插拔方法及终端设备
CN202110901795.3 2021-08-06

Publications (1)

Publication Number Publication Date
WO2023011216A1 true WO2023011216A1 (zh) 2023-02-09

Family

ID=85155176

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/107435 WO2023011216A1 (zh) 2021-08-06 2022-07-22 一种设备热插拔方法及终端设备

Country Status (2)

Country Link
CN (1) CN115878191A (zh)
WO (1) WO2023011216A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054740A1 (en) * 2010-08-31 2012-03-01 Microsoft Corporation Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
CN108510592A (zh) * 2017-02-27 2018-09-07 亮风台(上海)信息科技有限公司 真实物理模型的增强现实展示方法
CN108830939A (zh) * 2018-06-08 2018-11-16 杭州群核信息技术有限公司 一种基于混合现实的场景漫游体验方法及体验系统
CN111190485A (zh) * 2019-12-27 2020-05-22 北京市商汤科技开发有限公司 信息显示方法、装置、电子设备、及计算机可读存储介质
CN111814146A (zh) * 2020-09-10 2020-10-23 平安国际智慧城市科技股份有限公司 针对对象的关联关系建立方法、装置、服务器及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120054740A1 (en) * 2010-08-31 2012-03-01 Microsoft Corporation Techniques For Selectively Enabling Or Disabling Virtual Devices In Virtual Environments
CN108510592A (zh) * 2017-02-27 2018-09-07 亮风台(上海)信息科技有限公司 真实物理模型的增强现实展示方法
CN108830939A (zh) * 2018-06-08 2018-11-16 杭州群核信息技术有限公司 一种基于混合现实的场景漫游体验方法及体验系统
CN111190485A (zh) * 2019-12-27 2020-05-22 北京市商汤科技开发有限公司 信息显示方法、装置、电子设备、及计算机可读存储介质
CN111814146A (zh) * 2020-09-10 2020-10-23 平安国际智慧城市科技股份有限公司 针对对象的关联关系建立方法、装置、服务器及存储介质

Also Published As

Publication number Publication date
CN115878191A (zh) 2023-03-31

Similar Documents

Publication Publication Date Title
WO2021036809A1 (zh) 一种sim模块的管理方法及电子设备
WO2021027630A1 (zh) 补丁方法、相关装置及系统
WO2021063090A1 (zh) 一种建立应用组合的方法与电子设备
WO2021185105A1 (zh) SIM卡和eSIM卡的切换方法及电子设备
CN116360725B (zh) 显示交互系统、显示方法及设备
CN112789934B (zh) 一种蓝牙服务的查询方法及电子设备
CN114461239B (zh) 软件升级系统和软件升级方法
WO2020015259A1 (zh) 一种数据备份方法及终端
WO2022156535A1 (zh) 分布式应用的处理方法和装置
WO2023065931A1 (zh) 一种电子设备的充电方法及电子设备
JP2023528384A (ja) コンテンツ共有方法、装置、およびシステム
WO2022228065A1 (zh) 功能跳转方法及电子设备
WO2022247455A1 (zh) 一种音频分流的方法及电子设备
WO2022037725A1 (zh) 一种系统服务恢复方法、装置和电子设备
WO2020078297A1 (zh) 一种冻屏处理方法及终端
WO2023011216A1 (zh) 一种设备热插拔方法及终端设备
WO2023011215A1 (zh) 一种显示方法及电子设备
WO2023029983A1 (zh) 一种控件内容的拖拽方法、电子设备及系统
WO2022228190A1 (zh) 一种WiFi连接方法及装置
CN113489600B (zh) 一种网络参数的配置方法、装置以及存储介质
EP4191409A1 (en) Shared library multiplexing method and electronic device
CN111221544B (zh) 一种预装应用软件的管理方法及终端
WO2022228005A1 (zh) 一种消息提醒方法及终端设备
WO2023020496A1 (zh) 一种显示方法、芯片与电子设备
WO2024046062A1 (zh) 一种卡片跨设备交互方法及电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22851930

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22851930

Country of ref document: EP

Kind code of ref document: A1