Method and system for cross-application information sharing

By introducing a context manager and input method module on mobile devices, context information sharing between different applications is achieved, solving the problem of users manually entering duplicate information when switching applications, thus improving user experience and efficiency.

CN121039637APending Publication Date: 2025-11-28创峰科技
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202380097096.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-04-28
Publication Date
2025-11-28

AI Technical Summary

Technical Problem

Existing technologies cannot effectively share context information between different applications on mobile devices, causing users to manually enter repetitive information when switching applications, which affects user experience and efficiency.

Method used

By introducing a context manager into mobile devices, context information from different applications can be processed and managed, and recommendation information can be shared between applications through the input method module, enabling seamless switching and automated information delivery.

Benefits of technology

It improves the efficiency of information sharing between different applications, reduces the time users spend manually entering information when switching applications, and enhances user experience and overall application performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121039637A_ABST
    Figure CN121039637A_ABST
Patent Text Reader

Abstract

The invention relates to information sharing in mobile and other systems. In a particular embodiment, a method is provided that includes obtaining contextual information from a first application. The context manager processes the context information. The context information is provided by a context manager or through an input method to a running second application. Other embodiments are also present.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] The present invention relates to information sharing in mobile systems and other systems.

[0002] Mobile devices such as smartphones and tablets have become increasingly popular and convenient in numerous applications due to their portability and connectivity. One of the key features of mobile devices is the ability to track and analyze user habits and behaviors. For example, a mobile device can track the applications and websites visited by a user, the length of time each application or website is used, and the operations performed within each application or website. A mobile device can also track the location and movement of a user, as well as the user's interactions with other devices and people.

[0003] The analysis of user habits and behaviors on a mobile device can improve user convenience. For example, it can be used to personalize the user experience by providing personalized recommendations, customizing the user interface, and saving user preference settings. It can also be used to optimize the performance of applications and websites.

[0004] To date, a variety of conventional techniques have been provided, but these techniques still have deficiencies for a number of reasons. Therefore, there is a need for new and improved methods and systems. SUMMARY

[0005] The present invention relates to information sharing in mobile systems and other systems. In certain embodiments, the present invention provides a method comprising obtaining context information from a first application. A context manager processes the context information. The context information is provided to a second application running by the context manager or through an input method. Other embodiments exist.

[0006] A system one or more computers can be configured, by being installed with software, firmware, hardware, or a combination thereof that, when executed, cause the system to perform specific operations or actions. One or more computer programs can be configured, by including instructions that, when executed by a data processing apparatus, cause the apparatus to perform the actions described above. One general aspect includes a method for sharing information between applications. The method includes accessing a first application stored in a non-volatile memory and launching the first application. The first application is associated with a plurality of context fields. The method further includes the first application populating a first plurality of context fields. Additionally, the method includes a context manager storing the populated first plurality of context fields. The method can include accessing a second application stored in the non-volatile memory and launching the second application. Moreover, the method includes initiating a recommendation request to the context manager. The method further includes the context manager generating one or more recommendations using the populated first plurality of context fields in response to the recommendation request. Furthermore, the method includes providing the one or more recommendations to the second application. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.

[0007] Implementations can include one or more of the following features. The method can include accessing a user interface to determine user permission accessibility of the populated first plurality of contextual fields to the context manager. Storing the populated first plurality of contextual fields in the method can include the context manager querying a state of the first application; returning the populated first plurality of contextual fields of the state of the first application to the context manager; constructing template recommendations for each state of the first application in the context manager by referencing the populated first plurality of contextual fields; defining a plurality of keywords associated with a plurality of properties of the populated first plurality of contextual fields; and storing the template recommendations and the plurality of keywords in the context manager. The method can further include initiating a promptless recommendation request by launching an input method of the second application; the context manager analyzing the promptless recommendation request; generating one or more recommendations by returning the template recommendations stored in the context manager based on an updated state of the first application. The method can further include sending a recommendation request by launching the input method of the second application with a text input; the context manager analyzing the recommendation request with the text input as a prompt; comparing the prompt to the plurality of keywords stored in the context manager to determine a keyword having a predetermined similarity; and formatting the one or more recommendations by adding the keyword having the predetermined similarity. Further, in the method, the context manager is a component registered to an operating system. The method can further include providing a query interface by a recommendation control component in the operating system for the context manager to check whether a user has enabled the first application to allow access to the populated first plurality of contextual fields to generate the one or more recommendations. The method can include the context manager generating an autocomplete suggestion for the input method using the populated first plurality of contextual fields of the first application. The method can include providing an input method interface that can include a suggestion field; and displaying the one or more recommendations in the suggestion field. The method can include accessing a third application stored in a non-volatile memory; launching the third application, the first application being associated with a second plurality of contextual fields; the third application populating the second plurality of contextual fields; and the context manager storing the populated second plurality of contextual fields. The method can further include providing a query / return interface by a state reporter for the first application to send updated first plurality of contextual fields to the context manager in response to a query from the context manager. The method can further include providing a notification interface by the state reporter for the first application to notify the context manager of a state change. Implementations of the described technology can include hardware, a method or process, or computer software on a computer-accessible medium.

