Application cross-device transfer method, related device and communication system

By enabling application transfer through device capability detection, the problem of application transfer on new device types is solved, which reduces the workload of developers and improves work efficiency.

CN118377496BActive Publication Date: 2025-09-23HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202410330325.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-29
Publication Date
2025-09-23
Estimated Expiration
2042-11-29

AI Technical Summary

Technical Problem

In the existing technology, applications can only be circulated on devices that meet the device type requirements and cannot be successfully circulated on new device types, resulting in developers having to frequently upgrade and adjust applications, increasing their workload.

Method used

Through device capability detection, it is determined whether the new device meets the application requirements, and application flow is achieved based on the device capabilities, reducing the redevelopment and adaptation work of developers.

Benefits of technology

It breaks through the limitations of device types on application flow, allowing applications to flow on any device that meets the requirements, reducing the workload of developers and improving work efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118377496B_ABST
    Figure CN118377496B_ABST
Patent Text Reader

Abstract

The present application provides a method, related apparatus, and communication system for transferring applications across devices. After a first device receives an operation to transfer a first application to a second device, it can determine whether the device capabilities of the second device meet the requirements of the first application. If the device capabilities of the second device meet the requirements of the first application, the first application can be successfully transferred from the first device to the second device. The above method can overcome the limitations of device type on application transfer, allowing applications to be transferred on any type of device that meets the device capabilities required by the application.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of terminal technology, and in particular to a method for transferring applications across devices, related devices, and a communication system. Background Art

[0002] With the advancement of communication technology and devices, the types of devices are expanding. For example, there are mobile phones, tablets, TVs, speakers, wearable devices like smartwatches and headphones, and a variety of smart home devices. A user may own multiple devices and can transfer applications running on one device to another during use. This application transfer enables multiple devices to work together, providing a better user experience.

[0003] Currently, apps can only be successfully transferred if the device type meets the app's runtime requirements. However, as the number of device types increases, developers will be unable to transfer apps to new device types without upgrading or adjusting their apps. Summary of the Invention

[0004] This application provides a method, related apparatus, and communication system for cross-device application transfer. Devices can implement application transfer based on device capabilities. This allows applications to be transferred across any device type that meets the device capabilities required by the application. This method overcomes the limitations of device type on application transfer and improves developer productivity. Developers no longer need to redevelop and adapt applications when adding new device types.

[0005] In a first aspect, the present application provides a method for transferring an application across devices. A first device may detect a first operation, which may be used to transfer a first application. In response to the first operation, the first device may obtain first application information of the first application and first device information of a second device, where the first application information includes device capability information required by the first application, and the first device information includes device capability information of the second device. Based on the first application information and the first device information, the first device determines that the device capability of the second device meets the requirements of the first application. The first device transfers the first application to the second device.

[0006] It can be seen from the above method that devices can realize application flow based on device capabilities. In this way, even for newly emerging device types, as long as the device capabilities of the devices of the new device type meet the requirements of the application, the application can be transferred to the device of the new device type. Application developers do not need to upgrade and adjust the application for the newly emerging device type to make the application adapt to the new device type. It can be seen that the above method can break through the limitations of device type on application flow, allowing the application to flow on any type of device that meets the device capabilities required by the application. In addition, the above method can reduce the workload of developers and improve the work efficiency of developers. Developers do not need to redevelop and adapt applications when new device types are added.

[0007] In conjunction with the first aspect, in some embodiments, the above-mentioned first application information may include the RPCID of the first application. The RPCID of the first application may be obtained by encoding the device capabilities required by the first application. The RPCID of the first application may also include information such as the version number of the first application. The above-mentioned first device information may include the PCID of the second device. The PCID of the second device may be obtained by encoding the device capabilities of the second device. The PCID of the second device may also include one or more of the following information: the SDK version number of the OS of the second device, the system type of the second device, and the manufacturer ID of the second device.

[0008] In conjunction with the first aspect, in some embodiments, the specific process of the first device obtaining first application information of the first application and first device information of the second device in response to the first operation may include: in response to the first operation, the first device may search for K1 devices, where the K1 devices include the second device, and K1 is a positive integer; the first device may provide K1 device options corresponding to the K1 devices, where the K1 device options include a device option corresponding to the second device; the first device may detect the operation of selecting the device option corresponding to the second device; and the first device may obtain the first application information and the first device information.

[0009] As can be seen from the above method, after detecting the operation of streaming the first application, the first device can search for surrounding devices and present corresponding device options. The user can then select one of these devices as the target device for streaming the first application. The first device can determine whether the device capabilities of the device selected by the user meet the requirements of the first application based on the device selected by the user. In the above embodiment, the first device can only determine whether the device capabilities of the device selected by the user meet the requirements of the first application. This can save the first device's functions and increase the speed at which the first device responds to the above-mentioned first operation and other operations to stream the first application.

[0010] If the first device determines that the second device's device capabilities do not meet the requirements of the first application, the first device may prompt the user that the first application cannot be transferred to the second device. In this way, the user can reselect the target device to transfer the first application.

[0011] In combination with the first aspect, in other embodiments, the specific process of the first device obtaining the first application information of the first application and the first device information of the second device in response to the first operation may include: in response to the first operation, the first device can search for K1 devices, K1 devices include the second device, and K1 is a positive integer. The first device can obtain the first application information and the device information of K1 devices, and the device information of K1 devices includes the first device information. Further, based on the first application information and the device information of K1 devices, the first device can determine that the device capabilities of K2 devices in the K1 devices meet the requirements of the first application, K2 devices include the second device, and K2 is a positive integer less than or equal to K1. The first device provides K2 device options corresponding to the K2 devices, and the K2 device options include the device options corresponding to the second device. The first device detects the operation of selecting the device option corresponding to the second device. Then, the first device can transfer the first application to the second device.

[0012] As can be seen from the above method, after detecting the operation of streaming the first application, the first device can search for surrounding devices and filter out devices that meet the device capabilities required by the first application from the searched devices, that is, the K2 devices mentioned above. In the above embodiment, the devices corresponding to the device options given by the first device can all be devices that meet the device capabilities required by the first application. The user can successfully stream the first application to any device they choose. This can avoid the situation where the user selects a device that cannot stream the first application for application streaming and then needs to reselect the target device for application streaming.

[0013] In conjunction with the first aspect, in some embodiments, the first device can search for a third device. The first device can obtain second application information of the second application and second device information of the third device, where the second application information includes device capability information required by the second application, and the second device information includes device capability information of the third device. Based on the second application information and the second device information, the first device can determine that the device capabilities of the third device meet the requirements of the second application. The first device provides a first transfer control, which is used to transfer the second application to the third device. The first device detects an operation on the first transfer control and transfers the second application to the third device.

[0014] As can be seen from the above method, the first device can recommend to the user that the second application be transferred to a device that meets the device capabilities required by the second application. In this way, in the application transfer scenario, the user does not need to select the target device for application transfer. The above embodiment can simplify the user's application transfer operation and improve the user experience.

[0015] In conjunction with the first aspect, in some embodiments, the first device may send a request to the server to obtain the first application information and receive the first application information from the server. Alternatively, the first device may store the first application information. The first device may search for the first application information from a memory of the first device.

[0016] The first device may not store the program installation package of the first application, or may not have the first application installed. When the first operation for transferring the first application is detected, the first device may request the server to obtain the first application information. Alternatively, the first device may store the program installation package of the first application, or may have the first application installed. The program installation package of the first application may include the first application information. When the first operation for transferring the first application is detected, the first device may search for the first application information in the local storage, thereby eliminating the need to request the server to obtain the first application information.

[0017] In combination with the first aspect, in some embodiments, the first device transferring the first application to the second device may include migrating the first application to the second device, or the first device and the second device collaboratively running the first application.

[0018] For example, when the first device detects the first operation for transferring the first application, it is running the first application. The first device can migrate the first application to the second device. The first device can send data for restoring the running state of the first application to the second device. When the first application is migrated to the second device. The second device can run the first application and, based on the data for restoring the running state of the first application, restore the running state of the first application to the running state of the first application when the first device migrated the first application. In this way, the running state of the first application before and after the transfer can be seamlessly connected. The operations performed by the user on the first application on the first device can not be interrupted by the above-mentioned application transfer process. In addition, when the first application is migrated to the second device, the first device can stop running the first application.

[0019] For another example, after detecting a first operation for transferring a first application, the first device can collaborate with a second device to run the first application. The first device running the first application can provide function A. The second device running the second application can provide function B. In this way, the collaborative operation of the first application by the first and second devices can provide a better user experience.

[0020] In conjunction with the first aspect, in some embodiments, if the device capabilities of the second device meet the requirements of the first application, the first device may send a request to the second device to transfer the first application. Upon receiving the request to transfer the first application, the second device may determine whether the first application is installed on the second device. If the first application is not installed on the second device, the second device requests the server to install the first application and runs the first application after the first application is installed. If the first application is installed on the second device, the second device may directly run the first application.

[0021] During the process of the second device requesting the server to install the first application, the second device may send a request to the server to install the first application. The request to install the first application may include the first device information of the second device. Based on the request to install the first application, the server may determine whether the device capabilities of the second device meet the requirements of the first application. If the device capabilities of the second device meet the requirements of the first application, the server may send installation information to the second device to install the first application. The second device may then install the first application. Otherwise, the server may send a message to the second device indicating that the installation failed.

[0022] In conjunction with the first aspect, in some embodiments, a first device detects a second operation, where the second operation is used to transfer a third application to a second device. In response to the third operation, the first device obtains third application information and first device information of the third application, where the third application information includes device capability information required by the third application. Based on the third application information and the first device information, the first device determines that the device capabilities of the second device do not meet the requirements of the third application. The first device may provide a transfer failure prompt, which indicates that the third application could not be transferred to the second device.

[0023] In conjunction with the first aspect, in some embodiments, a first device sends third device information of the first device to a second device, where the third device information includes device capability information of the first device. The first device receives a request to transfer a fourth application to the first device. The first device may run the fourth application. The device capabilities of the first device meet requirements of the fourth application.

[0024] The first device can also be the target device for application transfers. For example, the second device can transfer the fourth application to the first device. The second device can determine whether the first device's device capabilities meet the requirements of the fourth application based on the first device's third device information and the device capabilities required by the fourth application. If the first device's device capabilities meet the requirements of the fourth application, the second device can transfer the fourth application to the first device.

[0025] Upon receiving the request to transfer the fourth application to the first device, the first device may determine whether the fourth application is installed on the first device. If the fourth application is not installed on the first device, the first device may request the server to install the fourth application and, after the fourth application is installed, run the fourth application. If the fourth application is installed on the first device, the first device may directly run the fourth application.

