Data synchronization method, electronic device and medium
By generating a unique identifier for the schedule information, the repeated synchronization problem during schedule information synchronization between smart terminal devices is solved, and the user experience and synchronization process are improved.
Patent Information
- Application Number
- CN202211009930.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-22
- Publication Date
- 2025-01-07
- Estimated Expiration
- 2042-08-22
AI Technical Summary
When synchronizing schedule information between multiple smart terminal devices, the prior art can easily lead to repeated synchronization of the same schedule information, affecting the user experience.
By generating unique application identifiers for each schedule information and using these identifiers during the synchronization process to identify and avoid duplicate synchronization, ensuring that the same schedule information is stored and synchronized only once, regardless of the terminal device or server.
It effectively avoids duplicate synchronization of schedule information, improves user experience, and ensures the accuracy and efficiency of the synchronization process.
Smart Images

Figure CN117675495B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of cloud storage technology, and in particular to a data synchronization method, electronic device and medium. Background Art
[0002] Schedule management applications of smart terminals, such as calendar applications, can obtain schedules of various applications in the smart terminal and generate corresponding reminder information. However, as the number of devices available to users increases, users can browse, edit, and manage their schedules on multiple smart terminals, such as mobile phones, TVs, computers, and other smart terminals.
[0003] In order to synchronize the schedule information of different smart terminals, users can install the same application on different smart terminals to synchronize the schedule information of each application separately, or install the same schedule management application on different smart terminals to synchronize the schedule information of different applications recorded in the schedule management applications between different devices. However, when a certain application and the schedule management application in the terminal device synchronize the same schedule information of the application, the same schedule information will be repeatedly synchronized to the schedule management application, so that the schedule management application will repeatedly prompt the user, affecting the user experience. Summary of the invention
[0004] The embodiments of the present application provide a data synchronization method, an electronic device, and a medium.
[0005] In a first aspect, an embodiment of the present application provides a data synchronization method, including: a first application of a first electronic device obtains first schedule information of a second application, the first schedule information including a second application identifier and a first application identifier of the first schedule information; the first application of the first electronic device generates a second application identifier corresponding to the first application for the first schedule information, and sends the first schedule information and the second application identifier to a first application server, wherein the second application identifier and the first application identifier have different application fields and the same identification field, and the first application of the second electronic device obtains the first schedule information from the second application, and generates a third application identifier corresponding to the first application for the first schedule information; the first application corresponding to the second electronic device determines, based on the identification field of the generated third application identifier, that the first application has obtained and stored the first schedule information and the second application identifier from the first application server, and does not store the first schedule information; the first application corresponding to the second electronic device determines, based on the identification field of the first application identifier in the first schedule information, that the first application has not obtained and stored the first schedule information and the second application identifier from the first application server, and stores the first schedule information.
[0006] It can be understood that the first application can be a calendar application, the second application can be a conference application, a memo application, an email application, a travel application, a music application, etc., and the corresponding schedule information can be conference schedule information, memo schedule information, email schedule information, travel itinerary information, album release information, etc. The first application identifier can be uuid=abcd, where uuid is an application field and abcd is an identification field, the second application identifier can be sync_id=abcd; where sync_id is an application field and abcd is an identification field, and the third application identifier can be uuid=abcd, where uuid is an application field and abcd is an identification field.
[0007] In an embodiment of the present application, since the identification fields of the first application information identifier, the second application information identifier, and the third application identifier of the same schedule information are consistent, the identification field of the same schedule information is unique. Therefore, whether it is the server of the first application, the first application, the server of the second application, or the second application, the schedule information can be identified based on the unique identification field, thereby avoiding repeated synchronization of the same schedule information and improving the user experience.
[0008] It can be understood that the above-mentioned "the first application of the first electronic device generates a second application identifier corresponding to the first application for the first schedule information, and sends the first schedule information and the second application identifier to the first application server, wherein the application fields of the second application identifier and the first application identifier are different, and the identification fields are the same; and the first application of the second electronic device obtains the first schedule information from the second application, and generates a third application identifier corresponding to the first application for the first schedule information" can also be "the first application of the second electronic device obtains the first schedule information from the second application, and generates a third application identifier corresponding to the first application for the first schedule information; and the first application of the first electronic device generates a second application identifier corresponding to the first application for the first schedule information, and sends the first schedule information and the second application identifier to the first application server, wherein the application fields of the second application identifier and the first application identifier are different, and the identification fields are the same". The steps of the above method are only for description, and the order of the steps is not limited thereby.
[0009] In a possible implementation, the account number of the first application of the first electronic device is the same as the account number of the first application of the second electronic device; the account number of the second application of the first electronic device is the same as the account number of the second application of the second electronic device.
[0010] It can be understood that each application in the first electronic device and the second electronic device are logged in to the same user's account. Therefore, when the first application server updates the schedule information or the second application server updates the schedule information, the first application in the second electronic device is triggered to synchronize the schedule information from the first application server, and the second application is triggered to synchronize the schedule information from the second application server 400.
[0011] In one possible implementation, the first schedule information includes a schedule content field, and the first electronic device detects that the second application modifies the schedule content field of the first schedule information, and obtains the second schedule information, wherein the application identifier corresponding to the second schedule information in the second application is the same as the first application identifier; the first application of the first electronic device obtains the second schedule information, and sends the second schedule information to the first application server, wherein the application identifier corresponding to the second schedule information in the first application is the same as the second application identifier.
[0012] It can be understood that the schedule content field is used as a standard to determine whether to synchronize the synchronized schedule information again, so that the first application server, the first application, the second application, and the second application server can all synchronize the modified schedule information in a timely manner, avoiding repeated synchronization of the same modified schedule information, thereby improving the user experience.
[0013] The schedule content field may be a dirty field. For example, the original dirty field of the schedule information is 0. If the schedule information triggers a modification, the dirty field is marked as 1.
[0014] In one possible implementation, the second electronic device determines whether the first application has obtained and stored the second schedule information from the first application server in the following manner: corresponding to the application identifier and schedule content field in which the first application of the second electronic device stores the second schedule information, it is determined that the first application of the second electronic device has obtained and stored the second schedule information from the first application server; corresponding to the application identifier or schedule content field in which the first application of the second electronic device does not store the second schedule information, it is determined that the first application of the second electronic device has not obtained and stored the second schedule information from the first application server.
[0015] It can be understood that the schedule content field is used as a standard to determine whether to synchronize the synchronized schedule information again, so that the first application server, the first application, the second application, and the second application server can all synchronize the modified schedule information in a timely manner, avoiding repeated synchronization of the same modified schedule information, thereby improving the user experience.
[0016] The schedule content field may be a dirty field. For example, the original dirty field of the schedule information is 0. If the schedule information triggers a modification, the dirty field is marked as 1.
[0017] In a possible implementation, the first application includes a calendar application; the second application includes at least one of the following: a conference application, a memo application, an email application, a travel application, and a music application.
[0018] In a second aspect, an embodiment of the present application provides a data synchronization method, including: a first application of a first electronic device obtains first schedule information of a second application, the first schedule information including a second application identifier of the first schedule information; the first application of the first electronic device generates a second application identifier corresponding to the first application for the first schedule information, and sends the first schedule information and the second application identifier to a first application server, wherein the application fields of the second application identifier and the first application identifier are different, and the identification fields are the same.
[0019] It can be understood that the first application can be a calendar application, the second application can be a conference application, a memo application, an email application, a travel application, a music application, etc., and the corresponding schedule information can be conference schedule information, memo schedule information, email schedule information, travel itinerary information, album release information, etc. The first application identifier can be uuid=abcd, where uuid is an application field and abcd is an identification field, the second application identifier can be sync_id=abcd; where sync_id is an application field and abcd is an identification field, and the third application identifier can be uuid=abcd, where uuid is an application field and abcd is an identification field.
[0020] In an embodiment of the present application, since the identification fields of the first application information identifier, the second application information identifier, and the third application identifier of the same schedule information are consistent, the identification field of the same schedule information is unique. Therefore, whether it is the server of the first application, the first application, the server of the second application, or the second application, the schedule information can be identified based on the unique identification field, thereby avoiding repeated synchronization of the same schedule information and improving the user experience.
[0021] In one possible implementation, the first schedule information includes a schedule content field, and the first electronic device detects that the second application modifies the schedule content field of the first schedule information, and obtains the second schedule information, wherein the application identifier corresponding to the second schedule information in the second application is the same as the first application identifier; the first application of the first electronic device obtains the second schedule information, and sends the second schedule information to the first application server, wherein the application identifier corresponding to the second schedule information in the first application is the same as the second application identifier.
[0022] It can be understood that the schedule content field is used as a standard to determine whether to synchronize the synchronized schedule information again, so that the first application server, the first application, the second application, and the second application server can all synchronize the modified schedule information in a timely manner, avoiding repeated synchronization of the same modified schedule information, thereby improving the user experience.
[0023] The schedule content field may be a dirty field. For example, the original dirty field of the schedule information is 0. If the schedule information triggers a modification, the dirty field is marked as 1.
[0024] In one possible implementation, the first application includes a calendar application.
[0025] In a third aspect, an embodiment of the present application provides a data synchronization method, including: a first application of a second electronic device obtains first schedule information from a second application, and generates a third application identifier corresponding to the first application for the first schedule information; the first application corresponding to the second electronic device determines, based on an identification field of the generated third application identifier, that the first application has obtained and stored the first schedule information and the second application identifier from a first application server, and does not store the first schedule information; the first application corresponding to the second electronic device determines, based on the identification field of the first application identifier in the first schedule information, that the first application has not obtained and stored the first schedule information and the second application identifier from the first application server, and stores the first schedule information.
[0026] It can be understood that the first application can be a calendar application, the second application can be a conference application, a memo application, an email application, a travel application, a music application, etc., and the corresponding schedule information can be conference schedule information, memo schedule information, email schedule information, travel itinerary information, album release information, etc. The first application identifier can be uuid=abcd, where uuid is an application field and abcd is an identification field, the second application identifier can be sync_id=abcd; where sync_id is an application field and abcd is an identification field, and the third application identifier can be uuid=abcd, where uuid is an application field and abcd is an identification field.
[0027] In an embodiment of the present application, since the identification fields of the first application information identifier, the second application information identifier, and the third application identifier of the same schedule information are consistent, the identification field of the same schedule information is unique. Therefore, whether it is the server of the first application, the first application, the server of the second application, or the second application, the schedule information can be identified based on the unique identification field, thereby avoiding repeated synchronization of the same schedule information and improving the user experience.
[0028] In one possible implementation, the second electronic device determines whether the first application has obtained and stored the second schedule information from the first application server in the following manner: corresponding to the application identifier and schedule content field in which the first application of the second electronic device stores the second schedule information, it is determined that the first application of the second electronic device has obtained and stored the second schedule information from the first application server; corresponding to the application identifier or schedule content field in which the first application of the second electronic device does not store the second schedule information, it is determined that the first application of the second electronic device has not obtained and stored the second schedule information from the first application server.
[0029] It can be understood that the schedule content field is used as a standard to determine whether to synchronize the synchronized schedule information again, so that the first application server, the first application, the second application, and the second application server can all synchronize the modified schedule information in a timely manner, avoiding repeated synchronization of the same modified schedule information, thereby improving the user experience.
[0030] The schedule content field may be a dirty field. For example, the original dirty field of the schedule information is 0. If the schedule information triggers a modification, the dirty field is marked as 1.
[0031] In a possible implementation, the second application includes at least one of the following: a conference application, a memo application, an email application, a travel application, and a music application.
[0032] In a fourth aspect, an embodiment of the present application provides an electronic device, comprising: a memory for storing instructions executed by one or more processors of the electronic device, and a processor, which is one of the one or more processors of the electronic device, for implementing any data synchronization method provided by the above-mentioned first aspect and various possible implementations of the above-mentioned first aspect.
[0033] In a fifth aspect, an embodiment of the present application provides an electronic device, comprising: a memory for storing instructions executed by one or more processors of the electronic device, and a processor, which is one of the one or more processors of the electronic device, for implementing any data synchronization method provided by the above-mentioned second aspect and various possible implementations of the above-mentioned second aspect.
[0034] In the sixth aspect, an embodiment of the present application provides an electronic device, comprising: a memory for storing instructions executed by one or more processors of the electronic device, and a processor, which is one of the one or more processors of the electronic device, for implementing any data synchronization method provided by the third aspect and various possible implementations of the third aspect.
[0035] In a seventh aspect, an embodiment of the present application provides a readable medium having instructions stored thereon, which, when executed on an electronic device, enables the electronic device to implement any one of the data synchronization methods provided by the first aspect and various possible implementations of the first aspect.
[0036] In an eighth aspect, an embodiment of the present application provides a readable medium having instructions stored thereon, which, when executed on an electronic device, enables the electronic device to implement any data synchronization method provided by the second aspect and various possible implementations of the second aspect.
[0037] In a ninth aspect, an embodiment of the present application provides a readable medium having instructions stored thereon, which, when executed on an electronic device, enables the electronic device to implement any one of the data synchronization methods provided by the third aspect and various possible implementations of the third aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0038] Figure 1 A schematic diagram showing synchronization of conference schedule information 301 between mobile phone 100A and mobile phone 200B in some embodiments is shown;
[0039] Figure 2 According to an embodiment of the present application, a schematic diagram of synchronizing conference schedule information 301 between a mobile phone 100A and a mobile phone 200B is shown;
[0040] Figure 3 According to an embodiment of the present application, a schematic diagram of a calendar application framework is shown;
[0041] Figure 4 According to an embodiment of the present application, a schematic diagram of interaction between a mobile phone 100A and a mobile phone 200B for synchronizing conference schedule information 301 is shown;
[0042] Figure 5 A schematic diagram of a cloud synchronization framework is shown;
[0043] Figure 6 A schematic diagram of a cloud synchronization service scenario is shown;
[0044] Figure 7 A schematic diagram of a cloud synchronization process is shown;
[0045] Figure 8 A timing diagram of synchronizing cloud data to local data is shown;
[0046] Fig. 9 A schematic diagram of a calendar storage data model is shown;
[0047] Fig.10 shows a timing diagram of synchronizing local data to the cloud;
[0048] Fig.11 According to an embodiment of the present application, another interactive schematic diagram of synchronizing conference schedule information 301 between a mobile phone 100A and a mobile phone 200B is shown;
[0049] Fig.12 According to an embodiment of the present application, another interactive schematic diagram of synchronizing conference schedule information 301 between a mobile phone 100A and a mobile phone 200B is shown;
[0050] Fig.13 According to an embodiment of the present application, another interactive schematic diagram of synchronizing conference schedule information 301 between a mobile phone 100A and a mobile phone 200B is shown;
[0051] Fig.14 A structural schematic diagram of an electronic device is shown. DETAILED DESCRIPTION
[0052] The illustrative embodiments of the present application include, but are not limited to, a data synchronization method, an electronic device, and a medium.
[0053] It can be understood that the technical solution of the present application is applicable to any electronic device that can synchronize data from other electronic devices, for example, including but not limited to mobile phones, tablet computers, wearable devices, vehicle-mounted devices, augmented reality (AR) / virtual reality (VR) devices, laptops, ultra-mobile personal computers (UMPC), netbooks, personal digital assistants (PDA) or special cameras (such as SLR cameras, card cameras), etc. The embodiments of the present application do not impose any restrictions on the specific types of electronic devices. For the convenience of description, the following description takes a mobile phone as an example.
[0054] For ease of description, in the following embodiments, an application that can generate schedule information and synchronize the schedule information generated by the application between different devices through the server corresponding to the application is referred to as a third-party application, such as a meeting application, a memo application, an email application, a travel application, a music application, etc., and the corresponding schedule information can be meeting schedule information, memo schedule information, email schedule information, travel itinerary information, album release information, etc.
[0055] For ease of description, the following example is taken as an example in which the three-party application is a conference application and the schedule information is conference schedule information.
[0056] As mentioned above, when a certain application and a calendar application in a terminal device synchronize the same schedule information of the application, the same schedule information will be repeatedly synchronized to the calendar application, so that the calendar application will repeatedly prompt the user, affecting the user experience.
[0057] For example, Figure 1 A method for synchronizing conference schedule information when both mobile phone 100A and mobile phone 200B have conference applications is shown. Figure 1As shown, after the mobile phone 100A installs the conference application 101, the conference application 101 obtains the conference schedule information 301 and the conference application information identifier M1 of the schedule information from the cloud 300 of the conference application; then the conference application 101 synchronizes the conference schedule information 301 and the conference application information identifier M1 of the schedule information to the calendar application 102, and the calendar application 102 assigns the calendar application information identifier M2 to the conference schedule information 301, and uses the synchronization service (e.g. The meeting application information identifier M1 and the calendar application information identifier M2 of the schedule information 301 are stored in the cloud service After the mobile phone 200B installs the conference application 201, the conference application 201 can obtain the schedule information 301 and the conference application information identifier M1 from the cloud 300 of the conference application, and synchronize the schedule information 301 and the conference application information identifier M1 to the calendar application 202. The calendar application 202 will assign the calendar application information identifier M3 to the schedule information 301. The cloud server 400 obtains the conference schedule information 301, the conference application information identifier M1, and the calendar application information identifier M2. The calendar application information identifier M2 of the meeting schedule information 301 synchronized by the cloud server 400 is different from the calendar application information identifier M3 of the meeting schedule information 301 already recorded in the calendar application 202. The calendar application 202 will repeatedly add the meeting schedule information 301 to the calendar application 202, and then the calendar application 202 will give multiple reminders for the schedule information 301, affecting the user experience.
[0058] The conference application information identifier is a unique identifier assigned by the conference application to the schedule information in the conference application, for example: M1: sync_id=abcd. The calendar application information identifier is a unique identifier assigned by the calendar application to the schedule information in the calendar application, for example: M2: uuid=efjk, M3: uuid=qwer.
[0059] It can be understood that each application in the mobile phone 100A and the mobile phone 200B is logged into the same user account. Therefore, when the cloud 300 of the conference application updates the conference schedule information 301 or When the cloud server 400 updates the conference schedule information 301, the conference application 201 in the mobile phone 200B is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application, and the calendar application 202 is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application. The cloud server 400 synchronizes the conference schedule information 301 .
[0060] To solve the above problem, schedule information can be written into the calendar application by the third-party application and can also be read from the calendar application by the calendar application. The cloud server is synchronized to the calendar application, resulting in the problem that the calendar application may have duplicate schedule information. The embodiment of the present application provides a data synchronization method. When the calendar application 102 in the mobile phone 100A adds the schedule information 301 in the third-party application to the calendar application 102, the calendar application information identifier of each schedule information is set to be the same as the third-party application information identifier of each application (for example, the conference application identifier of the conference application), and the schedule information 301 and the third-party application information identifier and the calendar application information identifier of the schedule information are uploaded to In the cloud server 400. Thus, the calendar application 202 in the mobile phone B is from the third-party application 201 or When the cloud server 400 obtains the schedule information, if the calendar application 202 already has the same schedule information as the calendar application information identifier and the third-party application information identifier of the schedule information 301, the schedule information 301 will not be added to the calendar application 202; if the calendar application 202 does not have the same schedule information as the calendar application information identifier and the third-party application information identifier of the schedule information 301, the schedule information will be added to the calendar application. In this way, repeated synchronization of the same schedule information can be avoided, and the user experience is improved.
[0061] The three-party application information identifier is a unique identifier assigned by the three-party application to the schedule information within the three-party application, such as a unique identifier assigned by the conference application 101 / 201 to the conference schedule information, for example: M1: sync_id=abcd.
[0062] The calendar information identifier is a unique identifier assigned by the calendar application to the schedule information in the calendar application 102 / 202 , for example, M2: uuid=abcd.
[0063] In the embodiment of the present application, the content of the three-party application information identifier is the same as the calendar information identifier, for example: M1=M2 of the conference schedule information: sync_id=uuid=abcd.
[0064] It can be understood that each application in the mobile phone 100A and the mobile phone 200B is logged into the same user account. Therefore, when the cloud 300 of the conference application updates the conference schedule information 301 or When the cloud server 400 updates the conference schedule information 301, the conference application 201 in the mobile phone 200B is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application, and the calendar application 202 is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application. The cloud server 400 synchronizes the conference schedule information 301 .
[0065] For example, Figure 2A method for synchronizing conference schedule information when both mobile phone 100A and mobile phone 200B have conference applications is shown. After mobile phone 100A installs conference application 101, it can obtain conference schedule information 301 and conference application information identifier M1 from cloud 300 of the conference application, and send the obtained conference schedule information 301 and conference application information identifier M1 to calendar application 102; calendar application 102 assigns calendar application information identifier M2 that is the same as conference application information identifier M1 to conference schedule information 301, and uploads conference schedule information 301, conference application information identifier M1 and calendar application information identifier M2 to Cloud server 400.
[0066] Therefore, after mobile phone 200B installs conference application 201, calendar application 202 can obtain conference schedule information 301 and conference application information identifier M1 from conference application 201, and calendar application 102 assigns calendar application information identifier M3, which is the same as conference application information identifier M1, to conference schedule information 301. The cloud server 400 obtains the conference schedule information 301, the conference application information identifier M1, and the calendar application information identifier M2. The same conference schedule information 301 that needs to be synchronized to the calendar application 202 in the cloud server 400 is therefore no longer added to the calendar application 202. This avoids repeated synchronization of the same conference schedule information, thereby improving the user experience.
[0067] It can be understood that the conference application information identifier is a unique identifier assigned by the conference application to the schedule information in the conference application, and the calendar application information identifier is a unique identifier assigned by the calendar application to the schedule information in the calendar application. In the embodiment of the present application, the conference schedule information is associated with the conference application information identifier M1: sync_id = abcd, the calendar application information identifier M2: uuid = abcd, and M3: uuid = abcd to ensure that the conference schedule information is available in the conference application of each smart terminal, the cloud of the conference application, the calendar application, Cloud servers are identifiable and unique.
[0068] It can be understood that each application in the mobile phone 100A and the mobile phone 200B is logged into the same user account. Therefore, when the cloud 300 of the conference application updates the conference schedule information 301 or When the cloud server 400 updates the conference schedule information 301, the conference application 201 in the mobile phone 200B is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application, and the calendar application 202 is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application. The cloud server 400 synchronizes the conference schedule information 301 .
[0069] It is understandable that Figure 2 As shown, when the conference application 201 does not exist in the mobile phone 200B, the calendar application 202 of the mobile phone 200B is The cloud server 400 synchronizes the conference schedule information 301, the conference application information identifier M1, and the calendar application information identifier M2; when the conference application 201 exists in the mobile phone 200B, since the conference application 201 has already written the conference schedule information 301 into the calendar application 202, the calendar application 202 does not need to obtain the conference schedule information 301 from the mobile phone 200B again. The cloud server 400 synchronizes the conference schedule information 301 , the conference application information identifier M1 , and the calendar application information identifier M2 .
[0070] Among them, Figure 3 As shown, the calendar application 102 / 202 can download the local calendar from the local calendar download server, download holiday information from the global holiday download server, obtain schedule information from the calendar storage, set reminders / trigger reminders through the AlarmManager interface, initiate Exchange calendar synchronization through the SyncManager interface, obtain reminder ringtones from the theme, and obtain account information from the user account. The calendar application 102 / 202 can also share ics calendars to emails, SMS, Bluetooth, NFC, WLAN direct connection, etc. Among them, the schedule information stored in the calendar storage includes Schedule information of cloud server 400, Exchange calendar synchronization, travel information added to YOYO schedule, local schedule synchronized with cloud service, backup / restored calendar; calendar storage can also add and read schedules from third-party applications such as Hammer Calendar, and subscribe to schedules from office software.
[0071] In some embodiments, when the user modifies the meeting schedule information 301 written into the calendar application 102 in the mobile phone 100A, the meeting application 101 of the mobile phone 100A will write the modified meeting schedule information 301 into the calendar application 102 and synchronize it to the cloud 300 of the meeting application, and the calendar application 102 will also synchronize the modified meeting schedule information 301 to the cloud 300 of the meeting application. The cloud server 400 provides the calendar application 202 of the mobile phone 200B with the modified conference schedule information 301. The conference schedule information carries the three-party application information identifier and the calendar application information identifier.
[0072] Specifically, when the user modifies the synchronized conference schedule information 301 in the conference application 101 of the mobile phone 100A, the modification field of the conference schedule information 301 is modified, and the conference application 101 of the mobile phone 100A synchronizes the modified conference schedule information 301 to the cloud 300 of the conference application based on the modification field of the conference schedule information 301 and the conference application information identifier M1, and writes the modified conference schedule information 301 and the modification field into the calendar application 102 based on the modification field of the conference schedule information 301 and the conference application information identifier M1. The calendar application 102 synchronizes the modified conference schedule information 301 to the cloud 300 based on the modification field of the conference schedule information 301 and the calendar application information identifier M2. Cloud server 400. The content of the conference application information identifier M1 is the same as that of the calendar application information identifier M2.
[0073] The conference application 201 of the mobile phone 200B can obtain the modified conference schedule information 301 and the modified fields from the cloud 300 of the conference application, and send the obtained modified conference schedule information 301 and the modified fields to the calendar application 202; at this time, if the calendar application 202 receives the modified conference schedule information 301 and the modified fields from the cloud 300 of the mobile phone 200B, The cloud server 400 obtains the modified conference schedule information 301, the conference application information identifier M1, the calendar application information identifier M2 and the modified field. The cloud server 400 needs to synchronize the same modified conference schedule information 301 to the calendar application 202, so the modified conference schedule information 301 is no longer added to the calendar application 202. This avoids repeated synchronization of the same modified conference schedule information, thereby improving the user experience.
[0074] Specifically, the calendar application 202 After the cloud server 400 obtains the modified meeting schedule information 301, the meeting application information identifier M1, the calendar application information identifier M2 and the modified field, the calendar application 202 determines whether there is meeting schedule information 301 in the calendar application 202 that is the same as the calendar application information identifier M2 and the modified field based on the calendar application information identifier M2 and the modified field. If the judgment result is yes, the meeting schedule information 301 corresponding to the calendar application information identifier M2 and the modified identifier is not added to the calendar application 202; if the judgment result is no, the meeting schedule information 301 corresponding to the calendar application information identifier M2 and the modified field is added to the calendar application 202.
[0075] As a result, the cloud, calendar, and The cloud server can determine whether the synchronized meeting schedule information needs to be synchronized again based on the modified fields, to avoid the situation where the meeting schedule information has been modified but the cloud has not been synchronized.
[0076] The conference application can actively call synchronization after the user modifies the data; it can also trigger synchronization when the mobile phone (including mobile phone 100A, mobile phone 200B) meets the preset synchronization conditions, such as when the mobile phone (including mobile phone 100A, mobile phone 200B) is connected to a wireless network (wireless fidelity, Wi-Fi) and the battery power meets the preset threshold. It can also trigger synchronization when other electronic devices are updated. The synchronization is triggered when the cloud server data is updated.
[0077] In some embodiments, the modified field may be a dirty field. For example, the original dirty field of the conference schedule information 301 is 0. If the conference schedule information 301 triggers modification, the dirty field is marked 1. The calendar application 102 synchronizes the modified conference schedule information 301 to the calendar application information M2 based on the modified field of the conference schedule information and the calendar application information identifier M2. The cloud server 400 may be configured as follows: First, the calendar application 102 of the mobile phone 100A determines based on the calendar application information identifier M2 The conference schedule information corresponding to the cloud server 400; secondly, based on the modified field, determine whether to synchronize the modified conference schedule information 301. If the judgment result is yes, synchronize the modified conference schedule information 301; if the judgment result is no, do not synchronize the modified conference schedule information 301.
[0078] For example, assuming that the meeting schedule information is C, and the calendar application information identifier M2: uuid = abcd, dirty = 1. The calendar application 102 of the mobile phone 100A can first determine based on M2: uuid = abcd The conference schedule information C corresponding to the cloud server 400 determines that the conference schedule information C has been modified based on dirty=1, and synchronizes the conference schedule information C corresponding to dirty=1.
[0079] It can be understood that the calendar application information identifier and calendar application information identifier of each conference schedule information are unique and unchanged, and the user's modification of the conference schedule information will only trigger the modification of the modification field of the conference schedule information.
[0080] In some embodiments, the conference schedule information also has a modification time, and whether to synchronize the modified conference schedule information can be determined based on the modification time, the modification field, and the conference application information identifier.
[0081] It can be understood that the above-mentioned determination of whether to synchronize the modified meeting schedule information 301 based on the modified field may include: determining whether to synchronize the modified meeting schedule information 301 based on the modified field; if the judgment result is yes, determining whether to synchronize the modified meeting schedule information 301 based on the modification time; if the modification time is later than the synchronized meeting schedule information 301, synchronizing the modified meeting schedule information 301. The modification time may be the Last time. For example, assuming that the meeting schedule information is C, the calendar application information identifier M2: uuid = abcd, dirty = 1, Last time (1) = January 1, 2022 17:00. The calendar application 202 of the mobile phone 100A can determine based on M2: uuid = abcd The conference schedule information C corresponding to the cloud server 400; secondly, based on dirty=1, it is determined that the conference schedule information C has been modified; again, the Last time of the synchronized conference schedule information is obtained. If the Last time (2) of the synchronized conference schedule information is 13:00 on January 1, 2022, then based on Last time (1) = 17:00 on January 1, 2022, the conference schedule information C corresponding to the synchronized dirty=1 is determined.
[0082] The data synchronization method provided by the embodiment of the present application is described in detail below in conjunction with an electronic device. Figure 4 A schematic diagram of a data synchronization method according to an embodiment of the present application is shown. The data synchronization method includes:
[0083] 401: The cloud 300 of the conference application sends the conference schedule information 301 and the conference application information identifier M1 to the conference application 101 of the mobile phone 100A.
[0084] In the embodiment of the present application, the conference application information identifier is a unique identifier assigned by the conference application to the schedule information within the conference application, for example, a unique identifier assigned by the conference application to the conference schedule information, M1: sync_id=abcd.
[0085] In some embodiments, the mobile phone 100A and the mobile phone 200B can implement a data synchronization method between the cloud and the electronic device based on the synchronization framework, that is, cloud synchronization. The synchronization framework of the mobile phone (including the mobile phone 100A and the mobile phone 200B) is as follows: Figure 5As shown, on the terminal side of the mobile phone (including mobile phone 100A and mobile phone 200B), it includes contacts, memos, gallery, synchronization local configuration library (software development kit, SDK), cloud space application (Application, APP), account center, push agent, trust ring management, etc.; among them, the cloud space APP can provide the backup and synchronization function carrier of the terminal side, and the synchronization SDK can provide the third application access to the cloud synchronization service. The cloud side of the mobile phone (including mobile phone 100A and mobile phone 200B) includes cloud space-cloud service, system account, push, trust ring, etc.; among them, the cloud space-cloud service can provide data storage and processing for users.
[0086] Specifically, the cloud synchronization method is as follows Figure 6 As shown, when users use electronic devices such as TVs, computers, tablets, and mobile phones that use application cloud space - cloud services, application data is generated. Then, the electronic devices synchronize the application data to the synchronization server on the cloud side through the synchronization SDK; finally, the synchronization server interacts with the business server and storage server to achieve cloud synchronization of application data.
[0087] For example, when a user uses conference application 101 or 201 on a mobile phone (including mobile phone 100A and mobile phone 200B), application data is generated, and then the mobile phone (including mobile phone 100A and mobile phone 200B) synchronizes the application data to the synchronization server on the cloud side through the synchronization SDK; finally, the synchronization server interacts with the business server and storage server for data.
[0088] It can be seen that through the data synchronization method between the terminal side and the cloud side of the electronic device, it can be ensured that the application data provided by the user is not lost, and it can also realize multi-device viewing and collaborative application data.
[0089] Among them, cloud synchronization adopts a version management strategy, that is, in the process of cloud synchronization, the cloud corresponding to the electronic device is regarded as a remote configuration library, the synchronization SDK is regarded as a local configuration library, and the application data is regarded as editor data. Figure 7As shown, first, the default version of the application data in the cloud is v2, the version of the application data in the application is v1-1, and the version of the application data in the synchronization SDK is v1; secondly, the synchronization SDK pulls the v2 version of the application data (remote SDK data) from the cloud to the local, and the synchronization SDK merges the v2 version of the application data into the local, and the version of the application data in the local synchronization SDK is updated to v2; thirdly, the synchronization SDK synchronizes the data obtained from the cloud to the application, and the application merges the data obtained from the cloud by the synchronization SDK with the original version of the application data v1-1 in the application, and updates the version of the application data in the application to v2-1; finally, since a new local version may be generated during the merging process, the version of the merged application data in the application and the original data in the application are updated to v3, and based on the v3 version of the application data in the application, the application data is synchronized to the synchronization SDK, the version of the application data in the synchronization SDK is updated to v3, and the application data is uploaded to the cloud, and the version of the application data in the cloud is updated from v2 to v3.
[0090] In some embodiments, the cloud 300 of the conference application can use Figure 8 The method shown sends the conference application information identifier M1 to the conference application 101 of the mobile phone 100A.
[0091] like Figure 8 As shown, the mobile phone 100A includes a business application (conference application 101) and a synchronization SDK; the cloud 300 of the conference application includes a cloud service and a cloud synchronization assistant. The method of synchronizing the conference schedule information 301 from the cloud 300 of the conference application to the conference application 101 may include:
[0092] 801: Synchronize SDK and download.
[0093] 802: Synchronize the SDK to obtain the application data key value (queryLocalIDs) from the business application.
[0094] 803: Synchronize SDK to identify local additions, modifications and deletions.
[0095] 804: Synchronous SDK processes data upload.
[0096] 805: Synchronize the SDK to query the business application for local data.
[0097] 806: The business application returns data to the synchronization SDK.
[0098] 807: Synchronize SDK to synchronize uplink data to the cloud synchronization assistant.
[0099] 808: Cloud Sync Assistant prepares data.
[0100] 809: When the cloud synchronization assistant has a file, the cloud synchronization assistant requests the business application for the file data (ContentProvider).
[0101] Among them, ContentProvider is the content provider.
[0102] 810: Business applications read files.
[0103] 811: The business application transfers the file in the ContentProvider to the cloud synchronization assistant.
[0104] 812: Cloud synchronization cooked file upload (CFS) to cloud service.
[0105] Among them, CFS (Completely Fair Scheduler) is a completely fair scheduler.
[0106] 813: Cloud service storage CFS&OBS.
[0107] Among them, OBS (Optical Burst Switching--OBS) is burst packet switching.
[0108] 814: The cloud service sends a message to the cloud synchronization assistant that the file upload is complete.
[0109] 815: Cloud Sync Assistant uploads structured data to cloud services.
[0110] 816: Cloud service for cloud data processing.
[0111] 817: The cloud service returns the cloud processing result to the synchronization SDK.
[0112] 818: The synchronization SDK updates the synchronization results to the business application.
[0113] 819: Synchronize SDK to update cached eTag.
[0114] Among them, eTag is the cache tag under the current path.
[0115] 820: Synchronous SDK determines whether the batch is completed. If the judgment result is yes, go to 821; if the judgment result is no, go to 804.
[0116] 821: Synchronize SDK to update cTag.
[0117] Among them, cTag is the tag under the current path.
[0118] 822: Synchronize SDK and then synchronize.
[0119] Among them, 804-820 are used as batch processing steps; at the beginning of 801, the cloud service is locked, and at the end of 822, the cloud service is unlocked. Locking represents the start of processing the synchronous download data; unlocking represents the completion of processing.
[0120] 402 : The conference application 101 of the mobile phone 100A synchronizes the conference schedule information 301 and the conference application information identifier M1 to the calendar application 102 of the mobile phone 100A.
[0121] like Figure 3 As shown, the calendar application 102 can download the local calendar from the local calendar download server, download holiday information from the global holiday download server, obtain schedule information from the calendar storage, set reminders / trigger reminders through the AlarmManager interface, initiate Exchange calendar synchronization through the SyncManager interface, obtain reminder ringtones from the subject, and obtain account information from the user account. The calendar application 102 can also share ics calendars to emails, SMS, Bluetooth, NFC, WLAN direct connection, etc. Among them, the schedule information stored in the calendar storage includes Schedule information from the cloud server, Exchange calendar synchronization, travel information added to the YOYO schedule, local schedule synchronized with the cloud service, backup / restored calendar; calendar storage can also add and read schedules from third-party applications such as Hammer Calendar, and subscribe to schedules from office software.
[0122] As you can understand, calendar storage belongs to content providers. Content providers are used to store data and make it accessible to third-party applications. Content providers provided by the Android platform (including calendar storage) usually expose data in the form of a set of tables based on a relational database model. Each row in the table is a record, and each column is data of a specific type and meaning. Applications and sync adapters can obtain read / write permissions to the database tables that store user calendar data through the Calendar Provider API.
[0123] Each content provider exposes a public URI (wrapped as a Uri object) that uniquely identifies its data set. Content providers that control multiple data sets (multiple tables) expose separate URIs for each data set. All provider URIs begin with the string "content: / / ". This indicates that the data is under the control of the content provider. The calendar store defines URI constants for each of its classes (tables). The format of these URIs is <class>.CONTENT_URI. For example, Events.CONTENT_URI.
[0124] like Fig. 9 As shown, Fig. 9 The data model for the calendar storage. The calendar storage defines a URI constant for the event table, namely: Events.CALENDAR_ID; then, different events are assigned different IDs, such as: Attendees.EVENT_ID, Reminders.EVENT_ID, Instances.EVENT_ID.
[0125] It is understood that a user can have multiple calendars and can associate different calendars with different types of accounts. Calendar storage can create multiple tables, such as: CalendarContract.Calendars, CalendarContract.Events, CalendarContract.Instances, CalendarContract.Attendees, CalendarContract.Reminders.
[0126] CalendarContract.Calendars is used to store calendar-specific information. Each row in this table contains detailed information about a calendar, such as name, color, synchronization information, etc.
[0127] CalendarContract.Events is used to store event specific information. Each row in this table contains information about an event, such as the event's title, location, start time, end time, etc. Events can occur once or recur multiple times. Attendees, reminders, and extended properties are stored in separate tables. They each have an EVENT_ID that references the _ID in the Events table.
[0128] CalendarContract.Instances is used to store the start and end time of each event instance. Each row in this table represents an event instance. For one-time events, instances and events are mapped 1:1. For recurring events, the system automatically generates multiple rows corresponding to multiple event instances.
[0129] CalendarContract.Attendees is used to store attendee (guest) information, with each row representing a guest of an event. Each row specifies the guest type and a response indicating whether the guest will attend the event.
[0130] CalendarContract.Reminders is used to store reminder / notification data. Each row represents a reminder for an event. An event can have multiple reminders. The user can specify the maximum number of reminders per event in MAX_REMINDERS.
[0131] 403 : The calendar application 102 of the mobile phone 100A allocates a calendar application information identifier M2 to the conference schedule information 301 , and adds the calendar application information identifier M2 to the calendar application 102 .
[0132] The calendar application information identifier is a unique identifier assigned by the calendar application to the schedule information in the calendar application. For example, the calendar application information identifier may be M2: uuid = abcd; wherein the contents of the calendar application information identifier and the conference application information identifier are consistent; that is, the contents of the conference application information identifier and the calendar application information identifier of the same schedule information are consistent.
[0133] It can be understood that since the content of the conference application information identifier is consistent with that of the calendar application information identifier, when the calendar application information identifier M2 exists in the calendar application 202 of the mobile phone 200B, that is, the conference application 201 of the mobile phone 200B has written the conference schedule information 301 into the calendar application 202, the mobile phone 200B will not The cloud server 400 synchronizes the conference schedule information 301 to avoid duplicate information in the mobile phone 200B.
[0134] 404: The cloud 300 of the conference application sends the conference schedule information 301 and the conference application information identifier M1 to the conference application 201 of the mobile phone 200B.
[0135] In the embodiment of the present application, the conference application information identifier is a unique identifier assigned by the conference application to the conference schedule information, for example: M1: sync_id=abcd.
[0136] It can be understood that each application in the mobile phone 100A and the mobile phone 200B is logged into the same user account. Therefore, when the cloud 300 of the conference application updates the conference schedule information 301 or When the cloud server 400 updates the conference schedule information 301, the conference application 201 in the mobile phone 200B is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application, and the calendar application 202 is triggered to synchronize the conference schedule information 301 from the cloud 300 of the conference application. The cloud server 400 synchronizes the conference schedule information 301 .
[0137] 405: The conference application 201 of the mobile phone 200B synchronizes the conference schedule information 301 and the conference application information identifier M1 to the calendar application 202 of the mobile phone 200B.
[0138] 406 : The calendar application 202 of the mobile phone 200B allocates the calendar application information identifier M3 to the conference schedule information 301 , and adds the calendar application information identifier M3 to the calendar application 202 .
[0139] The calendar application information identifier is a unique identifier assigned by the calendar application to the schedule information in the calendar application. For example, the calendar application information identifier may be M3:uuid=abcd; wherein the contents of the calendar application information identifier and the conference application information identifier are consistent; that is, the contents of the conference application information identifier and the calendar application information identifier of the same conference schedule information are consistent.
[0140] It can be understood that since the content of the conference application information identifier is consistent with that of the calendar application information identifier, when the calendar application information identifier M3 exists in the calendar application 202 of the mobile phone 200B, since M2=M3; that is, the conference application 201 of the mobile phone 200B has written the conference schedule information 301 into the calendar application 202, the mobile phone 200B will not be able to obtain the conference schedule information 301 from the calendar application 202. The cloud server 400 synchronizes the conference schedule information 301 to avoid duplicate information in the mobile phone 200B.
[0141] 407: The calendar application 102 of the mobile phone 100A synchronizes the conference schedule information 301, the conference application information identifier M1, and the calendar application information identifier M2 to Cloud server 400.
[0142] In some embodiments, the calendar application 102 may use Fig.10 The method shown synchronizes conference schedule information 301, conference application information identifier M1, calendar application information identifier M2 to Cloud server 400.
[0143] like Fig.10 As shown, the mobile phone 100A includes a business application (calendar application 102) and a synchronization SDK; The cloud server 400 includes a cloud service and a cloud synchronization assistant. The calendar application 102 synchronizes the meeting schedule information 301 to The method of the cloud server 400 includes:
[0144] 1011: Synchronize SDK and start synchronization.
[0145] 1012: The synchronization SDK requests data version information from the cloud service.
[0146] 1013: The cloud service requests version information locally.
[0147] 1014: The cloud service returns version information to the synchronization SDK.
[0148] 1015: Synchronize SDK to identify cloud modifications.
[0149] 1016: Synchronize SDK to process data download.
[0150] 1017: The synchronization SDK sends the download data to the cloud synchronization assistant.
[0151] 1018: The cloud synchronization assistant sends download data to the cloud service.
[0152] 1019: Cloud service downloads data.
[0153] 1020: The cloud service returns the download data to the synchronization SDK.
[0154] 1021: Synchronize the SDK to send updateStructData to the business application.
[0155] Among them, updateStructData is the updated structure data.
[0156] 1022: Business application updates data.
[0157] 1023: The business application returns the update result to the synchronization SDK.
[0158] 1024: Synchronize SDK to update cached eTag.
[0159] The cache eTag is the cache tag of the current path.
[0160] 1025: The Sync SDK requests the Cloud Sync Assistant to download (CFS).
[0161] Among them, CFS (Completely Fair Scheduler) is a completely fair scheduler.
[0162] 1026: Cloud service storage CFS&0SS.
[0163] Among them, OSS (Operation Support Systems) is the system, that is, the operation support system.
[0164] 1027: The cloud service sends the file download & write to the cloud synchronization assistant.
[0165] 1028: The cloud synchronization assistant writes to the business application through ContentProvider.
[0166] Among them, ContentProvider is the content provider.
[0167] 1029: Business applications write local files.
[0168] 1030: The cloud synchronization assistant sends a download completion message to the synchronization SDK.
[0169] 1031: The synchronous SDK sends a callback to the business application to complete the download.
[0170] 1032: Synchronize SDK to determine whether the download is complete. If the determination result is yes, go to 1033; if the determination result is no, go to 1016.
[0171] 1033: Sync SDK handles cloud deletion.
[0172] 1034: The business application deletes local data.
[0173] 1035: Synchronize SDK to update cached eTag.
[0174] Among them, eTag is the cache tag of the current path.
[0175] 1036: The business application returns the deletion result to the synchronization SDK.
[0176] 1037: Synchronize SDK to update cTag.
[0177] Among them, cTag is the label of the current path.
[0178] 1038: Synchronize SDK to upload data.
[0179] It can be understood that 1016-1032 are processed in batches. Before 1016, the cloud service is locked; after 1032, the cloud service is unlocked.
[0180] 408: The server 400 sends the conference schedule information 301 , the conference application information identifier M1 , and the calendar application information identifier M2 to the calendar application 202 of the mobile phone 200B.
[0181] 409: the calendar application 202 of the mobile phone 200B determines whether there is conference schedule information identical to the schedule information 301, the conference application information identifier M1 and the calendar application information identifier M2. If the determination result is yes, go to 410; if the determination result is no, go to 411.
[0182] It can be understood that since the conference application information identifier is consistent with the calendar application information identifier, when the calendar application information identifier M3 exists in the calendar application 202 of the mobile phone 200B (M2=M3), that is, the conference application 201 of the mobile phone 200B has written the conference schedule information 301 into the calendar application 202, at this time, the calendar application 202 of the mobile phone 200B will no longer be The server 400 synchronizes the conference schedule information 301 to avoid duplicate information in the mobile phone 200B.
[0183] 410: The calendar application 202 of the mobile phone 200B does not synchronize the conference schedule information 301 to the calendar application 202 of the mobile phone 200B.
[0184] like Fig.11 As shown, since the calendar application 202 of the mobile phone 200B already has the same conference schedule information as the schedule information 301, the conference application information identifier M1 and the calendar application information identifier M2, the schedule information 301 is no longer synchronized.
[0185] 411: The calendar application 202 of the mobile phone 200B synchronizes the conference schedule information 301 to the calendar application 202 of the mobile phone 200B.
[0186] In the embodiment of the present application, since the conference application information identifier of the same conference schedule information is consistent with the calendar application information identifier, the information identifier of the same conference schedule information is unique. Therefore, no matter in the cloud of the conference application, the conference application, the calendar application, The server can identify the conference schedule data according to the unique information identifier, avoid repeated synchronization of the same conference schedule information, and improve the user experience.
[0187] It can be understood that in some embodiments, the conference schedule information in the data synchronization method provided in the embodiments of the present application has a modification field. Fig.12 A schematic diagram of a data synchronization method according to an embodiment of the present application is shown in FIG.
[0188] 1201: The conference application 101 of the mobile phone 100A modifies the modification field of the conference schedule information 301 of the mobile phone 100A.
[0189] It can be understood that when the user modifies the synchronized conference schedule information 301 in the conference application 101 of the mobile phone 100A, the modification field of the conference schedule information 301 is triggered.
[0190] In some embodiments, the modified field may be a dirty field. For example, the original dirty field of the conference schedule information is 0. If the conference schedule information triggers a modification, the dirty field is marked as 1.
[0191] It is understood that the conference application 101 can actively call synchronization after the user modifies the data, or after the user turns on the synchronization switch, The APP of the mobile phone 100A corresponding to the cloud server 400 notifies the conference application 101 to start the data synchronization method; the synchronization can also be triggered when the mobile phone 100A meets the preset synchronization conditions, such as when the mobile phone 100A is connected to wifi and the battery power meets the preset threshold value; the synchronization can also be triggered when other electronic devices are updated. The cloud server 400 triggers synchronization when the data is received. When the mobile phone 100A is in different working states, the M1sync_id of the same schedule information remains unchanged, and the scene value of the schedule information changes, for example, syncScene changes from 1 to 2.
[0192] 1202: The conference application 101 of the mobile phone 100A synchronizes the modified conference schedule information 301 to the cloud 300 of the conference application based on the modification field of the conference schedule information 301 and the conference application information identifier M1.
[0193] 1203: The conference application 101 of the mobile phone 100A synchronizes the modified conference schedule information 301 and the modified fields to the calendar application 102 of the mobile phone 100A.
[0194] 1204: The calendar application 102 of the mobile phone 100A synchronizes the modified conference schedule information 301 to the calendar application information identifier M2 based on the modified field of the conference schedule information 301. Cloud server 400.
[0195] In some embodiments, the modified field may be a dirty field. For example, the original dirty field of the conference schedule information 301 is 0. If the conference schedule information 301 triggers a modification, the dirty field is marked as 1.
[0196] Specifically, first, the calendar application 102 of the mobile phone 100A determines based on the calendar application information identifier M2 The corresponding conference schedule information 301 in the cloud server 400; secondly, based on the modified field, determine whether to synchronize the modified conference schedule information 301. If the judgment result is yes, synchronize the modified conference schedule information 301; if the judgment result is no, do not synchronize the modified conference schedule information 301.
[0197] For example, assuming that the meeting schedule information is C, and the calendar application information identifier M2: uuid = abcd, dirty = 1. The calendar application 102 of the mobile phone 100A can first determine based on M2: uuid = abcd The conference schedule information C corresponding to the cloud server 400 determines that the conference schedule information C has been modified based on dirty = 1, and synchronizes the conference schedule information C corresponding to dirty = 1. It can be understood that the identification information of each conference schedule information is unique and unchanged, and the user's modification of the conference schedule information will only trigger the modification of the modified field of the conference schedule information.
[0198] In some embodiments, the conference schedule information also has a modification time, and whether to synchronize the modified conference schedule information 301 can be determined based on the modification time, the modification field, and the conference application information identifier M1.
[0199] It can be understood that the above-mentioned determination of whether to synchronize the modified meeting schedule information 301 based on the modified field may include: determining whether to synchronize the modified meeting schedule information 301 based on the modified field; if the judgment result is yes, determining whether to synchronize the modified meeting schedule information 301 based on the modification time; if the modification time is later than the synchronized meeting schedule information, synchronizing the modified meeting schedule information. The modification time may be the Last time. For example, assuming that the meeting schedule information is C, the calendar application information identifier M2: uuid = abcd, dirty = 1, Last time (1) = January 1, 2022 17:00. The calendar application 102 of the mobile phone 200B can determine based on M2: uuid = abcd The conference schedule information C corresponding to the cloud server 400; secondly, based on dirty=1, it is determined that the conference schedule information C has been modified; thirdly, the Last time of the synchronized conference schedule information is obtained. If the Last time (2) of the synchronized conference schedule information is 13:00 on January 1, 2022, then based on Lasttime (1) = 17:00 on January 1, 2022, the conference schedule information C corresponding to the synchronized dirty=1 is determined.
[0200] 1205 : The conference application 201 of the mobile phone 200B synchronizes the modified conference schedule information 301 and the modified fields from the cloud 300 of the conference application.
[0201] 1206 : The conference application 201 of the mobile phone 200B synchronizes the conference schedule information 301 and the modified fields to the calendar application 202 .
[0202] 1207: The cloud server 400 sends the modified conference schedule information 301 , the conference application information identifier M1 , the calendar application information identifier M2 , and the modified field to the calendar application 202 of the mobile phone 200B.
[0203] 1208: The calendar application 202 of the mobile phone 200B determines whether there is conference schedule information that is identical to the conference schedule information 301, conference application information identifier M1, calendar application information identifier M2 and modification fields. If the determination result is yes, go to 1209; if the determination result is no, go to 1210.
[0204] It can be understood that the above determination of whether there is conference schedule information identical to the conference schedule information 301, conference application information identifier M1, calendar application information identifier M2 and modification field can be synchronized using the above method, which will not be repeated here.
[0205] 1209: The calendar application 202 of the mobile phone 200B does not synchronize the modified conference schedule information 301 to the calendar application 202 of the mobile phone 200B.
[0206] 1210: The calendar application 202 of the mobile phone 200B synchronizes the modified conference schedule information 301 to the calendar application 202 of the mobile phone 200B.
[0207] In the embodiment of the present application, the modified field and the modified time are used as the criteria for determining whether to synchronize the synchronized conference schedule information again, so that the cloud, conference application, calendar application, The cloud server can synchronize the modified meeting schedule information in a timely manner, avoiding repeated synchronization of the same modified meeting schedule information, thus improving the user experience.
[0208] The present application embodiment also provides another data synchronization method. Specifically, Fig.13 A schematic diagram of a data synchronization method according to an embodiment of the present application is shown in FIG. 1 , and the execution subject of the process is a mobile phone (including mobile phone 100A and mobile phone 200B).
[0209] 1301: A synchronization instruction is received to synchronize the first schedule information to the first application.
[0210] The first application may be an application for storing data and making it accessible to third-party applications. In the embodiment of the present application, a calendar application is used as the first application.
[0211] The first schedule information may be meeting schedule information, memo schedule information, email schedule information, travel itinerary information, album release information, etc., and the corresponding third-party applications may be meeting applications, memo applications, email applications, travel applications, music applications, etc.
[0212] 1302: Determine whether the first schedule information comes from the second application. If the determination result is yes, go to 1303; if the determination result is no, go to 1304.
[0213] In the embodiment of the present application, the third-party application is used as the second application, and the second application can be a conference application, a memo application, an email application, a travel application, a music application, etc.
[0214] 1303: Write the first schedule information into the first application.
[0215] 1304: Determine whether there is schedule information with the same information identifier as the first schedule information in the first application. If the determination result is yes, go to 1305; if the determination result is no, go to 1306.
[0216] It can be understood that the schedule information carries an information identifier. The information identifier assigned by the first application to the schedule information is the calendar application information identifier, for example: M2: uuid = abcd. The information identifier assigned by the second application to the schedule information is the third-party application information identifier, for example: M1: sync_id = abcd. That is, the calendar application information identifier of the same schedule information has the same content as the third-party application information identifier, that is, the information identifier of the same schedule information is unique.
[0217] 1305: Do not synchronize the first schedule information to the first application.
[0218] It can be understood that since the information identifier of the same schedule information is unique, it is possible to determine whether the schedule information exists based on the information identifier. That is, if the information identifier of the first schedule information exists in the first application, that is, the first schedule information exists in the first application, the first schedule information will not be synchronized to the first application.
[0219] 1306: Synchronize the first schedule information to the first application.
[0220] It can be understood that since the information identifier of the same schedule information is unique, it is possible to determine whether the schedule information exists based on the information identifier. That is, if the information identifier of the first schedule information does not exist in the first application, that is, the first schedule information does not exist in the first application, then the first schedule information is synchronized to the first application.
[0221] In the embodiment of the present application, since the information identifier of the same schedule information is unique, no matter where the schedule information comes from, the schedule information can be identified according to the information identifier, thereby avoiding repeated synchronization of the same schedule information and improving the user experience.
[0222] like Fig.14 As shown, the electronic device 10 may include a processor 110, a power module 140, a memory 180, a mobile communication module 130, a wireless communication module 120, a sensor module 190, an audio module 150, a camera 170, an interface module 160, a button 101 and a display screen 102, etc.
[0223] It is to be understood that the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the electronic device 10. In other embodiments of the present application, the electronic device 10 may include more or fewer components than shown in the figure, or combine some components, or separate some components, or arrange the components differently. The components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.
[0224] The processor 110 may include one or more processing units, for example, a central processing unit (CPU), a graphics processing unit (GPU), a digital signal processor DSP, a microprocessor (MCU), an artificial intelligence (AI) processor, or a processing module or processing circuit of a programmable logic device (FPGA). Among them, different processing units can be independent devices or integrated in one or more processors. A storage unit can be set in the processor 110 for storing instructions and data. In some embodiments, the storage unit in the processor 110 is a cache memory 180.
[0225] It can be understood that the operating method in the embodiment of the present application can be executed by the processor 110 of the corresponding electronic device. The power module 140 may include a power supply, a power management component, etc. The power supply may be a battery. The power management component is used to manage the charging of the power supply and the power supply of the power supply to other modules. In some embodiments, the power management component includes a charging management module and a power management module. The charging management module is used to receive charging input from the charger; the power management module is used to connect the power supply, the charging management module and the processor 110. The power management module receives input from the power supply and / or the charging management module to power the processor 110, the display screen 102, the camera 170, and the wireless communication module 120.
[0226] The mobile communication module 130 may include, but is not limited to, an antenna, a power amplifier, a filter, a low noise amplifier (LNA), etc. The mobile communication module 130 may provide a solution for wireless communications including 2G / 3G / 4G / 5G, etc., applied to the electronic device 10. The mobile communication module 130 may receive electromagnetic waves by an antenna, and filter, amplify, and process the received electromagnetic waves, and transmit them to a modulation and demodulation processor for demodulation. The mobile communication module 130 may also amplify the signal modulated by the modulation and demodulation processor, and convert it into electromagnetic waves for radiation through the antenna. In some embodiments, at least some of the functional modules of the mobile communication module 130 may be arranged in the processor 110. In some embodiments, at least some of the functional modules of the mobile communication module 130 may be arranged in the same device as at least some of the modules of the processor 110.
[0227] The wireless communication module 120 may include an antenna, and transmit and receive electromagnetic waves via the antenna. The wireless communication module 120 may provide wireless communication solutions 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 technology (NFC), infrared technology (IR), etc., which are applied to the electronic device 10. The electronic device 10 may communicate with the network and other devices through wireless communication technology.
[0228] It can be understood that in the embodiment of the present application, when the electronic device is a receiving device, the video data and audio data from other electronic devices in the recording group, as well as the recording content label and time stamp information corresponding to each data, can be received through the wireless communication module. And when the electronic device is a sending device, the video data and audio data, as well as the recording content label and time stamp information corresponding to each data, can be sent to other electronic devices in the recording group through the wireless communication module.
[0229] In some embodiments, the mobile communication module 130 and the wireless communication module 120 of the electronic device 10 may also be located in the same module.
[0230] The display screen 102 is used to display a human-computer interaction interface, images, videos, etc. The display screen 102 includes a display panel. The display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode or an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLED), MiniLed, MicroLed, Micro-oLed, a quantum dot light emitting diode (QLED), etc.
[0231] The sensor module 190 may include a proximity light sensor, a pressure sensor, a gyro sensor, an air pressure sensor, a magnetic sensor, an acceleration sensor, a distance sensor, a fingerprint sensor, a temperature sensor, a touch sensor, an ambient light sensor, a bone conduction sensor, and the like.
[0232] It can be understood that the ambient light sensor in the embodiment of the present application can be used to obtain lighting status information and send the lighting status information to the processor.
[0233] The audio module 150 is used to convert digital audio information into an analog audio signal output, or to convert an analog audio input into a digital audio signal. The audio module 150 can also be used to encode and decode audio signals. In some embodiments, the audio module 150 can be arranged in the processor 110, or some functional modules of the audio module 150 can be arranged in the processor 110. In some embodiments, the audio module 150 may include a speaker, an earpiece, a microphone, and an earphone interface. The camera 170 is used to capture static images or videos. The object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element converts the optical signal into an electrical signal, and then passes the electrical signal to the image signal processing (Image Signal Processing, ISP) to convert it into a digital image signal. The electronic device 10 can realize the shooting function through the ISP, the camera 170, the video codec, the graphics processor (Graphic Processing Unit, GPU), the display screen 102 and the application processor.
[0234] The interface module 160 includes an external memory interface, a universal serial bus (USB) interface, and a subscriber identification module (SIM) card interface. The external memory interface can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 10. The external memory card communicates with the processor 110 via the external memory interface to implement a data storage function. The universal serial bus interface is used for the electronic device 10 to communicate with other electronic devices. The subscriber identification module card interface is used to communicate with a SIM card installed in the electronic device 1010, for example, to read a phone number stored in the SIM card, or to write a phone number into the SIM card.
[0235] In some embodiments, the electronic device 10 further includes a button 101, a motor, an indicator, etc. Among them, the button 101 may include a volume button, an on / off button, etc. The motor is used to make the electronic device 10 vibrate, for example, vibrate when the user's electronic device 10 is called, so as to prompt the user to answer the call of the electronic device 10. The indicator may include a laser indicator, a radio frequency indicator, an LED indicator, etc.
[0236] The various embodiments of the mechanism disclosed in the present application can be implemented in hardware, software, firmware or a combination of these implementation methods. The embodiments of the present application can be implemented as a computer program or program code executed on a programmable system, which includes at least one processor, a storage system (including volatile and non-volatile memory and / or storage elements), at least one input device and at least one output device.
[0237] Program code can be applied to input instructions to perform the functions described in this application and generate output information. The output information can be applied to one or more output devices in a known manner. For the purposes of this application, a processing system includes any system having a processor such as, for example, a digital signal processor (DSP), a microcontroller, an application specific integrated circuit (ASIC), or a microprocessor.
[0238] Program code can be implemented with high-level procedural language or object-oriented programming language to communicate with processing system. When necessary, program code can also be implemented with assembly language or machine language. In fact, the mechanism described in this application is not limited to the scope of any specific programming language. In either case, the language can be a compiled language or an interpreted language. In some cases, the disclosed embodiments can be implemented with hardware, firmware, software or any combination thereof. The disclosed embodiments can also be implemented as instructions carried or stored thereon by one or more temporary or non-temporary machine-readable (e.g., computer-readable) storage media, which can be read and executed by one or more processors. For example, instructions can be distributed over a network or by other computer-readable media. Therefore, the machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer), including but not limited to floppy disks, optical disks, optical discs, compact discs, read-only memories (CD-ROMs), magneto-optical disks, read-only memories (ROMs), random-access memories (RAMs), erasable programmable read-only memories (EPROMs), electrically erasable programmable read-only memories (EEPROMs), magnetic or optical cards, flash memory, or tangible machine-readable storage for transmitting information using the Internet in electrical, optical, acoustic or other forms of propagation signals (e.g., carrier waves, infrared signals, digital signals, etc.). Therefore, the machine-readable medium includes any type of machine-readable medium suitable for storing or transmitting electronic instructions or information in a form readable by a machine (e.g., a computer).
[0239] In the accompanying drawings, some structural or method features may be shown in a specific arrangement and / or order. However, it should be understood that such a specific arrangement and / or order may not be required. Instead, in some embodiments, these features may be arranged in a manner and / or order different from that shown in the illustrative drawings. In addition, the inclusion of structural or method features in a particular figure does not mean that such features are required in all embodiments, and in some embodiments, these features may not be included or may be combined with other features.
[0240] It should be noted that the units / modules mentioned in the various device embodiments of the present application are all logical units / modules. Physically, a logical unit / module can be a physical unit / module, or a part of a physical unit / module, or can be implemented as a combination of multiple physical units / modules. The physical implementation method of these logical units / modules themselves is not the most important. The combination of functions implemented by these logical units / modules is the key to solving the technical problems proposed by the present application. In addition, in order to highlight the innovative part of the present application, the above-mentioned device embodiments of the present application do not introduce units / modules that are not closely related to solving the technical problems proposed by the present application, which does not mean that there are no other units / modules in the above-mentioned device embodiments.
[0241] It should be noted that in the examples and description of this patent, relational terms such as first and second, etc. are only used to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "include", "comprise" or any other variants thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, the elements defined by the sentence "include one" do not exclude the existence of other identical elements in the process, method, article or device including the elements. Although the present application has been illustrated and described with reference to certain preferred embodiments of the present application, it should be understood by those skilled in the art that various changes can be made to it in form and detail without departing from the spirit and scope of the present application.< / class>
Claims
1. A data synchronization method, characterized in that: include: A first application of a first electronic device obtains first schedule information of a second application, where the first schedule information includes a second application identifier and a first application identifier of the first schedule information; The first application of the first electronic device generates a second application identifier corresponding to the first application for the first schedule information, and sends the first schedule information and the second application identifier to the first application server, wherein the second application identifier and the first application identifier have different application fields and the same identifier fields, and The first application of the second electronic device obtains the first schedule information from the second application, and generates a third application identifier corresponding to the first application for the first schedule information; The first application corresponding to the second electronic device determines, based on the generated identification field of the third application identification, that the first application has acquired and stored the first schedule information and the second application identification from the first application server, and does not store the first schedule information; The first application corresponding to the second electronic device determines, based on the identification field of the first application identifier in the first schedule information, that the first application has not obtained and stored the first schedule information and the second application identifier from the first application server, and stores the first schedule information.
2. The data synchronization method according to claim 1, characterized in that: The account number of the first application of the first electronic device and the account number of the first application of the second electronic device are the same; The account number of the second application of the first electronic device is the same as the account number of the second application of the second electronic device.
3. The data synchronization method according to claim 1, characterized in that: The first schedule information includes a schedule content field, and, The method further comprises: The first electronic device detects that the second application modifies the schedule content field of the first schedule information, and obtains second schedule information, wherein the application identifier of the second application corresponding to the second schedule information is the same as the first application identifier; A first application of the first electronic device obtains the second schedule information and sends the second schedule information to the first application server, wherein an application identifier in the first application corresponding to the second schedule information is the same as the second application identifier.
4. The data synchronization method according to claim 3, characterized in that: The second electronic device determines whether the first application has acquired and stored the second schedule information from the first application server in the following manner: Corresponding to the application identifier and schedule content field in which the first application of the second electronic device stores the second schedule information, determining that the first application of the second electronic device has acquired and stored the second schedule information from the first application server; Corresponding to the application identifier or schedule content field that the first application of the second electronic device does not store the second schedule information, it is determined that the first application of the second electronic device has not obtained and stored the second schedule information from the first application server.
5. The data synchronization method according to claim 1, characterized in that: The first application includes a calendar application; The second application includes at least one of the following: Meeting application, memo application, email application, travel application, music application.
6. A data synchronization method, characterized in that: include: A first application of a first electronic device obtains first schedule information of a second application, where the first schedule information includes a second application identifier and a first application identifier of the first schedule information; The first application of the first electronic device generates a second application identifier corresponding to the first application for the first schedule information, and sends the first schedule information and the second application identifier to the first application server, wherein the second application identifier and the first application identifier have different application fields and the same identification field, and the second application identifier is used to implement: when the first application of the second electronic device obtains the first schedule information from the second application, and generates a third application identifier corresponding to the first application for the first schedule information, the first application corresponding to the second electronic device determines, based on the identification field of the generated third application identifier, that the first application has obtained and stored the first schedule information and the second application identifier from the first application server, and does not store the first schedule information; And, the first application corresponding to the second electronic device determines, based on the identification field of the first application identifier in the first schedule information, that the first application has not obtained and stored the first schedule information and the second application identifier from the first application server, and stores the first schedule information.
7. The data synchronization method according to claim 6, characterized in that: The first schedule information includes a schedule content field, and, The method further comprises: The first electronic device detects that the second application modifies the schedule content field of the first schedule information, and obtains second schedule information, wherein the application identifier of the second application corresponding to the second schedule information is the same as the first application identifier; A first application of the first electronic device obtains the second schedule information and sends the second schedule information to the first application server, wherein an application identifier in the first application corresponding to the second schedule information is the same as the second application identifier.
8. The data synchronization method according to claim 6, characterized in that: The first application includes a calendar application.
9. A data synchronization method, characterized in that: include: The first application of the second electronic device obtains the first schedule information from the second application, and generates a third application identifier corresponding to the first application for the first schedule information; The first application corresponding to the second electronic device determines, based on the identification field of the generated third application identification, that the first application has obtained and stored the first schedule information and the second application identification from the first application server, and does not store the first schedule information, wherein the second application identification is an identification of the first application corresponding to the first electronic device, which is generated by the first application of the first electronic device for the first schedule information obtained from the second application of the first electronic device; The first application corresponding to the second electronic device determines, based on the identification field of the first application identifier in the first schedule information, that the first application has not obtained and stored the first schedule information and the second application identifier from the first application server, and stores the first schedule information.
10. The data synchronization method according to claim 9, characterized in that: The second electronic device determines whether the first application has acquired and stored the second schedule information from the first application server in the following manner: Corresponding to the application identifier and schedule content field in which the first application of the second electronic device stores the second schedule information, determining that the first application of the second electronic device has acquired and stored the second schedule information from the first application server; Corresponding to the application identifier or schedule content field that the first application of the second electronic device does not store the second schedule information, it is determined that the first application of the second electronic device has not obtained and stored the second schedule information from the first application server.
11. The data synchronization method according to claim 9, characterized in that: The second application includes at least one of the following: Meeting application, memo application, email application, travel application, music application.
12. An electronic device, characterized in that: It comprises: a memory for storing instructions executed by one or more processors of the electronic device, and the processor, which is one of the one or more processors of the electronic device, for executing the data synchronization method described in any one of claims 1 to 5.
13. An electronic device, characterized in that: It comprises: a memory for storing instructions executed by one or more processors of the electronic device, and the processor, which is one of the one or more processors of the electronic device, for executing the data synchronization method described in any one of claims 6 to 8.
14. An electronic device, characterized in that: include: A memory for storing instructions executed by one or more processors of the electronic device, and the processor, which is one of the one or more processors of the electronic device, is used to execute the data synchronization method described in any one of claims 9 to 11.
15. A readable medium, characterized in that The readable medium stores instructions, which, when executed on an electronic device, enable the electronic device to execute the data synchronization method according to any one of claims 1 to 5.
16. A readable medium, characterized in that The readable medium stores instructions, which, when executed on an electronic device, enable the electronic device to execute the data synchronization method according to any one of claims 6 to 8.
17. A readable medium, characterized in that The readable medium stores instructions, which, when executed on an electronic device, enable the electronic device to execute the data synchronization method according to any one of claims 9 to 11.
Citation Information
Patent Citations
Schedule updating method and equipment
CN113780980A