[0008] Another general aspect of the present disclosure includes a method for sharing information across applications. The method includes launching a first application, the first application associated with a first plurality of context fields. The method also includes the first application populating the first plurality of context fields. The method also includes a context manager storing the populated first plurality of context fields. The method also includes launching a second application. The method also includes providing an input method for the second application on a user interface. The method also includes receiving a text input through the input method. The method also includes determining one or more keywords stored in the context manager based on a predetermined level of similarity to the text input. The method also includes the context manager generating one or more recommendations using at least the one or more keywords and the populated first plurality of context fields. The method also includes displaying the one or more recommendations on the user interface. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.

[0009] Implementations can include one or more of the following features. The method can include requesting recommendations from the context manager through the input method. The method can include adding a user profile that defines accessibility to the first plurality of context fields. The method can include categorizing the first plurality of context fields. Implementations of the described techniques can include hardware, a method or process, or computer software located on a computer-accessible medium.

[0010] Yet another general aspect of the present disclosure includes a system for sharing information across applications. The system includes a status reporter interface associated with a first application stored in a non-volatile memory. The first application is associated with a plurality of context fields populated with context templates based on a status of the first application. The system also includes a context manager module for interacting with the first application through the status reporter interface based on a query and a return communication. The system also includes a recommendation control interface connected to the context manager module to provide accessibility to the context templates in the plurality of context fields. The system also includes an input method module associated with a second application and interacting with the context manager module through a request recommendation interface for sending a request to the context manager module with or without a keyword. The context manager module is for generating a recommendation based on the keyword and / or based on the context templates in the plurality of context fields and sending the recommendation to the input method module of the second application. Other embodiments of this aspect include corresponding computer systems, apparatus, and computer programs recorded on one or more computer storage devices, each configured to perform the actions of the methods.

[0011] Implementations can include one or more of the following features. A state reporter interface is used to notify a context manager module of state changes of a first application. The context manager module is used to store and update a context template in a plurality of context fields and various keywords associated with various states of the first application. The context manager module is further used to evaluate accessibility of the first plurality of context fields set by a user through a recommendation control interface of the first application. Implementations of the described techniques can include hardware, a method or process, or computer software on a computer-accessible medium.

[0012] It should be appreciated that embodiments of the application provide a number of advantages over conventional techniques. As implemented by embodiments of the application, sharing context information across different applications can provide a number of advantages. Sharing context information can help improve overall user experience by enabling seamless switching between different applications. For example, if a user needs to share an estimated time of arrival with her friend, an input mechanism can generate text suggestions based on context information obtained from a navigation application and / or a ride-sharing application, where the context information is managed by a context manager. Sharing context information can improve efficiency of various applications and tasks. For example, the mobile user described above can save time that would otherwise be spent manually typing or copy-pasting the estimated time of arrival in a messaging application. In various implementations, data security is maintained because a context manager (which can be implemented as part of an operating system) can manage access to context information by different applications.

[0013] Embodiments of the application can be implemented in conjunction with existing systems and processes. For example, sharing context information across applications in accordance with embodiments of the application can be implemented in various operating systems. In addition, various techniques in accordance with the application can be incorporated into existing systems through software installation and updates. Other advantages exist.

[0014] The application achieves these advantages and others in light of the known art. However, a further understanding of the nature and advantages of the present application can be realized by reference to the remaining portions of the specification and the drawings. BRIEF DESCRIPTION OF DRAWINGS

[0015] Figure 1 is a simplified block diagram of a mobile device in accordance with embodiments of the application.

[0016] Figure 2 is a simplified block diagram of a system architecture for cross-application information sharing in accordance with embodiments of the application.

[0017] Figure 3 is an operational diagram of an exemplary cross-application information sharing system in accordance with embodiments of the application.

[0018] Figure 4is another operational diagram of an exemplary cross-application information sharing system according to embodiments of the present invention.

[0019] Figure 5 is a simplified flowchart of a method for cross-application information sharing according to embodiments of the present invention.

[0020] Figure 6 is a simplified flowchart of another method for cross-application information sharing according to embodiments of the present invention. DETAILED DESCRIPTION

[0021] The present invention relates to information sharing in mobile systems and other systems. In particular embodiments, the present invention provides a method that includes obtaining context information from a first application. A context manager processes the context information. The context information is provided to a second application in operation through the context manager or through an input method. Other embodiments exist.

[0022] The following description is presented to enable any person skilled in the art to make and use the invention, and is provided in the context of particular applications and their requirements. Various modifications to the preferred embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein can be applied to a wide range of embodiments. Thus, the present invention is not intended to be limited to the embodiments presented, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

[0023] In the following detailed description, numerous specific details are set forth in order to provide a more thorough understanding of the present invention. However, it will be apparent to one skilled in the art that the present invention can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form, rather than in detail, in order to avoid obscuring the present invention.