[0026] In conjunction with the first aspect, in some embodiments, a first device may send a first request to a server, the first request being for installing a fourth application. The first request includes third device information of the first device, where the third device information includes device capability information of the first device. The first device receives the installation information for the fourth application and installs the fourth application. The device capabilities of the first device meet the requirements of the fourth application.

[0027] Based on the first request, the server may determine whether the device capabilities of the first device meet the requirements of the fourth application. If the device capabilities of the first device meet the requirements of the fourth application, the server may send installation information for the fourth application to the first device.

[0028] In conjunction with the first aspect, in some embodiments, the first device may send a second request to the server, the second request being used to request installation of a fifth application, the second request including third device information of the first device, the third device information including device capability information of the first device. The first device receives an installation failure notification, indicating that the first device is unable to install the fifth application. The device capabilities of the first device do not meet the requirements of the fifth application.

[0029] Based on the second request, the server may determine whether the device capabilities of the first device meet the requirements of the fifth application. If the device capabilities of the first device do not meet the requirements of the fifth application, the server may send the installation failure prompt to the first device.

[0030] It can be seen from the above embodiments that applications can be installed on devices based on device capabilities. In this way, even for newly emerging device types, as long as the device capabilities of the devices of the new device type meet the requirements of the application, the application can be installed on the devices of the new device type. Application developers do not need to upgrade and adjust the application for the newly emerging device types to make the application adapt to the new device types. It can be seen that the above method can break through the limitations of device type on application installation, so that the application can be installed on any type of device that meets the device capabilities required by the application. In addition, the above method can reduce the workload of developers and improve the work efficiency of developers. Developers do not need to redevelop and adapt applications when new device types are added.

[0031] In combination with the first aspect, in some embodiments, the above-mentioned device capability information includes one or more of the following: system capability information, chip solution capability information, and product solution capability information.

[0032] In a second aspect, the present application provides a communication system. The communication system may include a first device and a second device. The first device may be configured to detect a first operation, which may be configured to transfer a first application. The first device may also be configured to obtain, in response to the first operation, first application information of the first application and first device information of the second device, the first application information including device capability information required by the first application, and the first device information including device capability information of the second device. The first device may also be configured to determine, based on the first application information and the first device information, that the device capability of the second device meets the requirements of the first application, and to send a request to the second device to transfer the first application. The second device may be configured to run the first application in response to the request to transfer the first application.

[0033] It can be seen from the above method that devices can realize application flow based on device capabilities. In this way, even for newly emerging device types, as long as the device capabilities of the devices of the new device type meet the requirements of the application, the application can be transferred to the device of the new device type. Application developers do not need to upgrade and adjust the application for the newly emerging device type to make the application adapt to the new device type. It can be seen that the above method can break through the limitations of device type on application flow, allowing the application to flow on any type of device that meets the device capabilities required by the application. In addition, the above method can reduce the workload of developers and improve the work efficiency of developers. Developers do not need to redevelop and adapt applications when new device types are added.

[0034] In conjunction with the second aspect, in some embodiments, the above-mentioned first application information may include the RPCID of the first application. The RPCID of the first application may be obtained by encoding the device capabilities required by the first application. The RPCID of the first application may also include information such as the version number of the first application. The above-mentioned first device information may include the PCID of the second device. The PCID of the second device may be obtained by encoding the device capabilities of the second device. The PCID of the second device may also include one or more of the following information: the SDK version number of the OS of the second device, the system type of the second device, and the manufacturer ID of the second device.

[0035] In conjunction with the second aspect, in some embodiments, the second device may be further configured to determine whether the first application is installed on the second device based on the request to transfer the first application. The second device may be configured to request the server to install the first application if the first application is not installed on the second device, and to run the first application after the first application is installed.

[0036] In conjunction with the second aspect, in some embodiments, the communication system may further include a server. The server may be configured to determine, based on a request from a second device to install the first application, whether the device capabilities of the second device meet the requirements of the first application. The server may be configured to send installation information for the first application to the second device if the device capabilities of the second device meet the requirements of the first application. The second device may be configured to install the first application based on the installation information for the first application.

[0037] It can be seen from the above embodiments that applications can be installed on devices based on device capabilities. In this way, even for newly emerging device types, as long as the device capabilities of the devices of the new device type meet the requirements of the application, the application can be installed on the devices of the new device type. Application developers do not need to upgrade and adjust the application for the newly emerging device types to make the application adapt to the new device types. It can be seen that the above method can break through the limitations of device type on application installation, so that the application can be installed on any type of device that meets the device capabilities required by the application. In addition, the above method can reduce the workload of developers and improve the work efficiency of developers. Developers do not need to redevelop and adapt applications when new device types are added.

[0038] In conjunction with the second aspect, in some embodiments, the first device may be configured to send a request to a server for obtaining first application information. The server may be configured to send the first application information to the first device. Alternatively, the first device may store the first application information. The first device may be configured to search for the first application information from a memory of the first device.

[0039] In combination with the second aspect, in some embodiments, the above-mentioned device capability information includes one or more of the following: system capability information, chip solution capability information, and product solution capability information.

[0040] In a third aspect, the present application provides a device, which may include a memory and a processor, wherein the memory can be used to store a computer program, and the processor can be used to call the computer program, so that the device executes any possible implementation method as in the first aspect.

[0041] In a fourth aspect, the present application provides a computer-readable storage medium comprising instructions, which, when executed on a device, enables the device to execute any possible implementation method as in the first aspect.

[0042] In a fifth aspect, the present application provides a computer program product, which may include computer instructions. When the computer instructions are run on a device, the device executes any possible implementation method as in the first aspect.

[0043] In a sixth aspect, the present application provides a chip, which is applied to a device, and the chip includes one or more processors, which are used to call computer instructions to enable the device to execute any possible implementation method as in the first aspect.

[0044] It is understandable that the device provided in the third aspect, the computer-readable storage medium provided in the fourth aspect, the computer program product provided in the fifth aspect, and the chip provided in the sixth aspect are all used to execute the methods provided in the embodiments of the present application. Therefore, the beneficial effects that can be achieved can be referred to the beneficial effects of the corresponding methods and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0045] Figure 1 is an architecture diagram of a communication system 10 provided in an embodiment of the present application;

[0046] Figure 2 1 is a schematic structural diagram of a device 100 provided in an embodiment of the present application;

[0047] Figure 3 This is a software structure diagram of a device 100 provided in an embodiment of the present application;

[0048] Figure 4 is an architecture diagram of a communication system 40 provided in an embodiment of the present application;

[0049] Figures 5A to 5C This is a schematic diagram of some cross-device application flow scenarios provided by the embodiments of the present application;

[0050] Figure 6A and Figure 6B Schematic diagram of other cross-device application transfer scenarios provided by embodiments of the present application;

[0051] Figure 7A This is a schematic diagram of a PCID encoding provided in an embodiment of the present application;

[0052] Figure 7B This is a schematic diagram of RPCID encoding provided in an embodiment of the present application;

[0053] Figure 8 This is a flow chart of a method for transferring applications across devices provided by an embodiment of the present application;

[0054] Figure 9 This is a flowchart of an application installation method provided in an embodiment of the present application. DETAILED DESCRIPTION

[0055] The technical solutions in the embodiments of the present application are described below in conjunction with the drawings in the embodiments of the present application. Among them, in the description of the embodiments of the present application, the terms used in the following embodiments are only for the purpose of describing specific embodiments, and are not intended to be used as limitations on the present application. As used in the specification and claims of the present application, the singular expressions "a", "said", "above", "the" and "this" are intended to also include expressions such as "one or more", unless there is a clear contrary indication in the context. It should also be understood that in the following embodiments of the present application, "at least one", "one or more" refer to one or more (including two). The term "and / or" is used to describe the association relationship of associated objects, indicating that three relationships can exist; for example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the associated objects before and after are in an "or" relationship.

[0056] References to "one embodiment" or "some embodiments" etc. described in this specification mean that the specific features, structures or characteristics described in conjunction with the embodiment are included in one or more embodiments of the present application. Therefore, the statements "in one embodiment", "in some embodiments", "in some other embodiments", "in some other embodiments", etc. appearing in different places in this specification do not necessarily refer to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in another way. The terms "including", "comprising", "having" and their variations all mean "including but not limited to", unless otherwise specifically emphasized in another way. The term "connected" includes direct and indirect connections, unless otherwise stated. "First" and "second" are used for descriptive purposes only and are not to be understood as indicating or implying relative importance or implicitly indicating the number of technical features indicated.

[0057] In the embodiments of this application, words such as "exemplarily" or "for example" are used to indicate examples, illustrations, or explanations. Any embodiment or design described as "exemplarily" or "for example" in the embodiments of this application should not be interpreted as being preferred or advantageous over other embodiments or designs. Rather, the use of words such as "exemplarily" or "for example" is intended to present the relevant concepts in a concrete manner.

[0058] The term "user interface (UI)" in the following embodiments of this application refers to a medium interface for interaction and information exchange between an application (APP) or an operating system (OS) and a user, which realizes the conversion between the internal form of information and the form acceptable to the user. The user interface is a source code written in a specific computer language such as Java and extensible markup language (XML). The interface source code is parsed and rendered on an electronic device and finally presented as content that the user can recognize. The commonly used form of user interface is a graphical user interface (GUI), which refers to a user interface related to computer operations that is displayed in a graphical manner. It can be a visual interface element such as text, icons, buttons, menus, tabs, text boxes, dialog boxes, status bars, navigation bars, widgets, etc. displayed on the display screen of an electronic device.

[0059] The present application provides a method for transferring applications across devices. Among them, the device may store a product compatibility identifier (PCID). PCID can be used to indicate the device capabilities of the device. The configuration file of the APP may contain the application compatibility identifier (RPCID) of the APP. RPCID can be used to indicate the device capabilities required by the APP. In other words, if the device has the device capabilities required by the APP, the device can run the APP. If the device capabilities of the device do not meet the requirements of the APP, the APP cannot be run on the device. In response to the operation of transferring the first APP running on the first device to the second device, the first device can determine whether the device capabilities of the second device meet the requirements of the first APP based on the RPCID of the first APP and the PCID of the second device. If the device capabilities of the second device can meet the requirements of the first APP, the first device can transfer the first APP to the second device, and the second device runs the first APP. If the device capabilities of the second device do not meet the requirements of the first APP, the first APP cannot be transferred from the first device to the second device.

[0060] It can be seen from the above method that devices can realize application flow based on device capabilities. In this way, even for newly emerging device types, as long as the device capabilities of the devices of the new device type meet the requirements of the application, the application can be transferred to the device of the new device type. Application developers do not need to upgrade and adjust the application for the newly emerging device type to make the application adapt to the new device type. It can be seen that the above method can break through the limitations of device type on application flow, allowing the application to flow on any type of device that meets the device capabilities required by the application. In addition, the above method can reduce the workload of developers and improve the work efficiency of developers. Developers do not need to redevelop and adapt applications when new device types are added.