[0024] The reader's attention is directed to all papers and documents which are filed concurrently with this specification and which are open to public inspection with this specification, and the contents of all such papers and documents are incorporated herein by reference. All the features disclosed in this specification, (including any accompanying claims, abstract, and drawings) can be replaced by alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise. Thus, unless expressly stated otherwise, each feature disclosed is one example only of a generic series of equivalent or similar features.

[0025] Moreover, any element in a claim that does not specifically recite "means for" or "step for" is not to be interpreted as a "means or step" or "step for" clause as set forth in 35 U.S.C. § 112, ¶ 6. In particular, the use of "step of" or "step for" in the claims herein is not intended to invoke the provisions of 35 U.S.C. § 112, ¶ 6.

[0026] Please note that if labels left, right, front, back, top, bottom, forward, reverse, clockwise, and counterclockwise are used, these labels are used for convenience only and are not intended to imply any particular fixed direction. Rather, they are used to reflect the relative position and / or orientation of portions of an object to one another.

[0027] Figure 1 is a simplified block diagram of a mobile device according to embodiments of the application. This diagram is merely an illustration and should not limit the scope of the claims. One of ordinary skill in the art would realize the many possible variations and alternatives. As shown, the device 100, such as a smartphone or tablet, is made up of several major components that work in concert to make the device function properly. The mobile device includes a processor 100. As an example, the processor 100 includes a central processing unit (CPU) designed for mobile devices, such as smartphones, tablets, or laptops. The processor 101 can also include a graphics processing unit (GPU) and a neural processing unit (NPU). The CPU is responsible for executing most of the instructions a computer receives, the GPU is responsible for rendering graphics, and the NPU is dedicated to artificial intelligence and machine learning tasks. Some examples of mobile processors that include a GPU and NPU are Qualcomm Snapdragon 865 and Apple A14 Bionic. The mobile device also includes a screen 102. For example, the screen 102 includes a display device for the mobile device 100 to display information, such as text, images, and videos. The screen also allows the user to interact with the device, install various applications, and run applications supported by the processor 100. Optionally, the screen 102 is a touchscreen that can enable interaction with the mobile device by touching the screen. In various implementations, the mobile device 100 can include multiple displays (e.g., a front display and a rear display, etc.).

[0028] In addition, the mobile device 100 also includes an input 103 that provides various input methods, such as text input, voice input, picture input, or any digital form of data. The input 103 can be implemented through the screen 102 (e.g., a touch screen) to display the input methods on the screen. Voice or image recognition can also be used as input. The input 103 is also connected to the processor 101, allowing the input (whether text, voice, picture, video, or any digital form of data) to be processed, stored, and used by the mobile device. The input 103 can be integrated into the operating system software or firmware stored in the mobile device and configured through various interfaces in the software structure, including input methods for interacting with multiple applications actively running in the mobile device. Optionally, the input 103 can be configured with a user interface to determine the accessibility of certain state information of an active application (app) running on the mobile device. The mobile device 100 also includes a memory 106, also known as read-only memory (ROM) or internal memory, for permanently storing data, such as applications, photos, and videos. The applications include some system built-in applications and third-party applications. In various embodiments, the operating system and the applications can be stored in different storage locations, where the operating system has full access to various hardware components, such as the sensor 104, while the applications can only access the sensor 104 through the operating system.

[0029] The mobile device 100 also includes a memory 107. The memory is commonly known as random access memory (RAM) for temporarily storing data when the mobile device is in use. These data are deleted when the mobile device is powered off. Optionally, the operating system of the mobile device 100 can include a context manager component with a query / return function running in the background to interact with multiple active applications to obtain updated state information of the applications. For example, the context manager is implemented as one of the components of the operating system. The context manager component can be connected with the memory 107 for storing the updated state information of each active application. The context manager component can be connected with the processor 101 or analyze the updated state information of the active applications by itself to generate some simplified messages that can be shared and useful to other applications. The sharing function can be implemented through an interface between the context manager and the input method of each application.

[0030] In addition, the mobile device 100 includes a communication interface 108 that provides various connectivity options, such as Wi-Fi, Bluetooth, and cellular data, enabling it to connect to the Internet and other devices. The mobile device 100 can include sensors 104, which can be of various types, such as a gyroscope, accelerometer, and compass, for detecting motion, orientation, or other state information of the device and active applications on the device. The mobile device 100 can also include other components, such as one or more cameras and audio output 105.

[0031] Mobile devices, such as smartphones, tablets, and wearable devices such as smartwatches and smartglasses, are designed to be portable and used in a variety of different locations, often wirelessly connected to the Internet and other devices. Mobile devices are used for a variety of purposes, including making phone calls, sending text messages and emails, browsing the Internet, and running various applications. In many practical scenarios of using a mobile device, multiple applications are actively running on it, and users of these applications have the intent or practical benefit of sharing information of one application with other applications used by the user in a simplified and convenient manner. For example, if a user is taking a taxi to the airport and wants to send a text message to her friend with the estimated time of arrival, she typically needs to ask the taxi driver for the estimated time and type the information in the SMS application. But if she is using Uber (or other ride-hailing application), the application is allowed to know the location and traffic information. The user would like to have a way to access this information and easily share the information through the SMS application without typing in the text message application or even without typing. In another example, the user is listening to a new song using the media player of the smartphone; she likes the song and wants to recommend it to her friends through a social application. She typically needs to look up the song information and type (or copy / paste) into the social application. But the media player can have the song information, and only a cross-application information sharing solution is needed to easily access the song information of the media player and share the information to the social application.

[0032] Figure 2 is a simplified block diagram of a system architecture for cross-application information sharing according to embodiments of the present invention. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. As shown, the software system 200 for cross-application information sharing is provided in a mobile device in a software environment associated with an operating system that interacts with multiple third-party applications and system built-in applications. For example, the software system 200 can use Figure 1The illustrated mobile system 100 implements where operating systems and applications are stored in non-volatile memory and executed by a processor. The user context manager 210 is a component in the software system 200 for cross-application information sharing. The user context manager 210 registers with the operating system of the mobile device to manage various context information associated with multiple applications actively running in the mobile device in the background. The context manager 210 interacts with the applications 240, service providers 250, and system settings 260 through interfaces (e.g., application programming interfaces or APIs) 211, 213A, 213B, and 214 to perform cross-application information sharing functions.

[0033] The service providers 250 include applications from third parties or system built-in services (e.g., Uber, media player, calendar, etc.). For example, these applications are associated with their respective context fields, which can be populated with context information. In particular, the service providers 250 can send context information to the context manager 210 through the status reporter 215 in various ways. As an example, a notification interface 213A can be used: when a status change occurs, the status reporter 215 (e.g., configured as part of the service providers 250) will notify the context manager 210. A query / return interface 213B can also be used, where the context manager 210 can query the status of the service providers 250, and the service providers 250 will return corresponding data to the context manager 210, including updated context information associated with the status of the service provider applications.

[0034] The applications 240 represent applications running on the mobile device, which can be first party and third party applications (e.g., SMS application, WeChat, WhatsApp, etc.). The applications 240 can require user input through the input method 220, which is a software component that helps the user to input text content to the applications. The input method 220 can provide predictions before the user types in text to ease the user’s work. In embodiments of the present invention, the input method 220 sends a request to the context manager 210 through the request recommendation (ReqRecommend) interface 211 to obtain recommendations based on the context information of the service providers 250 for its text input. In a more general case, the recommendation request can be initiated by the input method as a system service. The context manager 210 returns one or more recommendations generated based on the updated context information obtained through the status reporter 215.

[0035] Reference Figure 2The context manager 210 interacts with the system settings 260 through its registration with the operating system through the recommendation control 216. The recommendation control 216 is a component of the system settings 260, which provides the end user with a toggle to control which service provider's content can be provided to the context manager 210 and used by the input method 220. The end user can turn on / off the functionality of a particular service provider through a user interface in the system settings 260 (e.g., through privacy or other settings). In other words, the end user has the right to decide the accessibility of the context information of the service provider to be shared with the application 240 through the input method 220.

[0036] Reference Figure 2 The present disclosure provides a system for cross-application information sharing associated with a mobile device. The system includes a state reporter interface 215 associated with a first application 250 stored in a non-volatile memory. The first application 250 is configured as a service provider that includes a plurality of context fields populated with context templates based on a state of the first application. The system further includes a context manager module 210 for interacting with the first application 250 through the state reporter interface 215 based on a query and a return communication. The state reporter interface 215 is further for sending a notification to the context manager module 210 to report any state change of the first application 250 or to update a current state of the first application 250. The current state is associated with a particular context template in the plurality of context fields. The system further includes a recommendation control interface 216 connected to the context manager module 210 to provide accessibility of the context templates in the first plurality of context fields. The recommendation control interface 216 can be established in the system settings and can be directly reset by a user of the first application 250 or other applications under the control of the system settings or operating system of the mobile device. The system further includes an input method module 220 associated with a second application 240. The input method module 220 is for interacting with the context manager module 210 through a request recommendation interface 212 for sending a request with or without a keyword to the context manager module 210 in a process related to a user's use of the second application. In some embodiments, the context manager module 210 is for generating a recommendation for the process related to the user's use of the second application based on the keyword. In some embodiments, the context manager module 210 is for generating a recommendation for the process related to the user's use of the second application 240 based on the context templates in the plurality of context fields depending on the current state of the first application 250. The context manager module 210 is for sending the recommendation to the input method module 220 of the second application 240.