[0061] To facilitate understanding, some concepts involved in this application are introduced here.

[0062] 1. Application (APP)

[0063] APPs may include traditional applications and installation-free applications. Among them, traditional applications may refer to applications that require users to perform installation operations in the application installation application (such as the application market APP) before they can be installed on the device. That is, the installation of traditional applications on the device requires the user to perform explicit installation operations. Installation-free applications may refer to applications that can be installed in the background by the device through the system program framework and can be used directly by the user without performing installation operations. That is, installation-free applications do not require users to perform explicit installation operations. The above-mentioned installation-free applications may also be called distributed applications or other names.

[0064] Among them, the installation-free application may include one or more components. A component may implement one or more functions. In some embodiments, a component runs in the device and may also display one or more interfaces. The components included in an installation-free application may be sub-applications of this installation-free application. An installation-free application may provide multiple functions. A component of this installation-free application may be used to provide some or all of the functions of this installation-free application. For example, a shopping application is an installation-free application. A shopping application may provide product browsing function, shopping cart function, payment function and other functions. A shopping application may include a component for providing product browsing function, a component for providing shopping cart function, and a component for providing payment function. The components included in the above-mentioned installation-free application can be understood as Alternatively, the component can also be understood as The ability in.

[0065] In some embodiments, a component can also be understood as an installation-free application.

[0066] Installation-free applications can support installation in component units. Different components can have different program installation packages. The above-mentioned program installation packages may contain code, resources, third-party libraries, and configuration files for implementing the components. The device can only install some components of an installation-free application. For example, the device currently only installs the component for providing the product browsing function. The user can use this component to browse products. In response to the operation of adding a product to the shopping cart, the device can obtain the program installation package of the component for providing the shopping cart function and install the component for providing the shopping cart function. In this way, the user can add the specified product to the shopping cart. In response to the operation of selecting a product and paying, the device can obtain the program installation package of the component for providing the payment function and install the component for providing the payment function. In this way, the user can make payment to purchase the corresponding product.

[0067] The different components of a no-installation app can be distributed across multiple devices. These multiple devices can collaborate through their installed components to meet user needs. For example, the first device does not have a payment account. The second device has a payment account and can make purchase payments. The first device has the aforementioned components for providing product browsing and the shopping cart. The second device has the payment component installed. The user can then browse products on the first device and add items to the shopping cart. The user can then make payments on the second device, purchasing the items added to the shopping cart on the first device.

[0068] These traditional apps can also offer multiple services. Compared to installation-free apps, a traditional app's installation package, offering multiple services, can be installed as a single component on a single device. In other words, these traditional apps don't support component-by-component installation. The multiple services offered by these traditional apps don't have the ability to be distributed across different electronic devices.

[0069] The cross-device application transfer method provided in this application can be applied to both the above-mentioned installation-free applications and the above-mentioned traditional applications.

[0070] 2. Equipment Capabilities

[0071] A device's capabilities may include one or more of the following: screen display capability, image capture capability, audio capture capability, audio playback capability, call capability, video playback capability, Bluetooth communication capability, wireless local area network (WLAN) communication capability, and so on. A device's capabilities depend on its software and hardware. For example, a device with a display screen may have screen display capabilities. A device without a display screen does not have screen display capabilities.

[0072] Equipment capabilities can be divided into system capabilities, chip solution capabilities, and product solution capabilities.

[0073] System capabilities may include capabilities provided by the device's operating system. For example, system capabilities may include, but are not limited to, screen display capabilities, image acquisition capabilities, audio acquisition capabilities, audio playback capabilities, call capabilities, video playback capabilities, Bluetooth communication capabilities, WLAN communication capabilities, etc.

[0074] Chip solution capabilities may include capabilities provided by the device's chip. For example, a device may have a neural-network processing unit (NPU). The chip solution capabilities provided by the device through the NPU may include, but are not limited to, image recognition, face recognition, speech recognition, and text comprehension. A device may have a graphics processing unit (GPU). The chip solution capabilities provided by the device through the GPU may include, but are not limited to, graphics rendering capabilities.

[0075] Product solution capabilities include capabilities defined by equipment manufacturers based on product requirements. For example, a refrigerator's product solution capabilities may include, but are not limited to, monitoring food freshness and food storage levels. A desk lamp's product solution capabilities may include, but are not limited to, intelligently turning the light on and off, and intelligently adjusting brightness and color temperature.

[0076] The embodiments of this application do not limit the above-mentioned system capabilities, chip solution capabilities, and product solution capabilities.

[0077] 3. Application flow

[0078] Application flow can include cross-terminal application migration and multi-terminal application collaboration.

[0079] Cross-end application migration can refer to an APP running on one device, switching to another device to continue running according to user needs, and at the same time, this APP can stop running on the original device. That is to say, in the scenario of cross-end application migration, the first device runs the first APP. In response to the operation of migrating the first APP to the second device, the first device can instruct the second device to run the first APP. According to the running status of the first APP when the first device migrates the first APP, the second device can continue to run the first APP. Moreover, after the first APP is transferred to the second device, the first device can stop running the first APP.

[0080] For example, the first device is running an email app and receives email information entered by the user (such as an email address, email subject, email body content, etc.). The first device can transfer the email app to the second device. The second device can run the email app and display the email information that the user has entered in the first device. In this way, the user can continue to edit emails on the second device. After the email app is transferred to the second device, the first device can close the email app.

[0081] In some embodiments, cross-device application migration may further include: a device transferring an APP that is not running on the device to a target device, so that the target device runs the transferred APP. Wherein, the device not running the transferred APP may include the device not having the transferred APP installed, or the device having the transferred APP installed but not running the transferred APP.

[0082] For example, a first device is running a program corresponding to a component in a shopping application that provides product browsing functionality, as well as a program corresponding to a component that provides a shopping cart functionality. A user can browse products on the first device and add desired products to a shopping cart. The first device does not have a component in the shopping application that provides payment functionality installed. In response to an operation to pay for an item in the shopping cart, the first device can transfer the component that provides payment functionality to a second device. The second device can run a program corresponding to the component that provides payment functionality. In this way, the user can complete the payment on the second device.

[0083] Multi-terminal collaboration of applications can refer to running different apps (such as components) on multiple devices simultaneously or alternately to implement a complete service, or running the same app (such as components) on multiple devices simultaneously to implement a complete service. In other words, in the scenario of multi-terminal collaboration of applications, the first device runs the second app, and in response to the operation of using the second device to collaboratively run the second app, the first device can instruct the second device to run the program corresponding to the second app or one or more components of the second app.

[0084] For example, the first device is running a game app and receives an operation to collaborate with the second device. The first device can transfer the game app to the second device. The first device can run the program corresponding to the component in the game app that provides the game controller function. The second device can run the program corresponding to the component in the game app that provides the game screen display function. In this way, the user can watch the game screen through the second device and perform game operations through the game controller function on the first device. The above-mentioned multi-terminal collaboration method can enhance the user's gaming experience.

[0085] As can be seen, application flow can be used to achieve multi-device linkage, providing distributed services such as cross-device email editing, multi-device collaborative fitness, and multi-screen gaming. This allows users to better utilize multiple devices and enhance the device experience in different scenarios.

[0086] The following introduces an architecture diagram of a communication system 10 provided in an embodiment of the present application.

[0087] like Figure 1 As shown, the communication system 10 may include a user-side device and an application market server.

[0088] The app market server may store the installation packages for various apps. User devices can retrieve these packages from the app market server and install the corresponding apps on their devices. The app installation packages may include configuration files. When developing an app, app developers can write the app's RPCID into the configuration files.

[0089] User-side devices may include devices that users touch and use. The types of user-side devices may include, but are not limited to: mobile phones, televisions, tablet computers, laptops, cars, range hoods, table lamps, stereos, refrigerators, soymilk machines, etc. The above-mentioned user-side devices can establish a communication connection with the application market server. The above-mentioned communication connection can be, for example, a 2G / 3G / 4G / 5G communication connection, a wireless fidelity (Wi-Fi) network communication connection, etc. The embodiment of the present application does not limit the method of the above-mentioned communication connection.

[0090] User-side devices can also establish communication connections. For example, a mobile phone and a TV can establish a communication connection. The mobile phone and TV can work together to run a gaming app. The mobile phone can provide the user with a game controller, and the TV can provide the user with the ability to view the game interface. Another example is a mobile phone and a range hood that can collaborate. The mobile phone can stream a recipe app to the range hood. The range hood can then display recipes from the recipe app, allowing the user to view the recipes on the range hood's display.

[0091] The following uses the structure of a mobile phone as an example to introduce the structure of a user-side device provided in an embodiment of the present application.

[0092] Figure 2 The structural diagram of the device 100 provided in an embodiment of the present application is exemplarily shown.

[0093] like Figure 2As shown, the device 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, 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 interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display 194, and a subscriber identification module (SIM) card interface 195, etc.

[0094] It should be understood that the structures illustrated in the embodiments of the present application do not constitute a specific limitation on the device 100. In other embodiments of the present application, the device 100 may include more or fewer components than shown, or may combine or separate certain components, or arrange the components differently. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0095] The processor 110 may include one or more processing units. For example, the processor 110 may include an application processor (AP), a modem processor, a graphics processing unit (GPU), an image signal processor (ISP), a controller, a memory, a video codec, a digital signal processor (DSP), a baseband processor, and / or a neural-network processing unit (NPU). The different processing units may be independent devices or integrated into one or more processors.

[0096] The controller may be the nerve center and command center of the device 100. The controller may generate an operation control signal based on the instruction operation code and the timing signal to complete the control of instruction fetching and execution.

[0097] Processor 110 may also include a memory for storing instructions and data. In some examples, the memory in processor 110 is a cache memory. This memory can store instructions or data that have just been used or are being recycled by processor 110. If processor 110 needs to use the instruction or data again, it can directly retrieve it from the memory. This avoids repeated accesses, reduces processor 110 latency, and thus improves system efficiency.

[0098] USB port 130 is an interface that complies with USB standards and may be a Mini USB port, a Micro USB port, or a USB Type-C port. USB port 130 can be used to connect a charger to charge device 100, transfer data between device 100 and peripheral devices, or connect headphones to play audio.

[0099] The charging management module 140 is used to receive charging input from a charger. The charger can be a wireless charger or a wired charger. While charging the battery 142, the charging management module 140 can also power the electronic device through the power management module 141.

[0100] The power management module 141 is used to connect the battery 142, the charging management module 140, and the processor 110. The power management module 141 receives input from the battery 142 and / or the charging management module 140 to provide power to the processor 110, the internal memory 121, the external memory, the display 194, the camera 193, and the wireless communication module 160.