[0037] Figure 3is an operational diagram of an exemplary cross-application information sharing system according to embodiments of the present application. This diagram is merely an example which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. Figure 3 An example of operating a cross-application information sharing system on a mobile device is shown. In step 301, a user launches the Uber application to book a ride to the airport. Throughout the ride, the Uber application will continue to run on the mobile device in process 302. As an example, the Uber application (if enabled by the user) is a service provider for context sharing. In step 303, the Uber application sends updated ride information (i.e., a kind of context information) such as distance to the destination airport and estimated time of arrival at 8:30 AM, etc. to the user context manager through a State Reporter component. In step 304, the user can also launch the SMS application during the ride and starts typing in step 305, which invokes the input method to send a recommendation request (with a hint expressed in any typed text) to the user context manager in step 306. In step 307, the user context manager generates or composes a recommendation using the updated ride information. In step 308, the user context manager will quickly provide the recommendation (e.g., the recommended text "I will arrive at the airport at 8:30 AM") (generated in step 307) to the input method. In step 309, the input method can provide a suggestion field as part of the input method area of the user interface to display the recommendation. Then, in step 310, when the user (e.g., "who") is using the SMS application, she can select the recommended text and edit the text if necessary, and if the user chooses to edit the text, the edited text is sent in step 311.

[0038] The user context manager registered to the operating system of the mobile device implements a query / return interface to send queries to the Uber application through a State Reporter component (see Figure 2 ) in some embodiments, the user context manager repeatedly sends queries (e.g., context information polling) after a predefined time period. The Uber then responds to the queries and returns the newly generated updated ride information (i.e., updated context information) to the user context manager. Optionally, the Uber application utilizes a State Reporter (e.g., see Figure 2 ) to notify the user context manager when a state change occurs (such as launch, exit, etc.).

[0039] When the user is using the SMS application, the SMS application is associated with the input method. If the user switches to a different application, e.g., the WeChat application, the input method will be assigned or associated to the WeChat application. For example, the "reqRecommend" interface between the input method and the user context manager can be defined as follows: String[ ] reqRecommend(String hint ) The input method will invoke the recommendation request to get the context information of the Uber application as a string array from the user context manager. The input method can be provided as a system service and is not limited to a single application like the Uber application. The interface function can provide multiple recommendations from the user context manager to the input method. The multiple recommendations are generated by the user context manager that has updated context information received from the Uber application that is updated in the mobile device.

[0040] In some embodiments, the recommendation request is invoked by launching the input method without requiring the user to type any text. For example, when hint = null, it means that the recommendation is requested without any hint. A template pre-generated and saved in the user context manager can be used as the returned recommendation when the user does not type anything (e.g., when the input method is just launched). The user context manager pre-builds templates for each SP's state. For example, Table 1 below shows templates for a taxi SP.

[0041] Table 1: Examples of templates stored in the user context manager for each taxi state

[0042] The user context manager will check all active service providers (SPs) running on the mobile device, and if the state of one SP is valid (e.g., non-empty), it will generate a recommendation for each SP.

[0043] Optionally, the information request carries a hint implied in the text input typed by the user. For example, when hint!= null, it means that the input method sends a recommendation request with a hint. The hint can be generated by the input method based on what the user has typed. For example, when the user types "My destination address is", the string "My destination address is" can be sent as the hint. If there is a hint, the user context manager compares the hint with keywords that are pre-defined for each attribute associated with the context information received from the SPs with updated states. For example, Table 2 below shows some pre-defined keywords corresponding to some taxi state attributes (TaxiState Attribute).

[0044] Table 2: Examples of pre-defined keywords by the user context manager based on corresponding taxi state attributes

[0045] If the similarity between the prompt and the keyword is at a predetermined level, the value of this attribute will become one of the possible recommendations returned to the input method from the user context manager. There are different comparison algorithms that can be applied to this solution. For example, the comparison is made using a natural language understanding (NLU) algorithm.

[0046] Figure 4 is another operational diagram of an exemplary cross-application information sharing system according to embodiments of the application. This diagram is merely an example which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. Figure 4 An example of operating a cross-application information sharing system with a user context manager running in the background is shown. The user context manager can be a software component that is registered to the operating system at step 401 to listen to newly launched / terminated applications. At step 402, the user launches a ride-hailing application, e.g., the Uber application, through an interface with the operating system (OS). The Uber application then starts running after the “launch application” instruction sent from the OS management. At step 403, the OS then launches the Uber application. At step 404, when the Uber application is launched, the OS also sends information to the user context manager about the Uber application launch.

[0047] At step 405, when receiving the information about the Uber application launch, the user context manager will send a query to the recommendation control component registered in the system settings to check if the Uber application is a service provider. The recommendation control will observe the installation and uninstallation of the application. For any application, the user can control the SP ON or OFF function through a user interface (UI) to enable or disable the application to be a service provider (SP) of the user context manager. Whenever there is an application installation, it will add a UI control for the application for the user to decide whether the application is a SP. When the SP is uninstalled, the corresponding UI control will be removed. Meanwhile, after determining that the Uber application is a SP at step 405, at step 406, the recommendation control component will provide a query interface for the user context manager to check the ON / OFF status of the SP, and at step 407, return Yes to the user context manager if the application is enabled by the user. If the SP is in the OFF state or not enabled by the user, the application will be ignored.

[0048] The ON status of the SP will allow the context information associated with the SP to be accessible to the user context manager for sharing with other applications. At step 408, the user context manager accesses the context information of the Uber application through the state reporter (see Figure 2) to Uber to access the current cab status of the Uber application with updated context information. In step 409, the Uber application will return the updated context information, such as the cab status, in response to the query. In step 410, the user context manager will save the cab status with the updated context information, i.e., the trip information associated with the Uber application, such as the destination, distance, arrival time, etc. In step 411, the user context manager will periodically receive the notifications sent by the SP application (through the status reporter) to update any status changes regarding the SP application in step 412. Finally, in step 413, the Uber application as the SP is exited by the user from the active mode. In step 414, the user will ask the operating system to terminate the application. In step 415, the operating system performs the action to terminate the Uber application and in step 416, notifies the user context manager about the termination of Uber. In step 417, when the user context manager receives the information about the termination of the SP, it will clean up the corresponding state storing the context information associated with the Uber application.

[0049] In an embodiment, the status reporter component in the service provider application provides a unified interface between the plurality of service providers and the user context manager. The interface will be divided into different domains for different types of service provider applications, e.g., transportation, media play, office tools, etc. Each interface corresponding to a particular category will define the data structure of the notification and the input / output parameters of the query / return functions. The service providers will integrate the status reporter component and implement the corresponding interface to interact with the user context manager.