[0101] The wireless communication function of the device 100 can be implemented through antenna 1, antenna 2, mobile communication module 150, wireless communication module 160, modem processor and baseband processor.

[0102] Antenna 1 and Antenna 2 are used to transmit and receive electromagnetic wave signals. Each antenna in device 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve antenna utilization. For example, antenna 1 can be reused as a diversity antenna for a wireless local area network. In other embodiments, the antennas can be used in conjunction with a tuning switch.

[0103] The mobile communication module 150 can provide wireless communication solutions for device 100, including 2G / 3G / 4G / 5G. The mobile communication module 150 may include at least one filter, a switch, a power amplifier, a low-noise amplifier (LNA), and the like. The mobile communication module 150 can receive electromagnetic waves from antenna 1, filter and amplify the received electromagnetic waves, and transmit 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 for radiation via antenna 1.

[0104] The wireless communication module 160 can provide wireless communication solutions applied to the device 100, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared technology (IR), etc. The wireless communication module 160 can be one or more devices that integrate 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 for radiation through the antenna 2.

[0105] Device 100 implements display functionality through a GPU, display screen 194, and an application processor. The GPU is a microprocessor for image processing that connects display screen 194 and the application processor. The GPU is used to perform mathematical and geometric calculations for graphics rendering.

[0106] The display screen 194 is used to display images, videos, etc. In some embodiments, the device 100 may include 1 or N display screens 194 , where N is a positive integer greater than 1.

[0107] The device 100 can implement a shooting function through an ISP, a camera 193, a video codec, a GPU, a display 194, and an application processor.

[0108] The ISP is used to process data fed back by the camera 193. For example, when taking a photo, the shutter is opened, and light is transmitted through the lens to the camera's photosensitive element. The light signal is converted into an electrical signal, which is then transmitted to the ISP for processing and converted into an image visible to the naked eye.

[0109] The camera 193 is used to capture still images or videos. In some embodiments, the device 100 may include 1 or N cameras 193, where N is a positive integer greater than 1.

[0110] The digital signal processor is used to process digital signals. In addition to processing digital image signals, it can also process other digital signals. For example, when the device 100 is selecting a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy.

[0111] The NPU is a neural network (NN) computing processor. Drawing on the structure of biological neural networks, such as the transmission patterns between neurons in the human brain, it rapidly processes input information and can continuously self-learn. The NPU enables intelligent cognitive applications such as image recognition, face recognition, speech recognition, and text comprehension on device 100.

[0112] The external memory interface 120 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the device 100. The external memory card communicates with the processor 110 via the external memory interface 120 to implement data storage functions. For example, files such as music and videos can be stored on the external memory card.

[0113] The internal memory 121 can be used to store computer executable program codes, which include instructions. The processor 110 executes various functional applications and data processing of the device 100 by running the instructions stored in the internal memory 121. The internal memory 121 may include a program storage area and a data storage area. Among them, the program storage area can store an operating system, an application required for at least one function (such as a sound playback function, an image playback function, etc.), etc. The data storage area can store data created during the use of the device 100 (such as audio data, a phone book, etc.), etc. In addition, 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 disk storage device, a flash memory device, a universal flash storage (UFS), etc.

[0114] The device 100 can implement audio functions such as music playback and recording through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the headphone jack 170D, and the application processor.

[0115] The audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signals. The audio module 170 can also be used to encode and decode audio signals. In some examples, the audio module 170 can be set in the processor 110, or some functional modules of the audio module 170 can be set in the processor 110. The speaker 170A, also known as the "speaker", is used to convert audio electrical signals into sound signals. The receiver 170B, also known as the "earpiece", is used to convert audio electrical signals into sound signals. The microphone 170C, also known as the "microphone" or "microphone", is used to convert sound signals into electrical signals. The headphone jack 170D is used to connect wired headphones.

[0116] The sensor module 180 may include a pressure sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a distance sensor, a proximity light sensor, a fingerprint sensor, a temperature sensor, a touch sensor, an ambient light sensor, a bone conduction sensor, and the like.

[0117] Buttons 190 include a power button, a volume button, etc. Motor 191 can generate vibration prompts. Indicator 192 can be an indicator light that can be used to indicate charging status, power changes, messages, missed calls, notifications, etc.

[0118] SIM card interface 195 is used to connect a SIM card. A SIM card can be connected to and disconnected from device 100 by inserting or removing it from SIM card interface 195. Device 100 may support one or N SIM card interfaces, where N is a positive integer greater than 1. Device 100 interacts with the network through the SIM card to implement functions such as call and data communications. In some examples, device 100 uses an eSIM, or embedded SIM card. The eSIM card can be embedded in device 100 and cannot be separated from device 100.

[0119] The device 100 may be equipped with Or devices with other operating systems. The embodiment of the present application does not limit the operating system installed on the device 100. Figure 1 The structure of the user side devices such as tablet computer, laptop computer, TV, stereo, range hood, refrigerator, etc. in the communication system 10 can refer to Figure 2 The structure of the device 100 is shown. These user-side devices may include more or fewer components than the device 100.

[0120] The software system of the device 100 can adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture. Taking the system as an example, the software structure of the device 100 is exemplified.

[0121] Figure 3 It is a software structure block diagram of the device 100 provided in an embodiment of the present application.

[0122] The layered architecture divides the software into several layers, each with a clear role and division of labor. The layers communicate with each other through software interfaces. In some embodiments, The system is divided into four layers, from top to bottom: application layer, application framework layer, Android runtime (Android Runtime) and system library, and kernel layer.

[0123] The application layer can include a series of application packages.

[0124] like Figure 3 As shown, the application package may include applications such as camera, gallery, calendar, call, map, navigation, WLAN, Bluetooth, music, short message, and service center. The service center app can be used to obtain the app's program installation package. For example, if the device 100 does not have the component for providing the shopping cart function of the aforementioned shopping application installed, in response to the operation of adding an item to the shopping cart, the service center app can request the application market server to obtain the program installation package for the component for providing the shopping cart function. The device 100 can then install the component for providing the shopping cart function.

[0125] The application framework layer provides APIs and programming frameworks for applications in the application layer. The application framework layer includes some predefined functions.

[0126] like Figure 3 As shown, the application framework layer may include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, an activity manager, and the like.

[0127] The window manager is used to manage window programs. The window manager can obtain the display size, determine whether there is a status bar, lock the screen, take screenshots, etc.

[0128] Content providers are used to store and retrieve data and make it accessible to applications. The data may include videos, images, audio, calls made and received, browsing history and bookmarks, phone books, etc.

[0129] The view system includes visual controls, such as those for displaying text and images. The view system is used to build applications. A display interface can consist of one or more views. For example, a display interface containing a text notification icon might include a view for displaying text and a view for displaying images.

[0130] The phone manager is used to provide communication functions of the device 100, such as management of call status (including answering, hanging up, etc.).

[0131] The resource manager provides various resources for applications, such as localized strings, icons, images, layout files, video files, and so on.

[0132] The Notification Manager allows applications to display notification information in the status bar (such as the pull-down notification bar). It can be used to convey notification-type messages and can disappear automatically after a short period of time without user interaction. For example, the Notification Manager is used to notify the completion of downloads, message reminders, etc. The Notification Manager can also be used to display notifications in the form of icons or scrolling text in the status bar at the top of the system, such as notifications from applications running in the background, or notifications that appear on the screen in the form of dialog windows. For example, text messages can be displayed in the status bar, prompts can be heard, the device can vibrate, and the indicator light can flash.

[0133] The Activity Manager is responsible for managing activities, starting, switching, and scheduling components in the system, as well as managing and scheduling applications. The Activity Manager can be called by upper-level applications to open corresponding activities.

[0134] Android Runtime includes core libraries and a virtual machine. Android Runtime is responsible for scheduling and management of the Android system.

[0135] The core library consists of two parts: one is the function that needs to be called by the Java language, and the other is the Android core library.

[0136] The application layer and application framework layer run in a virtual machine. The virtual machine executes Java files in the application layer and application framework layer as binary files. The virtual machine manages object lifecycles, stack management, thread management, security and exception management, and garbage collection.

[0137] The system library can include multiple functional modules, such as surface manager, media library, 3D graphics processing library (such as OpenGL ES), 2D graphics engine (such as SGL), etc.

[0138] The surface manager is used to manage the display subsystem and provide fusion of 2D and 3D layers for multiple applications.

[0139] The media library supports playback and recording of a variety of common audio and video formats, as well as static image files. The media library can support a variety of audio and video encoding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.

[0140] The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, compositing, and layer processing.

[0141] A 2D graphics engine is a drawing engine for 2D drawings.

[0142] The kernel layer is the layer between hardware and software. The kernel layer includes at least display driver, camera driver, audio driver, and sensor driver.