[0050] For example, the cab interface within the transportation domain can be defined as follows: Class TaxiNotification extend StateNotification { String id = com.example.notification.transportation.taxi; TaxiState stateInfo; } Class TaxiState { T state state; / / reserved by not started, ongoing, end String destAddrName; String srcAddrName; Time startTime; Time estArrivingTime; Interface TaxiStateReporter { public TaxiState queryTaxiState() } A service provider will integrate a state reporter component to declare the application as a service provider working with the user context manager. The state reporter will have the functionality to let the service provider application send notifications. For example: Void sendNotifcation( StateNotification sn ).

[0051] Taking the example of a ride-hailing application Uber, if the application implements the interface "TaxiStateReporter" that calls sendNofication() to send the taxi state to the user context manager when a state change occurs and declares to work as a service provider to provide populated or updated context information about the taxi state, then the application will be a service provider. Optionally, the service provider application Uber can declare in the manifest file. If the Uber application is enabled by the user, the user context manager will call queryTaxiState() to get the taxi state and save it to non-volatile memory. When a state change occurs, the Uber application will call sendNotification() to notify the user context manager of the new state, and the user context manager will update the taxi state accordingly. When the Uber application exits, the operating system will notify the user context manager; the user context manager will clean up the taxi state. When the user disables Uber from providing data or uninstalls the application, the user context manager will be notified, and accordingly, the state will be cleaned up from non-volatile memory.

[0052] Figure 5 is a simplified flow diagram of a method for cross-application information sharing according to embodiments of the application. This diagram is merely an example, which should not unduly limit the scope of the claims. One of ordinary skill in the art would recognize many variations, alternatives, and modifications. Figure 5 A method 500 for cross-application information sharing on a mobile device is shown. The method 500 begins by registering with the user context manager software component of the operating system in the mobile device at step 510. The user context manager runs in the background. The method 500 first includes a step 520 of checking if there are service provider (SP) applications (apps) running. In this step, the user context manager receives notifications from the SP apps through the state reporter component that declares the corresponding application is currently running and designated as a SP.

[0053] Accordingly, the recommendation control component registered in the system settings of the operating system observes that the SP application has been installed and is running. Then, if there is an SP application that has been installed and is running (e.g., the output of step 520 is "Yes"), the recommendation control will add a user interface (UI) control for the SP application. The user can turn on (i.e., enable) or turn off (i.e., disable) the SP application with the UI control. When the SP application is uninstalled, the corresponding UI control will be removed. If the output of step 520 is No, the method 500 stops at step 570.

[0054] If the output of step 520 is "Yes", the method 500 includes step 530, which checks whether the SP application is active or enabled by the user. In this step, the user context manager provides a query interface to check whether the SP application is in an ON state or an OFF state (which is determined by the UI control added by the user through the recommendation control component). If the output of step 530 is No, the method 500 includes step 540, which instructs the operating system to instruct the user context manager to ignore this application, and repeats step 520 to get the next SP application.

[0055] If the output of step 530 is "Yes", method 500 includes step 550, checking whether the user context manager stores a template corresponding to the updated state of a valid SP application. The user context manager, as software running in the background, continuously initiates query / return interfaces through the status reporter component. If the SP application is valid or enabled by the user, the user context manager can access the updated state information and associated context information of the SP application. Furthermore, when the SP application is valid or enabled by the user, the user context manager is allowed to share updated context information with another application running simultaneously on the mobile device in the form of recommended text. For example, a user intends to input some text messages by launching an input method to share some context information about the SP application. When the input method is launched, it initiates a recommendation request through the recommendation request interface to seek context information in the form of recommended text from the user context manager. Optionally, the recommendation request can be invoked simply by launching the input method, without requiring the user to type any text. The user context manager may have already processed each state of the SP application during pre-training operations and obtained the context information associated with each state of the SP, and then generated some templates for each corresponding state of the SP application. More specifically, the template is pre-built by the user context manager for each state of the SP, see Table 1 for example. Step 550 is specifically executed for cases where the input method's recommendation request to the user context manager does not provide a suggestion. Alternatively, in rare cases, step 550 may output no, which would cause method 500 to ignore this SP and repeat step 540 to check for the next SP (assuming multiple SPs are running simultaneously on the mobile device). Optionally, if no next active SP is running on the mobile device, step 540 is used to stop the process.

[0056] If the output of step 550 is yes, method 500 includes step 560, recommending a combination of templates based on the templates stored in the user context manager and adding it to the input method's return list. The input method, as a software component associated with the application used by the user, displays the recommended combination text from the user context manager, allowing the user to select the recommended combination text and edit it in the expected text input, so as to easily share the context information of the SP application through third-party applications. After sharing is completed in step 560, method 500 stops in step 570. Implementations of the technology may include hardware, methods or processes, or computer software on a computer-accessible medium.

[0057] Figure 6 This is a simplified flowchart of another method for cross-application information sharing according to an embodiment of the present invention. This diagram is merely an example and should not be overly limiting of the scope of the claims. Many variations, alternatives, and modifications will be recognized by those skilled in the art. Figure 6A method 600 for cross-application information sharing in a mobile device is shown. The method 600 begins at step 610 by registering with a user context manager (UCM) software component of an operating system in the mobile device. The UCM runs in the background. The method 600 includes a step 620 of checking if a service provider (SP) app is running. Similar to the method 500, in step 620, the UCM receives a notification from the SP app through a status reporter component that declares the corresponding app is running and is designated as a SP for the UCM.

[0058] Similar to the method 500, a recommendation control component registered in the operating system system settings observes that the SP app is installed and is running. Then, if the SP app is installed, i.e., the output of step 620 is YES, the recommendation control will add a user interface (UI) control for the SP app. The user can utilize the UI control to turn on (i.e., enable) or turn off (i.e., disable) the SP app. When the SP app is uninstalled, the corresponding UI control will be removed. If the output of step 620 is NO, the method 600 stops at step 670.

[0059] If the output of step 620 is YES, the method 600 includes a step 630 of checking if the SP app is active. Like the method 500, in step 630, the UCM provides a query interface to check if the SP app is in an ON state or an OFF state. The SP state is determined by the user through the UI control added by the recommendation control component. If the output of step 630 is NO, the method 600 includes a step 640 of having the operating system instruct the UCM to ignore this app and repeating step 620 for the next SP app.

[0060] If the output of step 630 is yes, the method 600 includes step 650, checking if the keywords corresponding to the attributes of the updated SP state are stored in the UCM. The UCM, as a software running in the background, will constantly initiate the query / return interface by the state reporter component and can access the updated state information and associated contextual information of the SP application if the SP application is active or enabled by the user. In addition, the UCM is allowed to share the updated contextual information in the form of recommended text with another application running simultaneously on the mobile device when the SP application is active or enabled by the user. The user intends to share some contextual information about the SP application by launching the input method to input some text message. When the input method is just launched, it initiates a recommendation request by requesting the recommendation interface to seek the contextual information in the form of recommended text from the UCM. Optionally, the information request carries the hint implied in the text input typed by the user. The UCM can have processed each state information and associated contextual information of the SP application in the pre-training operation and predefined some keywords for each corresponding state attribute of the SP application. More specifically, the keywords are predefined by the UCM for each attribute in the SP state, see Table 2 as an example. Step 650 is particularly performed for the case where the recommendation request invoked by the input method to the UCM contains the hint as shown in the text typed by the user. Alternatively, in the rare case, the output of step 650 can be no, which makes the method 600 ignore this SP application and repeat step 640 to check the next SP (assuming multiple SP applications are running simultaneously in the mobile device). Optionally, if there is no next SP application actively running in the mobile device, step 640 is used to stop the process.

[0061] If the output of step 650 is yes, the method 600 includes step 660, combining the recommendations with the keywords stored in the UCM and adding to the return list of the input method. The input method, as a software component associated with the application currently used by the user, will display the combined recommendations from the UCM, allowing the user to select the combined recommendations and edit in the intended text input in order to easily share the contextual information of the SP application. After the sharing is completed in step 660, the method 600 stops in step 670. Implementations of the described techniques can include hardware, a method or process, or computer software on a computer-accessible medium.

[0062] Embodiments of the present application can be implemented in conjunction with existing systems and processes. User interface (UI) components registered with the operating system can indicate hints that can also be used to request recommendations from the UCM. For example, an Android™ application can configure "android:hint" in its UI components to provide the user with information that he needs to fill in. The method for sharing contextual information among different applications according to some embodiments of the present application can also be extended to other applications beyond the input method. For example, an application directly retrieves recommendation data from the UCM. In addition, the method can provide auto-complete suggestions to the user instead of sharing contextual information in the recommended text. The UCM can evaluate access rights to a plurality of contextual fields associated with one or more running applications (as service providers) and generate, store, and share a plurality of recommendations to a plurality of first-party applications or third-party applications running concurrently on the mobile device. Sharing contextual information through the UCM component registered with the operating system can help improve the overall user experience by enabling seamless switching among different applications and making various applications and tasks more efficient. At the same time, security can be managed through the recommendation control component to allow user-defined accessibility of contextual information by different applications.

[0063] While the forgoing is a complete description of the specific embodiments, the scope of the present application is not limited to the specific embodiments described herein. Various modifications, alternative constructions, and equivalents can be used as would occur to one skilled in the relevant art. The descriptions and illustrations herein are by way of examples and are not intended to limit the scope of the application.

Claims

1. A method for sharing information between applications, the method comprising: Access the first application stored in non-volatile memory; Launch the first application, which is associated with a plurality of context fields; The first application populates the first plurality of context fields; The context manager stores the first plurality of context fields that have been populated; Access the second application stored in the non-volatile memory; Launch the second application; Initiate a recommendation request to the context manager; In response to the recommendation request, the context manager generates one or more recommendations using the first plurality of populated context fields; as well as Provide the second application with one or more of the aforementioned recommendations.

2. The method of claim 1, further comprising accessing a user interface to determine the accessibility of the context manager to the populated plurality of context fields.

3. The method according to claim 1, wherein, The first plurality of context fields that are stored and populated include: The context manager queries the status of the first application; The first plurality of context fields, populated with the state of the first application, are returned to the context manager; By referencing the first plurality of context fields, template recommendations are built in the context manager for each state of the first application; Define multiple keywords associated with multiple attributes of the first plurality of context fields that are populated; and The template recommendations and the multiple keywords are stored in the context manager.

4. The method according to claim 3, further comprising: By activating the input method of the second application, the recommendation request is initiated without any prompt; The context manager analyzes the recommendation request without providing any prompts. as well as The one or more recommendations are generated by returning the template recommendations stored in the context manager based on the state of the first application.

5. The method according to claim 3, further comprising: The recommendation request is sent by activating the input method of the second application, which has text input functionality. The context manager analyzes the recommendation request with the text input as a prompt; The prompts are compared with the plurality of keywords stored in the context manager to determine keywords with predetermined similarity; as well as The one or more recommendations are formatted by adding keywords with predetermined similarity.

6. The method according to claim 1, wherein, The context manager is a component registered with the operating system.

7. The method of claim 6, further comprising providing a query interface via a recommendation control component in the operating system, for the context manager to check whether the user has enabled the first application to allow access to the populated first plurality of context fields to generate the one or more recommendations.

8. The method of claim 1, further comprising the context manager generating autocomplete suggestions for an input method using the first plurality of context fields populated by the first application.

9. The method according to claim 1, further comprising: Provide an input method interface, which includes a suggestion field; as well as The one or more recommendations are displayed in the suggestion field.

10. The method according to claim 1, further comprising: Access a third application stored in the non-volatile memory; Launch the third application, wherein the first application is associated with a second plurality of context fields; The third application fills in the second plurality of context fields; as well as The context manager stores the second plurality of context fields that have been populated.

11. The method of claim 1, further comprising providing a query / return interface via a status reporter, so that the first application sends updated first plurality of context fields to the context manager in response to a query from the context manager.

12. The method of claim 1, further comprising providing a notification interface via a status reporter for the first application to notify the context manager when a status change occurs.

13. A method for sharing information between applications, the method comprising: Launch the first application, which is associated with a first set of context fields; The first application populates the first plurality of context fields; The context manager stores the first plurality of context fields that have been populated; Launch the second application; Provide an input method for the second application on the user interface; Text input is received using the input method described above; Based on a predetermined similarity level with the text input, determine one or more keywords stored in the context manager; The context manager generates one or more recommendations using at least one or more keywords and the first plurality of context fields filled in; as well as The one or more recommendations are displayed on the user interface.

14. The method of claim 13, further comprising requesting recommendations from the context manager via the input method.

15. The method of claim 13, further comprising adding a user profile, the user profile defining accessibility to the first plurality of context fields.

16. The method of claim 13, further comprising classifying the first plurality of context fields.

17. A system for cross-application information sharing, comprising: A status reporter interface associated with a first application stored in non-volatile memory, the first application being associated with multiple context fields populated with a context template based on the status of the first application; The context manager module is used to interact with the first application through the status reporter interface based on query and return communication; A recommended control interface is provided, which connects to the context manager module, to provide accessibility to the context template in the plurality of context fields; as well as The input method module is associated with the second application and interacts with the context manager module through a request recommendation interface. The request recommendation interface is used to send a request with or without keywords to the context manager module. The context manager module is used to generate recommendations based on the keywords and / or based on the context templates in the plurality of context fields, and send the recommendations to the input method module of the second application.

18. The system according to claim 17, wherein, The status reporter interface is used to notify the context manager module of status changes of the first application.

19. The system according to claim 17, wherein, The context manager module is used to store and update various keywords associated with various states of the first application and context templates in the multiple context fields.

20. The system according to claim 17, wherein, The context manager module is also used to evaluate the accessibility of the first plurality of context fields set by the user through the recommendation control interface of the first application.