[0143] In some embodiments, Figure 3 The software structure of the device 100 shown may also include a system service layer ( Figure 3 (Not shown) The system service layer is the core capability set of the operating system of device 100. The system service layer can provide services to applications through the application framework layer. The system service layer may include a system basic capability subsystem set, a basic software service subsystem set, an enhanced software service subsystem set, and a hardware service subsystem set. The system basic capability subsystem set provides basic capabilities for running, scheduling, migrating, and other operations on multiple devices. The system basic capability subsystem set may include subsystems such as a distributed soft bus, distributed data management, and distributed task scheduling. The basic software service subsystem set provides common, general-purpose software services for the operating system. The basic software service subsystem set may include subsystems such as time notification, phone, and multimedia. The enhanced software service subsystem set provides the operating system with differentiated, capability-enhanced software services for different devices. The enhanced software service subsystem set may include subsystems such as smart screen-specific services, wearable device-specific services, and IoT device-specific services. The hardware service subsystem set provides hardware services for the operating system. The hardware service subsystem set may include subsystems such as location services, biometric recognition services, wearable device-specific hardware services, and IoT device-specific hardware services.

[0144] The embodiment of the present application does not limit the position of the system service layer in the software structure. For example, the system service layer can be between the application layer and the application framework layer. Alternatively, the system service layer can also be between the application framework layer and the system library.

[0145] Figure 4 The following is an exemplary diagram of the architecture of another communication system 40 provided in an embodiment of the present application.

[0146] like Figure 4 As shown, the communication system 40 may include a device 100, a device 101 and a server 200. The device 100 and the device 101 may be the aforementioned Figure 1 The user side device shown. The server 200 may be the aforementioned Figure 1 The application market server shown. A communication connection can be established between device 100, device 101 and server 200. The above communication connection can be, for example, a wired communication connection, or a wireless communication connection such as a 2G / 3G / 4G / 5G communication connection, a Wi-Fi communication connection, a Bluetooth communication connection, etc. The embodiment of the present application does not limit the method of the above communication connection.

[0147] The device 100 may include an application layer and a system service layer. The application layer may include applications such as a service center app 411. The system service layer may include a package management module 412, a device information synchronization module 413, a system capability query module 414, and a system attribute storage module 415.

[0148] The system attribute storage module 415 can be used to store attribute information of the operating system of the device 100. For example, the attribute information of the operating system of the device 100 may include: the PCID of the device 100, the type of the operating system of the device 100, the manufacturer identification of the device 100, the version number of the software development kit (SDK) of the operating system of the device 100, etc. The embodiment of the present application does not limit the attribute information of the above operating system. In particular, the attribute information of the above operating system may be written into the system attribute storage module 415 by the device 100 before leaving the factory.

[0149] The system capability query module 414 may be used to obtain the attribute information of the operating system of the device 100 from the system attribute storage module 415. The system capability query module 414 may provide a query interface so that the device information synchronization module 413 and other modules may query the attribute information of the operating system of the device 100.

[0150] Device information synchronization module 413 can be used to synchronize device information between device 100 and other devices. Specifically, device information synchronization module 413 can query the attribute information of the operating system of device 100 using the query structure provided by system capability query module 414. Device 100 can use device information synchronization module 413 to send its device information (such as device name, device type, operating system attribute information, etc.) to other electronic devices. Device 100 can also obtain device information from other devices through device information synchronization module 413.

[0151] The package management module 412 may be used to manage program installation packages in the device 100 and install the corresponding APP in the device 100. In some embodiments, the package management module 412 may be used to determine whether the device with a communication connection established with the device 100 meets the requirements of the APP based on the APP's PRCID and the PCID of the device with a communication connection established with the device 100, thereby determining whether the APP can be transferred to the device with a communication connection established with the device 100. If the APP can be transferred to a device with a communication connection established with the device 100, such as the device 101, the package management module 412 may send a request to transfer the APP to the device 101, thereby enabling the APP to be transferred from the device 100 to the device 101.

[0152] In some embodiments, the package management module 412 can obtain the APP's installation package from the server 200 via the service center APP 411, or obtain the APP's RPCID. In other embodiments, the APP's installation package is stored on the device 100. The APP's installation package may include the APP's RPCID. The package management module 412 can obtain the APP's RPCID from the APP's installation package stored on the device 100.

[0153] The service center APP 411 can be used to obtain the APP's program installation package from the server 200. In some embodiments, the service center APP 411 can also separately obtain the APP's RPCID from the server 200. The server 200 can send the obtained APP's program installation package or the APP's RPCID to the package management module 412. This embodiment of the application does not limit the application used in the device 100 to obtain the APP's program installation package.

[0154] Not limited to Figure 4 The device 100 may also include more or fewer modules, or combine some modules, or split some modules. For example, the device 100 may also include the aforementioned Figure 3 The application framework layer, system library, and kernel layer are shown.

[0155] Device 101 may include an application layer and a system service layer. The application layer may include applications such as a service center app 421. The system service layer may include a package management module 422, a device information synchronization module 423, a system capability query module 424, and a system attribute storage module 425. The service center app 421, package management module 422, device information synchronization module 423, system capability query module 424, and system attribute storage module 425 may be described in the aforementioned description of the service center app 411, package management module 412, device information synchronization module 413, system capability query module 414, and system attribute storage module 415 of device 100, respectively. These descriptions will not be repeated here.

[0156] The device types of device 100 and device 101 may be the same or different. The types of operating systems of device 100 and device 101 may be the same.

[0157] The server 200 may include an application providing module 431 and an application and device matching module 432 .

[0158] The application provisioning module 431 may be used to provide an APP installation package. For example, in response to a request from device 100 for a first APP, server 200 may send the first APP's download address to device 100 via the application provisioning module 431. Device 100 may then download the first APP's installation package based on the first APP's download address. In some embodiments, the application provisioning module 431 may also be used to separately provide the APP's RPCID.

[0159] The application and device matching module 432 can be used to determine whether the application and device match based on the application's RPCID and the device's PCID. A match between the application and the device can indicate that the device's capabilities meet the application's requirements. That is, the device's PCID includes all the device capabilities required by the application's RPCID. A mismatch between the application and the device can indicate that the device's capabilities do not meet the application's requirements. That is, the device's PCID does not include all the device capabilities required by the application's RPCID, or the device's PCID only includes some of the device capabilities required by the application's RPCID.

[0160] In some embodiments, upon receiving a request from device 100 to obtain a first APP, server 200 may determine whether the first APP and device 100 match through application and device matching module 432. If the first APP and device 100 match, server 200 may send the download address of the first APP to device 100 through application providing module 431. If the first APP and device 100 do not match, server 200 may reject device 100's request to obtain the first APP. In other words, if the first APP and device 100 match, device 100 can install the first APP. If the first APP and device 100 do not match, device 100 cannot install the first APP.

[0161] The server 200 may also include more or fewer modules. The embodiment of the present application does not limit the division of modules in the server 200.

[0162] The following describes a scenario of application cross-device flow provided by an embodiment of the present application.

[0163] Figures 5A to 5C A schematic diagram of a scenario of application transfer across devices is shown as an example.

[0164] like Figure 5AAs shown, the device 100 can run the recipe app and display user interface 510. User interface 510 can be the user interface of the recipe app. Among them, the device 100 can display the specific content of the recipe viewed by the user in user interface 510. For example, in response to the user opening the recipe app, the device 100 can display the main interface of the recipe app. Then, in response to the operation of searching for the "toast" recipe in the recipe app, the device 100 can display the user interface corresponding to the "toast" recipe in the recipe app (see user interface 510).

[0165] In some embodiments, the device 100 may further display a transfer control 511 on the user interface 510. The transfer control 511 may be used to transfer the recipe APP to other devices.

[0166] In response to an operation on the streaming control 511, such as a touch operation, the device 100 may search for surrounding devices. The device 100 may display the searched devices. Figure 5B The user interface 520 shown in FIG. 100 may include devices that have established a communication connection with the device 100, devices that are in the same local area network as the device 100, and the like.

[0167] like Figure 5B As shown, the user interface 520 may include a flow information card 521 and a device tab sheet 522 .

[0168] The flow information card 521 may include an application name 521A and a title 521B. The application name 521A may be used to indicate the name of the APP to be circulated in the device 100. For example, if the application name 521A is "Recipe", it can indicate that the APP to be circulated is a recipe APP. The title 521B can be used to indicate the content to be circulated. For example, if the title 521B is "Toast", it can indicate that the content to be circulated is the recipe content of "Toast" in the recipe APP. The embodiment of the present application does not limit the content contained in the flow information card 521.

[0169] The device tab sheet 522 may include device options corresponding to the devices searched by the device 100. These device options may facilitate the user to select a device and transfer the APP to the device selected by the user.

[0170] In one possible implementation, device 100 can distinguish among the searched devices: devices logged in with the same device account as device 100 and devices logged in with different device accounts. Device 100 can separately display device options corresponding to devices logged in with the same device account as device 100 and device options corresponding to devices logged in with different device accounts in device tab sheet 522. This embodiment of the present application does not limit the method by which device 100 distinguishes the device accounts of the searched devices.

[0171] Exemplarily, the device tab sheet 522 may include a same-account device options area 523 and a different-account device options area 524. The same-account device options area 523 may be used to display device options corresponding to devices with the same device account as the device 100 logged in. For example, the same-account device options area 523 may include a range hood option 523A, a TV option 523B, a tablet option 523C, and a laptop option 523D. The different-account device options area 524 may be used to display device options corresponding to devices with different device accounts than the device 100 logged in. For example, the different-account device options area 524 may include Li Si's tablet option 524A. The device tab sheet 522 may also include a search control 525. The search control 525 may be used to trigger the device 100 to search for more surrounding devices and display device options corresponding to the searched devices in the device tab sheet 522.

[0172] In one possible implementation, after the device 100 searches for surrounding devices, it can also filter the surrounding devices and display device options corresponding to devices that can match the APP to be transferred (such as a recipe APP) in the device tab sheet 522. Specifically, the device 100 can determine whether the searched device matches the recipe APP (that is, whether the device capabilities of the searched device meet the requirements of the recipe APP) based on the PCID of the searched device and the RPCID of the recipe APP. When the searched device matches the recipe APP, the device 100 can display the device options corresponding to the device in the device tab sheet 522. In other words, the device options in the device tab sheet 522 are all device options corresponding to devices that match the recipe APP.

[0173] For example, a recipe app requires a device to have screen display capabilities. The device 100 can filter out devices with screen display capabilities (such as range hoods, TVs, tablets, laptops, etc.) from the searched devices. The device 100 can display device options corresponding to the filtered devices in the device tab sheet 522.

[0174] like Figure 5BAs shown, in response to the operation of the range hood option 523A, the device 100 can transfer the recipe APP to the range hood.

[0175] In one possible implementation, device 100 may display device options corresponding to all searched devices in device tab sheet 522. Then, in response to selecting a device option, device 100 may determine whether the device corresponding to the selected device option matches the recipe app. If the device and the recipe app match, device 100 may successfully transfer the recipe app to the device. If the device and the recipe app do not match, device 100 may prompt the user that the recipe app cannot be transferred to the device.

[0176] For example, in response to an operation on the range hood option 523A, the device 100 may determine whether the range hood and the recipe app match based on the range hood's PCID and the recipe app's RPCID. If the range hood has all the device capabilities required by the recipe app, then the range hood and the recipe app match. The recipe app's RPCID may indicate that the recipe app requires the device to have screen display capabilities. The range hood is equipped with a display screen. The range hood's PCID may indicate that the range hood has screen display capabilities. Therefore, the device 100 may determine that the range hood and the recipe app match. The device 100 may transfer the recipe app to the range hood.

[0177] Among them, the device 100 can send a request to transfer the recipe APP to the range hood. The request may include the device information of the device 100 (such as device name, device type, etc.) and the application information of the recipe APP (such as application name, application version number). The range hood can determine the APP to be transferred and the device from which the APP is transferred based on the request. The request may also include data for restoring the running status of the recipe APP. The range hood can run the recipe APP and adjust to the running status of the recipe APP on the device 100 based on the data for restoring the running status of the recipe APP.

[0178] like Figure 5C As shown, when receiving the request to stream the recipe APP sent by the device 100, the range hood can display the user interface 530 on the display screen. The user interface 530 is the user interface of the recipe APP. Among them, the range hood can adjust the recipe APP to the running state on the device 100. For example, when the device 100 streams the recipe APP, the recipe of "toast" in the recipe APP is displayed (see Figure 5AWhen the recipe app is transferred to the range hood, the range hood can display the "toast" recipe on user interface 530. This allows the recipe app to seamlessly transition between its original state and the rest of the process. The user can continue viewing the "toast" recipe on the range hood without having to re-search for the recipe on device 100.

[0179] In some embodiments, when the recipe APP is transferred to the range hood, the device 100 can close the recipe APP.

[0180] It is understood that the display screen of device 100 and the display screen of the range hood may be different sizes. After the recipe app is transferred to the range hood, the range hood can adjust the layout of the content displayed on the user interface of the recipe app so that the displayed content is adapted to the display screen of the range hood. This embodiment of the application does not limit the method for adjusting the layout of the content displayed on the user interface of the recipe app.

[0181] In some embodiments, the user interface 530 may further include a migration control 531. The above-mentioned migration control 531 can be used to transfer the recipe APP back to the device 100. In response to the operation of the migration control 531, the range hood can send a request to migrate the recipe APP back to the device 100. The request may include data for restoring the running state of the recipe APP. The device 100 can run the recipe APP and adjust to the running state of the recipe APP on the range hood based on the data for restoring the running state of the recipe APP. For example, the user searches for the recipe of "steamed eggs" in the recipe APP running on the range hood. The range hood can display the specific content of the recipe of "steamed eggs" on the display screen. In response to the operation of the migration control 531, the range hood can transfer the recipe APP back to the device 100. The device 100 can display the above-mentioned "steamed eggs" recipe.

[0182] From the above Figures 5A to 5C As can be seen from the illustrated scenario, when device 100 migrates an APP to another device, it is not limited by the device type. The APP can be migrated to any type of device that meets the device capabilities required by the APP.

[0183] The following describes another scenario of cross-device application transfer provided by an embodiment of the present application.

[0184] Figure 6A and Figure 6B A schematic diagram of a scenario of application transfer across devices is shown as an example.

[0185] like Figure 6A As shown, the device 100 can run a game APP and display a user interface 610. The user interface 610 can be a user interface of the game APP.

[0186] In some embodiments, the device 100 can search for devices around it that can run the game app in conjunction with the device 100. Specifically, the device 100 can search for devices around it. The device 100 can determine whether the searched device matches the game app (i.e., whether the device capabilities of the searched device meet the requirements of the game app) based on the PCID of the searched device and the RPCID of the game app. When the searched device matches the game app, the device 100 can prompt the user to use the searched device to run the game app in conjunction with the device 100, thereby obtaining a better gaming experience.

[0187] For example, the RPCID of the game APP indicates that the game APP requires the device to have screen display capabilities. The device 100 can search for the TV and determine that the TV has screen display capabilities based on the PCID of the TV. The device 100 can display the RPCID of the game APP in the user interface 610. Figure 6A The streaming recommendation control 611 is shown. The streaming recommendation control 611 can be used to prompt the user to stream the game APP to the TV.

[0188] In response to the operation of the streaming recommendation control 611, the device 100 may send a request to stream the game APP to the TV. The request may include device information of the device 100 (such as device name, device type, etc.) and application information of the game APP (such as application name, application version number). The request may also include data for restoring the running status of the game APP. The TV can run the game APP and adjust to the running status of the game APP on the device 100 based on the data for restoring the running status of the game APP. In this way, the running status of the game APP before and after the streaming can be seamlessly connected. The user can continue to play the game on the TV starting from the game progress on the device 100 when the game APP is streaming. The user's game progress will not be interrupted due to the streaming of the game APP.

[0189] like Figure 6B As shown, after the game APP is transferred to the TV, both the device 100 and the TV can run the game APP and work together to provide users with a better gaming experience. Among them, the TV can display a user interface 620. The user interface 620 can include the game screen in the game APP. In this way, the user can watch the game screen on the big screen and get a better game view. The device 100 can display a user interface 630. The user interface 630 can include controls for performing game operations (such as steering wheel operation controls, skill operation controls, etc.). In this way, the user can use the device 100 as a game controller to better operate the game.

[0190] In one possible implementation, the game APP may include a component for displaying the game interface and a component for performing game operations. When the device 100 runs the game APP, it may simultaneously run the program corresponding to the component for displaying the game interface and the program corresponding to the component for performing game operations (see Figure 6A In this way, the user watches the game screen and performs game operations on the device 100. In response to the operation of streaming the game APP to the TV (such as Figure 6A As shown in the operation of the streaming recommendation control 611, the device 100 can stream the above-mentioned component for displaying the game interface to the TV. When the above-mentioned component for displaying the game interface is streamed to the TV, the device 100 can stop running the program corresponding to the component for displaying the game interface. Figure 6B In the scenario where the device 100 and the television collaborate to run a game app, the device 100 can run the program corresponding to the component for operating the game, and the television can run the program corresponding to the component for displaying the game interface. The embodiments of the present application do not limit the specific method for the device 100 and the television to collaborate to run the game app.

[0191] In some embodiments, in addition to streaming the game APP to the TV, the device 100 can also provide more device options corresponding to devices with screen display capabilities. The user can select a device to run the game APP in conjunction with the device 100. The above method for the user to select a device to stream the game APP can refer to the above Figure 5B Description of the shown scenario.

[0192] From the above Figure 6A and Figure 6B As can be seen from the scenario shown, device 100 can transfer the app to other devices and run the app in collaboration with other devices without being restricted by device type. Device 100 can run the app in collaboration with any type of device that meets the device capabilities required by the app, providing users with a better user experience.

[0193] The following describes a method for defining and encoding PCID and RPCID provided in an embodiment of the present application.

[0194] 1. PCID

[0195] In one possible implementation, the PCID of the device 100 may include the SDK version number of the operating system (OS) of the device 100, the operating system type of the device 100, the manufacturer identification (ID) of the device 100, the system capability of the operating system of the device 100, the chip solution capability of the device 100, and the product solution capability of the device 100. The PCID of the device 100 may be Figure 7A Encode using the encoding method shown.

[0196] like Figure 7A As shown, the data size of the encoded PCID may not exceed 1.128KBytes.

[0197] The first 4 bytes of the PCID can be used to indicate the SDK version number of the OS of the device 100, the operating system type (such as For example, the first 15 bits of the PCID can be used to indicate the SDK version number of the OS of the device 100. The 16th bit of the PCID can be a preset binary code "0". Bits 16 to 20 of the PCID can be used to indicate the operating system type of the device 100. Bits 21 to 32 of the PCID can be reserved fields.

[0198] Bytes 5 to 8 of the PCID may be used to indicate the manufacturer ID of the device 100 .

[0199] The 9th to 128th bytes of the PCID can be used to represent the system capabilities of the operating system of the device 100. For example, each bit in the 9th to 128th bytes of the PCID can represent a system capability (OS system capability). If the binary code on a certain bit is "0", it means that the device 100 does not have the system capability represented by this bit. If the binary code on a certain bit is "1", it means that the device 100 has the system capability represented by this bit. Among them, the first bit in the 9th byte of the PCID can represent system capability 1 (OS SysCap1). The second bit in the 9th byte of the PCID can represent system capability 2 (OSSysCap2). If the first bit in the 9th byte of the PCID is "0", it means that the device 100 does not have system capability 1. If the first bit in the 9th byte of the PCID is "1", it means that the device 100 has system capability 1. The embodiment of the present application does not limit the specific content of the above-mentioned system capability 1 and system capability 2.

[0200] The 129th to 628th bytes of the PCID can be used to represent the chip solution capability of the device 100. The above chip solution capability can be defined in the PCID in the format of the string "Device.SysCap xxx". The "xxx" in the string "Device.SysCap xxx" can represent the specific chip solution capability. For example, if the chip solution capability of the device 100 includes image recognition capability, the PCID may contain the string "Device.SysCapImageIdentification". The string "Device.SysCapImageIdentification" can represent image recognition capability. The embodiment of the present application does not limit the definition format of the above chip solution capability.

[0201] The 629th to 1128th bytes of the PCID can be used to represent the product solution capability of the device 100. The above-mentioned product solution capability can be defined in the PCID in the format of the string "Vender.SysCap xxx". The "xxx" in the string "Vender.SysCap xxx" can represent the specific product solution capability. For example, if the product solution capability of the device 100 includes the ability to turn on and off the lights intelligently, the PCID may contain the string "Vender.SysCapLightOn / Off". The string "Vender.SysCapLightOn / Off" can represent the ability to turn on and off the lights intelligently. The embodiment of the present application does not limit the definition format of the above-mentioned product solution capability.

[0202] The PCID may be encoded before device 100 leaves the factory and then written into device 100. The PCID may also be written into device 100 by a device that develops the operating system. The present embodiment of the application does not limit the implementation method for writing the PCID into device 100. Optionally, the PCID in device 100 may be modifiable. For example, when device 100 upgrades its operating system, a modified PCID may be written into device 100.

[0203] The embodiment of the present application does not limit the number of bytes contained in the PCID. After encoding, the PCID can contain more or less bytes than 1.128Kbytes, for example: 128Bytes, 300Bytes, 628Bytes, 1.3Kbytes, etc.

[0204] Figure 7AThe PCID encoding method shown is merely an example provided by this application. The embodiments of this application do not limit the method for encoding the data content contained in the PCID. For example, the first 8 bytes of the PCID are used to indicate the SDK version number of the OS, and the 9th to 16th bytes are used to indicate the manufacturer ID, etc.

[0205] Optionally, the PCID does not need to be encoded before being written into the device 100 .

[0206] The encoding of the SDK version number, operating system type, manufacturer identification ID, chip solution capabilities, and product solution capabilities of the above-mentioned OS is optional. In some embodiments, the PCID may only include the system capabilities of the operating system. In other embodiments, in addition to the system capabilities of the operating system, the PCID may also include one or more of the SDK version number, operating system type, manufacturer identification ID, chip solution capabilities, and product solution capabilities of the OS. Optionally, the PCID may also include more device information.

[0207] Figure 7A The encoding method of the PCID shown can compress the data content contained in the PCID and reduce the amount of data in the PCID. This can facilitate the transmission and storage of the PCID.

[0208] 2.RPCID

[0209] In a possible implementation, the RPCID of an APP may include the version number of the APP, the system capabilities, chip solution capabilities, and product solution capabilities that the APP requires the device to have. Figure 7B Encode using the encoding method shown.

[0210] like Figure 7B As shown, the data size of the encoded RPCID may not exceed 1.128KBytes.

[0211] The first two bytes of the RPCID can be used to indicate the version number of the APP.

[0212] Bytes 3 to 8 of the RPCID may be reserved fields.

[0213] Bytes 9 to 128 of the RPCID can be used to indicate the system capabilities that the app requires the device to have. For details about bytes 9 to 128 of the RPCID, refer to the previous description of bytes 9 to 128 of the PCID.

[0214] Bytes 129 to 628 of the RPCID can be used to indicate the chip solution capabilities that the app requires the device to have. For details about bytes 129 to 628 of the RPCID, refer to the previous description of bytes 129 to 628 of the PCID.

[0215] Bytes 629 to 1128 of the RPCID can be used to indicate the product solution capabilities that the app requires the device to have. For details about bytes 629 to 1128 of the RPCID, refer to the description of bytes 629 to 1128 of the PCID.

[0216] The PRCID can be obtained by the application developer performing the above-mentioned encoding operation on the data content contained in the RPCID when developing the APP. The application developer can write the RPCID into the configuration file in the program installation package of the APP. When the APP is released, the RPCID of the APP can be uploaded to the server 200 together with the program installation package of the APP. The embodiment of the present application does not limit the implementation method of writing the RPCID in the configuration file of the APP. Optionally, the RPCID of the APP can be modified. For example, when the application developer modifies and upgrades the APP, he can modify the RPCID in the configuration file of the APP. The modified RPCID can be uploaded to the server 200 again and replace the original RPCID.

[0217] The embodiments of the present application do not limit the number of bytes contained in the RPCID. After encoding, the RPCID can contain more or less bytes than 1.128Kbytes, for example: 128Bytes, 300Bytes, 628Bytes, 1.3Kbytes, etc.

[0218] Figure 7B The RPCID encoding method shown is only an exemplary description provided by this application. The embodiment of this application does not limit the method for encoding the data content contained in the RPCID. For example: the first 4 bytes of the RPCID can be used to indicate the version number of the APP, and the 5th to 16th bytes can be reserved fields, etc.

[0219] Optionally, the RPCID does not need to be encoded before being written into the APP configuration file.

[0220] The above-mentioned APP version number, chip solution capabilities, and product solution capabilities that the APP requires the device to have are all optional. In some embodiments, the RPCID may only include the system capabilities that the APP requires the device to have. In other embodiments, in addition to the system capabilities that the APP requires the device to have, the RPCID may also include one or more of the APP version number, chip solution capabilities, and product solution capabilities that the APP requires the device to have. Optionally, the RPCID may also include more APP information.

[0221] Figure 7B The encoding method of the RPCID shown can compress the data content contained in the RPCID and reduce the amount of data in the RPCID. This can facilitate the transmission and storage of the RPCID.

[0222] It is understandable that the above-mentioned PCID and RPCID may also have other names, which is not limited in the embodiments of the present application.

[0223] The following describes a method for transferring applications across devices provided by an embodiment of the present application.

[0224] Figure 8 The flowchart of a method for transferring an application across devices is exemplified. The method may include steps S811 to S822.

[0225] Here we take the example of transferring APP from device 100 to device 101. Figure 4 As can be seen from the communication system 40 shown, the device 100 may include a service center APP 411, a package management module 412, and a device information synchronization module 413. The device 101 may include a package management module 422 and a device information synchronization module 423. In addition, the first APP may be installed in both the device 100 and the device 101. The device 100 may be, for example, a mobile phone. The device 101 may be, for example, a range hood, a television, and the like. The embodiment of the present application does not limit the device types of the device 100 and the device 101. The first APP may be an APP that can perform application flow. For example, the first APP may be a recipe APP, a game APP, and the like. The embodiment of the present application does not limit the first APP.

[0226] 1. (Steps S811 to S813) Device 100 and device 101 synchronize device information.

[0227] S811. The device 100 may obtain device information of the device 100.

[0228] In some embodiments, the device information of the device 100 may include the PCID of the device 100 .

[0229] In some embodiments, device information of the device 100 may be stored in the device 100. The device 100 may obtain the device information of the device 100 from a local memory.

[0230] Exemplarily, the device 100 may also include a system capability query module 414 and a system attribute storage module 415. The system attribute storage module 415 may store the PCID of the device 100. The system capability query module 414 may obtain the PCID of the device 100 from the system attribute storage module 415. The system capability query module 414 may provide a query interface. The device information synchronization module 413 may obtain the PCID of the device 100 through the query interface. In addition to the PCID of the device 100, the device information synchronization module 413 may also obtain other device information of the device 100. For example, the device information of the device 100 may also include the name of the device 100, the device account identifier logged in on the device 100, the device type of the device 100, and the like. The embodiments of the present application do not limit the device information of the device 100.

[0231] Optionally, the device 100 may obtain the device information of the device 100 from the server 200. The embodiment of the present application does not limit the method by which the device 100 obtains the device information of the device 100.

[0232] S812 : The device 101 may obtain device information of the device 101 .

[0233] In some embodiments, the device information of device 101 may include a PCID of device 101 .

[0234] In some embodiments, device 101 may store device information of device 101. Device 101 may obtain the device information of device 101 from a local memory.

[0235] The method for device 101 to obtain the device information of device 101 may refer to the introduction of the method for device 100 to obtain the device information of device 100 in the above step S811.

[0236] S813 . Device 100 and device 101 may synchronize device information of device 100 and device 101 .

[0237] Device 100 can send the device information of device 100 to the device information synchronization module 423 of device 101 through the device information synchronization module 413. Device 101 can send the device information of device 101 to the information synchronization module 413 of device 100 through the device information synchronization module 423. The device information of device 100 and device 101 can be transmitted through a wired communication connection between device 100 and device 101, or a wireless communication connection.

[0238] In one possible implementation, device 100 and device 101 may synchronize their respective device information after discovering each other. For example, device 100 and device 101 are both connected to the same local area network. Device 100 and device 101 may discover each other. Then, device 100 and device 101 may synchronize their respective device information.

[0239] In another possible implementation, device 100 and device 101 may synchronize their respective device information after receiving an APP transfer operation (e.g., an operation to transfer an APP running on device 100 to device 101, an operation to transfer an APP running on device 101 to device 100, etc.). That is, steps S811 to S813 may also be executed after step S818. This embodiment of the present application does not limit the time when device 100 and device 101 synchronize their respective device information.

[0240] Through the above steps S811 to S813, device 100 and device 101 can achieve device information synchronization. After the above device information synchronization, device 100 can obtain the PCID of device 101, and device 101 can obtain the PCID of device 100.

[0241] 2. (Steps S814 to S822 ) Device 100 transfers the first APP to device 101 .

[0242] S814 , device 100 receives an operation to transfer the first APP to device 101 .

[0243] The above-mentioned operation of transferring the first APP to the device 101 can refer to the aforementioned Figure 5B The operation of the range hood option 523A is shown, or you can refer to the above Figure 6A The operation of the flow recommendation control 611 is shown.

[0244] S815 . The first APP in the device 100 may send a request to the package management module 412 to transfer the first APP to the device 101 .

[0245] S816. The device 100 may request the server 200 to obtain the RPCID of the first APP.

[0246] The package management module 412 of the device 100 may request the server 200 to obtain the RPCID of the first APP through the service center APP 411 .

[0247] S817 . The server 200 may send the RPCID of the first APP to the device 100 .

[0248] The server 200 may send the RPCID of the first APP to the package management module 412 through the service center APP 411 .

[0249] In a possible implementation, the above steps S816 and S817 are optional.

[0250] When the first APP is installed in the device 100, the package management module 412 can obtain the RPCID of the first APP from the program installation package of the first APP. In this way, the device 100 does not need to request the server 200 to obtain the RPCID of the first APP. (That is, steps S816 and S817 are optional) For example, in the above Figures 5A to 5C as well as Figure 6A and Figure 6B In the application flow scenario shown, the device 100 does not need to request the server 200 to obtain the RPCID of the APP to be circulated (such as a recipe APP, a game APP, etc.).

[0251] When the first APP is not installed in the device 100, the package management module 412 can execute step S816 to obtain the RPCID of the first APP from the server 200. For example, there is no payment account in the device 100. There is a payment account in the device 101, and shopping payment can be made. The device 100 is installed with a component for providing a product browsing function and a component for providing a shopping cart function in the shopping application. However, the device 100 does not have a component for providing a payment function in the shopping application. The user can browse products in the device 100 and add the required products to the shopping cart. The user can use the control for payment in the device 100 to trigger the device 100 to transfer the above-mentioned component for providing the payment function to other devices, such as the device 101. According to the above-mentioned operation of transferring the component for providing the payment function, the device 100 can request the server 200 to obtain the RPCID of the component for providing the payment function.

[0252] S818 . The package management module 412 may obtain the PCID of the device 101 from the device information synchronization module 413 .

[0253] The embodiment of the present application does not limit the execution order of the above steps S816, S817 and S818. In one possible implementation, the package management module 412 can execute step S816 and step S818 simultaneously. Optionally, the package management module 412 can also execute step S818 first and then execute step S816.

[0254] S819. Device 100 may determine, based on the RPCID of the first APP and the PCID of device 101, whether the device capabilities of device 101 meet the requirements of the first APP.

[0255] S820: Device 100 may send a request to transfer the first APP to device 101.

[0256] Based on the RPCID of the first app and the PCID of device 101, device 100 can determine, through package management module 412, whether device 101 has all the device capabilities required by the first app. If device 101 has all the device capabilities required by the first app, then the device capabilities of device 101 meet the requirements of the first app. Package management module 412 can then send a request to transfer the first app to package management module 422 of device 101.

[0257] If device 100 does not have all or part of the device capabilities required by the first APP, then the device capabilities of device 100 do not meet the requirements of the first APP. Then, device 100 may display a transfer failure prompt. This transfer failure prompt can be used to inform the user that the first APP cannot be transferred to device 101.

[0258] S821 . The package management module 422 in the device 101 may instruct the first APP to run.

[0259] S822: The first APP in the device 101 runs.

[0260] In one possible implementation, the request for transferring the first APP in the above step S820 may include data for restoring the running state of the first APP. Particularly, when the operation of transferring the first APP to the device 101 is received, the first APP can be run in the device 100. The above data for restoring the running state of the first APP can be used to indicate the running state of the first APP in the device 100 when it is transferred. According to the above data for restoring the running state of the first APP, the device 101 can run the first APP and restore the running state of the first APP to the running state in the device 100 when the first APP is transferred. In this way, the running state of the first APP before and after the transfer can be seamlessly connected. The user's operations on the first APP on the device 100 can not be interrupted by the above application transfer process.

[0261] In one possible implementation, upon receiving a request to transfer the first APP from the device 100, the package management module 422 of the device 101 may determine whether the device 101 has the first APP installed. If the device 101 has the first APP installed, the device 100 may directly run the first APP. If the device 101 has not installed the first APP, the device 100 may request the program installation package of the first APP from the server 200 to install the first APP. The method for the device 100 to install the first APP can refer to the subsequent Figure 9 The application installation method shown.

[0262] In a possible implementation, steps S816 to S819 may be performed before step S814.

[0263] For example, the first APP in the device 100 receives the first APP that is transferred, but does not specify the operation of the device that is transferred (for example, Figure 5A After the first APP performs the operation on the transfer control 511 as shown), the first APP can send a request to the package management module 412 to transfer the first APP. Then, the package management module 412 can obtain the RPCID of the first APP and the PCID of the device searched by the device 100. Among them, the device 100 can search for the device 101. Then the package management module 412 can obtain the PCID of the device 101. The package management module 412 can filter out devices that can meet the device capabilities required by the first APP based on the RPCID of the first APP and the PCID of the device searched by the device 100. The device 100 can provide the user with device options corresponding to the devices filtered out by the above-mentioned package management module 412 (for example, Figure 5B ). That is, in response to an operation to transfer the first APP without specifying a device to transfer to, device 100 may first execute steps S816 to S819. The user may select a device to transfer to based on the device options provided by device 100. Upon receiving an operation to select the device option corresponding to device 101, device 100 may transfer the first APP to device 101. The operation of selecting the device option corresponding to device 101 is the operation of transferring the first APP to device 101 in step S814.

[0264] It needs to be explained that Figure 8 The order of the steps in the flowchart shown does not limit the order in which these steps are to be performed.

[0265] Through the above steps S814 to S822, the device 100 can transfer the first APP to the device 101.

[0266] From the above Figure 8 As can be seen from the method shown, the device 100 can realize application flow based on device capabilities. In this way, even for newly emerging device types, as long as the device capabilities of the device of the new device type meet the requirements of the application, the application can be transferred to the device of the new device type. The application developer does not need to upgrade and adjust the application for the newly emerging device type to make the application adapt to the new device type. It can be seen that the above method can break through the limitations of the device type on application flow, so that the application can flow on any type of device that meets the device capabilities required by the application. In addition, the above method can reduce the workload of developers and improve the work efficiency of developers. Developers do not need to redevelop and adapt the application when a new device type is added.

[0267] The following describes an application installation method provided by an embodiment of the present application.

[0268] Figure 9 The flowchart of an application installation method is exemplarily shown. The method may include steps S911 to S918.

[0269] Here we take the installation of APP on device 100 as an example. Figure 4 As can be seen from the communication system 40 shown, the device 100 may include a service center APP 411 , a package management module 412 , and a system capability query module 414 .

[0270] S911 . The package management module 412 may request the service center APP 411 to install a second APP.

[0271] In one possible implementation, upon receiving a request from another device to transfer the second APP to the device 100, the package management module 412 may determine whether the second APP is installed on the device 100. If the second APP is not installed on the device 100, the package management module 412 may request the service center APP 411 to install the second APP.

[0272] In another possible implementation, upon receiving a request from another application on device 100 to install a second app, package management module 412 may request service center app 411 to install the second app. For example, a component in a shopping app that provides product browsing functionality is currently installed on device 100, but a component that provides a shopping cart functionality is not yet installed. In response to adding a specified product to the shopping cart, the component that provides product browsing functionality may send a request to package management module 412 to install a component that provides a shopping cart functionality. Furthermore, package management module 412 may request service center app 411 to install the component that provides the shopping cart functionality.

[0273] S912 . The service center APP 411 may request the system capability query module 414 to obtain the PCID of the device 100 .

[0274] S913 , the system capability query module 414 may send the PCID of the device 100 to the service center APP 411 .

[0275] Device 100 may also include a system attribute storage module 415. System attribute storage module 415 may store the PCID of device 100. System capability query module 414 may obtain the PCID of device 100 from system attribute storage module 415. System capability query module 414 may provide a query interface. Service center app 411 may query and obtain the PCID of device 100 through this query interface.

[0276] S914 , the service center APP 411 may send a request to the server 200 to obtain the second APP, where the request includes identification information of the second APP and the PCID of the device 100 .

[0277] S915. The server 200 may search for the RPCID of the second APP and determine, based on the RPCID of the second APP and the PCID of the device 100, whether the device capabilities of the device 100 meet the requirements of the second APP.

[0278] S916 . The server 200 may send the download address of the second APP to the service center APP 411 .

[0279] S917. The service center APP 411 may send an instruction to install the second APP to the package management module 412. The instruction includes a download address of the second APP.

[0280] S918. The package management module 412 may install the second APP according to the download address of the second APP.

[0281] When the device capabilities of the device 100 do not meet the requirements of the second APP, the server 200 may send a download failure message to the device 100. Then, the device 100 may prompt the user that the second APP cannot be installed in the device 100.

[0282] In one possible implementation, if the device capabilities of the device 100 meet the request of the second APP, the server 200 may directly send the program installation package of the second APP to the device 100. The embodiment of the present application does not limit the method by which the device 100 obtains the program installation package of the second APP.

[0283] From the above Figure 9 As can be seen from the method shown, applications can be installed on devices based on device capabilities. In this way, even for newly emerging device types, as long as the device capabilities of the devices of the new device type meet the requirements of the application, the application can be installed on the devices of the new device type. Application developers do not need to upgrade and adjust the application for the newly emerging device types to make the application adapt to the new device types. It can be seen that the above method can break through the limitations of device type on application installation, allowing the application to be installed on any type of device that meets the device capabilities required by the application. In addition, the above method can reduce the workload of developers and improve their work efficiency. Developers do not need to redevelop and adapt applications when new device types are added.

[0284] It is understandable that the various user interfaces described in the embodiments of the present application are only example interfaces and do not limit the present application. In other embodiments, the user interface may adopt a different interface layout, may include more or fewer controls, and may add or reduce other functional options. As long as they are based on the same inventive concept provided by the present application, they are all within the scope of protection of the present application. It should be noted that, in the absence of contradiction or conflict, any feature in any embodiment of the present application, or any part of any feature, can be combined, and the combined technical solution is also within the scope of the embodiments of the present application.

[0285] As described above, the above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the above embodiments, those skilled in the art should understand that they can still modify the technical solutions described in the above embodiments, or make equivalent replacements for some of the technical features therein. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for transferring applications across devices, characterized in that: The method comprises: The first device detects a first operation for streaming a first application; In response to the first operation, the first device obtains first application information of the first application and first device information of the second device; wherein the first application information includes an encoded application compatibility identifier, the application compatibility identifier indicates device capability information required by the first application, and the first device information includes an encoded product compatibility identifier, the product compatibility identifier indicates device capability information of the second device; The first device determines, based on the first application information and the first device information, that device capabilities of the second device meet requirements of the first application; wherein the second device has all device capabilities required by the first application; The first device transfers the first application to the second device.

2. The method according to claim 1, characterized in that In response to the first operation, the first device acquiring first application information of the first application and first device information of the second device specifically includes: In response to the first operation, the first device searches for K1 devices, where the K1 devices include the second device, and K1 is a positive integer; The first device provides K1 device options corresponding to the K1 devices, and the K1 device options include a device option corresponding to the second device; The first device detects an operation of selecting a device option corresponding to the second device; The first device obtains the first application information and the first device information.

3. The method according to claim 1, characterized in that In response to the first operation, the first device acquiring first application information of the first application and first device information of the second device specifically includes: In response to the first operation, the first device searches for K1 devices, where the K1 devices include the second device, and K1 is a positive integer; The first device obtains the first application information and device information of the K1 devices, where the device information of the K1 devices includes the first device information; The determining, by the first device, based on the first application information and the first device information, that the device capability of the second device meets the requirement of the first application specifically includes: The first device determines, based on the first application information and the device information of the K1 devices, that device capabilities of K2 devices in the K1 devices all meet requirements of the first application, the K2 devices include the second device, and K2 is a positive integer less than or equal to K1; The first device provides K2 device options corresponding to the K2 devices, where the K2 device options include a device option corresponding to the second device; The first device detects an operation of selecting a device option corresponding to the second device.

4. The method according to any one of claims 1 to 3, characterized in that The method further comprises: The first device searches for a third device; The first device acquires second application information of the second application and second device information of the third device, where the second application information includes device capability information required by the second application, and the second device information includes device capability information of the third device; According to the second application information and the second device information, the first device determines that the device capability of the third device meets the requirement of the second application; The first device provides a first streaming control, where the first streaming control is used to stream the second application to the third device; The first device detects an operation on the first transfer control and transfers the second application to the third device.

5. The method according to any one of claims 1 to 3, characterized in that The method further comprises: The first device detects a second operation, where the second operation is used to transfer a third application to the second device; In response to the second operation, the first device obtains third application information of the third application and the first device information, where the third application information includes device capability information required by the third application; The first device determines, based on the third application information and the first device information, that the device capability of the second device does not meet the requirement of the third application; The first device provides a transfer failure prompt, where the transfer failure prompt is used to indicate that the third application cannot be transferred to the second device.

6. The method according to any one of claims 1 to 3, characterized in that The method further comprises: The first device sends third device information of the first device to the second device, where the third device information includes device capability information of the first device; The first device receives a request to transfer a fourth application to the first device; The first device runs the fourth application; The device capability of the first device meets the requirements of the fourth application.

7. The method according to claim 6, characterized in that Before the first device runs the fourth application, the method further includes: The first device determines whether the fourth application is installed on the first device, When the first device has not installed the fourth application, the first device requests the server to install the fourth application.

8. The method according to any one of claims 1 to 3, characterized in that The method further comprises: The first device sends a first request to the server, where the first request is used to request installation of a fourth application, and the first request includes third device information of the first device, where the third device information includes device capability information of the first device; The first device receives the installation information of the fourth application and installs the fourth application; The device capability of the first device meets the requirements of the fourth application.

9. The method according to any one of claims 1 to 3, characterized in that The method further comprises: The first device sends a second request to the server, where the second request is used to request installation of a fifth application, and the second request includes third device information of the first device, where the third device information includes device capability information of the first device; The first device receives an installation failure prompt, where the installation failure prompt is used to indicate that the first device cannot install the fifth application; The device capability of the first device does not meet the requirements of the fifth application.

10. The method according to any one of claims 1 to 3, characterized in that The device capability information includes one or more of the following: system capability information, chip solution capability information, and product solution capability information.

11. A device, characterized in that The device includes a memory and a processor, wherein the memory is used to store a computer program, and the processor is used to call the computer program, so that the device executes the method according to any one of claims 1 to 10.

12. A computer-readable storage medium comprising instructions, characterized in that: When the instructions are executed on a device, the device is caused to execute the method according to any one of claims 1 to 10.

13. A computer program product, characterized in that The computer program product comprises computer instructions, and when the computer instructions are run on a device, the device is caused to perform the method according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Cross-device application interaction method, electronic device and server

    CN114428618A

  • Desktop metadata display method, desktop metadata access method and related device

    CN115145439A