A punch fence generation method, computer device and service device

By using latitude, longitude, and check-in radius information in the check-in units generated locally and in the cloud, a precise check-in fence is generated, which solves the problem of inaccurate check-in prompts in existing technologies and improves the user experience.

CN120388429BActive Publication Date: 2026-04-28HONOR DEVICE CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HONOR DEVICE CO LTD
Filing Date
2024-01-19
Publication Date
2026-04-28

AI Technical Summary

Technical Problem

The existing method for generating check-in boundaries is not accurate enough, leading to incorrect check-in notifications and impacting user experience.

Method used

By acquiring local and cloud-based check-in units, precise check-in fences are generated using latitude and longitude information and check-in radius, ensuring that only devices within the check-in range issue notifications.

Benefits of technology

The accuracy of check-in reminders has been improved, reducing false recommendations and missed check-ins, thus enhancing the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120388429B_ABST
    Figure CN120388429B_ABST
Patent Text Reader

Abstract

Embodiments of the present application apply to the field of intelligent terminals, and provide a punch fence generation method and an electronic device. At least one local punch unit and a plurality of cloud punch units are obtained, wherein the at least one local punch unit is obtained by clustering a plurality of first punch data in a first electronic device, and the plurality of cloud punch units is obtained by clustering a plurality of second punch data in a plurality of electronic devices. Each first punch data includes a punch radius of one punch and longitude and latitude information of a punch location. Then, at least one target cloud punch unit is selected from the plurality of cloud punch units, and each target cloud punch unit matches the longitude and latitude information and the punch radius. Then, a punch fence of the first electronic device is generated based on the at least one local punch unit and the at least one target cloud punch unit. In the present application, the accuracy of punch fence generation can be improved, and accurate output of punch prompts can be realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of smart terminals, and in particular to a method for generating a check-in fence, computer equipment, and service equipment. Background Technology

[0002] With the continuous development of electronic devices, more and more companies are using electronic devices (such as mobile phones) to implement attendance tracking. Specifically, employees who are within the company's attendance tracking area before work can clock in; employees who are within the company's attendance tracking area after get off work can clock out.

[0003] In related technologies, electronic devices generate corresponding check-in fences based on users' check-in information (such as check-in time and location), and automatically push check-in reminder messages when the electronic device is within the check-in fence to remind users to check in. However, currently, the check-in fences generated based on check-in information are not accurate enough, resulting in incorrect push notifications. Therefore, how to accurately generate check-in fences to improve the accuracy of check-in push notifications and thus enhance the user experience has become an urgent problem to be solved. Summary of the Invention

[0004] This application provides a method for generating a check-in fence, a computer device, and a service device to improve the accuracy of check-in fence generation, thereby improving the accuracy of check-in push notifications.

[0005] To achieve the above objectives, the embodiments of this application adopt the following technical solutions:

[0006] Firstly, a method for generating a check-in fence is provided. This method involves acquiring at least one local check-in unit and multiple cloud-based check-in units. The at least one local check-in unit is obtained by clustering multiple first check-in data points from a first electronic device. The multiple cloud-based check-in units are obtained by clustering multiple second check-in data points from multiple electronic devices. The multiple first and second check-in data points are check-in data in a check-in application. Each first check-in data point includes the check-in radius of a single check-in and the latitude and longitude information of the check-in location, where the check-in radius is the distance between the check-in location and the company. Then, at least one target cloud-based check-in unit is selected from the multiple cloud-based check-in units, and each target cloud-based check-in unit is matched with the latitude and longitude information and the check-in radius. Finally, a check-in fence for the first electronic device is generated based on the at least one local check-in unit and the at least one target cloud-based check-in unit.

[0007] Among them, the aforementioned multiple electronic devices include the first electronic device.

[0008] In this application, at least one target cloud-based check-in unit is determined based on latitude and longitude information and a check-in radius. The latitude and longitude information represents the check-in location when the user triggers the check-in operation, and the check-in radius represents the distance between the check-in location and the company. Therefore, the target cloud-based check-in unit determined based on latitude and longitude information and the check-in radius can represent the user's check-in range. In other words, the check-in fence generated by this target cloud-based check-in unit can represent whether the first electronic device can issue a check-in prompt. This ensures that only electronic devices located within the check-in fence can issue a check-in prompt. This not only achieves accurate output of check-in prompts, reducing the occurrence of electronic devices mistakenly recommending check-in due to users passing by other branches, but also provides timely and effective reminders for users to check in, reducing attendance anomalies due to missed check-ins, thereby improving the user experience.

[0009] In one possible implementation of the first aspect, the process of obtaining at least one local check-in unit may specifically include: obtaining historical clustering results; wherein the historical clustering results include at least one historical check-in unit. Then, new check-in data, excluding the first check-in data in the historical clustering results, is filtered from the local check-in dataset; wherein the local check-in dataset includes multiple first check-in data entries. Then, based on the historical clustering results, the new check-in data is clustered to obtain at least one local check-in unit.

[0010] In this application, the electronic device clusters other first check-in data based on historical clustering results. This reduces the excessive waste of computing resources caused by clustering previous check-in data, and not only improves the utilization rate of computing resources, but also improves the clustering efficiency of check-in data.

[0011] In one possible implementation of the first aspect, the process of clustering new check-in data based on historical clustering results can specifically include: initializing the cluster list according to historical clustering results to obtain an initialized cluster list; wherein the initialized cluster list includes at least one historical check-in unit from the historical clustering results. Then, repeatedly, if the number of new check-in data in the initialized cluster list is less than the total number of new check-in data in the local check-in dataset, calculate the distance between the first new check-in data and each historical check-in unit in the initialized cluster list to obtain a first minimum distance value; wherein the first new check-in data is any new check-in data in the local check-in dataset other than the new check-in data included in the cluster list. Then, if the first minimum distance value is less than the distance limit value, add the first new check-in data to the historical check-in unit corresponding to the first minimum distance value to obtain a new historical check-in unit, and increment the number of new check-in data in the cluster list by 1 to obtain a new number of data, until the number of new check-in data in the cluster list equals the total number of data, thus obtaining at least one local check-in unit.

[0012] In this application, after obtaining historical clustering results—that is, after the previous data clustering was completed and before the current data clustering—if a user's check-in operation is detected, the data clustering module also needs to obtain the check-in data corresponding to that operation. This is to avoid inaccurate clustering results due to missing check-in data and to improve the accuracy of the first clustering result. Furthermore, if the first minimum distance value is less than the distance limit value, it means that the first new check-in data is closest to the historical check-in unit corresponding to the first minimum distance value. The electronic device can then merge the first new check-in data with the historical check-in unit into the same check-in unit to complete the check-in data clustering.

[0013] In one possible implementation of the first aspect, the method further includes: if the first minimum distance value is greater than or equal to the distance limit value, creating a new check-in unit in the cluster list and adding the first new check-in data to the new check-in unit. Then, incrementing the count of the new check-in data in the cluster list by 1 to obtain a new data count, until the count of the new check-in data in the cluster list equals the total data count, thus obtaining at least one local check-in unit.

[0014] In this application, if the first minimum distance value is greater than or equal to the distance limit value, it indicates that the user holding the mobile phone may be working in a location other than the check-in location corresponding to the historical check-in unit. The electronic device can create a new check-in unit and add the first new check-in data to the new check-in unit to achieve check-in data clustering, thereby improving the accuracy of the first clustering result determination.

[0015] In one possible implementation of the first aspect, the process of obtaining at least one cloud-based check-in unit may specifically include: grouping multiple pieces of second check-in data from multiple electronic devices according to a preset category to obtain at least one check-in data group; wherein the preset category includes at least one of check-in city, check-in package name, and target network. Then, for each check-in data group, data filtering is performed to obtain a target check-in data group. Finally, the second check-in data in the target check-in data group is clustered to obtain a cloud-based check-in unit.

[0016] In this application, before clustering multiple second check-in data, multiple second check-in data from multiple electronic devices can be grouped and filtered first. This can improve the accuracy of cloud check-in unit generation and provide a foundation for accurate generation of check-in fences in the future.

[0017] In one possible implementation of the first aspect, the process of grouping multiple second check-in data from multiple electronic devices may specifically include: obtaining at least two second check-in data within a preset time period from the multiple second check-in data from the multiple electronic devices; then, grouping the at least two second check-in data according to a preset category to obtain at least one check-in data group.

[0018] In this application, only the check-in data within a preset time period is grouped. This not only reduces unnecessary waste of computing resources and improves the utilization rate of computing resources, but also reduces the occurrence of clustering results being affected by clustering earlier check-in data, thereby improving the accuracy of the second clustering result determination.

[0019] In one possible implementation of the first aspect, the process of filtering the check-in data group described above may specifically include: deleting the second check-in data in the check-in data group that does not meet the preset conditions to obtain the target check-in data group; wherein, the preset conditions include at least one of the following: the target network is a network named after the company, the check-in time corresponding to the second check-in data is a working day, and the check-in distance between the check-in locations of the two second check-in data is less than a preset distance.

[0020] In this application, deleting networks named after non-company names simplifies the subsequent data clustering process, reduces the waste of computing resources due to excessive attendance data, and thus improves the accuracy of clustering results. Furthermore, if the attendance time is a non-working day, it indicates that the user corresponding to the attendance data may be working overtime. Therefore, to avoid individual overtime events affecting the generation of subsequent cloud-based attendance units, the cloud service can delete attendance data with non-working day attendance times to improve the accuracy of cloud-based attendance unit determination.

[0021] In one possible implementation of the first aspect, the process of selecting at least one target cloud check-in unit may specifically include: obtaining target latitude and longitude information based on multiple latitude and longitude information included in multiple first check-in data, and obtaining target check-in radius based on multiple check-in radii included in the multiple first check-in data. Then, a target cloud check-in unit matching the target latitude and longitude information and the target check-in radius is selected from the multiple cloud check-in units.

[0022] In this application, at least one target cloud-based check-in unit is determined based on target latitude and longitude information and a target check-in radius. The target latitude and longitude information represents the average latitude and longitude of the check-in location when the user triggers the check-in operation, and the target check-in radius represents the average distance between the check-in location and the company. Therefore, the target cloud-based check-in unit determined based on this target latitude and longitude information and the target check-in radius can indicate the check-in range within which the user can check in, thereby improving the accuracy of check-in fence generation, reducing the occurrence of electronic devices mistakenly recommending check-in events, and enhancing the user experience.

[0023] In one possible implementation of the first aspect, the process of selecting a target cloud-based check-in unit that matches the target latitude and longitude information and the target check-in radius may specifically include: selecting any one cloud-based check-in unit from multiple cloud-based check-in units as the first cloud-based check-in unit. Then, the distance between the latitude and longitude information of each second check-in data point in the first cloud-based check-in unit and the target latitude and longitude information is calculated. If the distance between the latitude and longitude information of any second check-in data point in the first cloud-based check-in unit and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data point and the target check-in radius, then the second check-in data point satisfies the first condition, and the first cloud-based check-in unit containing the second check-in data point is designated as the target cloud-based check-in unit.

[0024] In this application, since the cloud check-in units in the second clustering result are clustered based on the second check-in data, meaning that the check-in locations corresponding to multiple second check-in data in the same cloud check-in unit are adjacent, if the distance between the latitude and longitude information of any second check-in data in the same cloud check-in unit and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data and the target check-in radius, it indicates that the check-in locations corresponding to all second check-in data in the cloud check-in unit are adjacent to the target latitude and longitude information. In other words, all second check-in data in the cloud check-in unit matches the user's first check-in data. Therefore, the cloud check-in unit is used as the target cloud check-in unit. This not only reduces unnecessary resource waste and improves the utilization rate of computing resources, but also improves the efficiency of unit extraction, providing a foundation for the rapid generation of check-in fences in the future.

[0025] In one possible implementation of the first aspect, the process of selecting at least one target cloud check-in unit can also be determined based on the check-in package name, the target network, and the check-in city.

[0026] In one possible implementation of the first aspect, the process of generating the check-in fence of the first electronic device may specifically include: calculating the union of at least one local check-in unit and at least one target cloud check-in unit to obtain the check-in fence of the first electronic device.

[0027] In this application, the check-in fence is the union of at least one local check-in unit and at least one target cloud check-in unit. That is, the check-in fence is determined based on the latitude and longitude information and check-in radius of different users in the same city, the same check-in application, and the same target network. Therefore, the check-in fence can represent the check-in range of different users in the same company, thereby improving the accuracy of check-in fence generation, reducing the occurrence of electronic devices mistakenly recommending check-in events, and improving the user experience.

[0028] Secondly, this application also provides a method for generating a check-in fence, applied to a first electronic device equipped with a check-in application. In this method, multiple first check-in data entries in the first electronic device are clustered to obtain at least one local check-in unit. These multiple first check-in data entries are check-in data from the check-in application, and each entry includes the check-in radius of a single check-in and the latitude and longitude information of the check-in location, where the check-in radius is the distance between the check-in location and the company. Then, the multiple first check-in data entries are sent to a server. Next, at least one target cloud check-in unit is received from the server; each target cloud check-in unit is matched with the check-in radius and latitude and longitude information. Then, based on the at least one local check-in unit and the at least one target cloud check-in unit, a check-in fence for the first electronic device is generated. Finally, when the first electronic device is within the check-in fence and within a preset check-in time period, a check-in prompt is issued.

[0029] In this application, if the current location of the first electronic device is within the check-in fence, it indicates that the user holding the mobile phone may have a need to perform a check-in operation. The first electronic device can further determine whether the current time is within the preset check-in period. If the target time is within the preset check-in period, it indicates that the current time is within the working check-in period or the off-get off work check-in period, that is, the user holding the first electronic device has a need to perform a check-in operation. The first electronic device issues a check-in prompt to remind the user to check in for attendance.

[0030] In one possible implementation of the second aspect, the process of obtaining at least one local check-in unit may specifically include: a first electronic device acquiring historical clustering results; wherein the historical clustering results include at least one historical check-in unit. Then, the first electronic device filters new check-in data from the local check-in dataset, excluding the first check-in data in the historical clustering results; wherein the local check-in dataset includes multiple first check-in data entries. Then, based on the historical clustering results, the first electronic device clusters the new check-in data to obtain at least one local check-in unit.

[0031] In one possible implementation of the second aspect, the process of clustering new check-in data based on historical clustering results by the first electronic device may specifically include: the first electronic device initializing the cluster list according to the historical clustering results to obtain an initialized cluster list; wherein the initialized cluster list includes at least one historical check-in unit from the historical clustering results. Then, the first electronic device repeatedly calculates the distance between the first new check-in data and each historical check-in unit in the initialized cluster list when the number of new check-in data in the initialized cluster list is less than the total number of new check-in data in the local check-in dataset, obtaining a first minimum distance value; wherein the first new check-in data is any new check-in data in the local check-in dataset other than the new check-in data included in the cluster list. Then, when the first minimum distance value is less than the distance limit value, the first electronic device adds the first new check-in data to the historical check-in unit corresponding to the first minimum distance value, obtaining a new historical check-in unit, and increments the number of new check-in data in the cluster list by 1 to obtain a new data count, until the number of new check-in data in the cluster list equals the total data count, obtaining at least one local check-in unit.

[0032] In one possible implementation of the second aspect, the method further includes: when the first minimum distance value is greater than or equal to the distance limit value, the first electronic device creates a new check-in unit in the cluster list and adds the first new check-in data to the new check-in unit. Then, the first electronic device increments the count of the new check-in data in the cluster list by 1 to obtain a new data count, until the count of the new check-in data in the cluster list equals the total data count, thus obtaining at least one local check-in unit.

[0033] In one possible implementation of the second aspect, the process of generating the check-in fence by the first electronic device may specifically include: the first electronic device calculating the union of at least one local check-in unit and at least one target cloud check-in unit to obtain the check-in fence of the first electronic device.

[0034] In one possible implementation of the second aspect, after issuing the check-in prompt, the method further includes: displaying a first interface in response to a user's triggering operation on the check-in prompt, wherein the first interface includes a first control. Then, in response to a user's triggering operation on the first control, the check-in is completed.

[0035] In this application, when the first electronic device displays a check-in prompt, if the user clicks on the check-in prompt, the first electronic device can display a first interface to facilitate the user's quick check-in. This simplifies the user's check-in process and reduces check-in time.

[0036] In one possible implementation of the second aspect, the process of issuing a check-in reminder may specifically include: issuing a check-in reminder when the first electronic device is located within any of the multiple check-in fences and within a preset check-in time period.

[0037] Thirdly, this application also provides a method for generating a check-in fence, applied to a server. In this method, multiple second check-in data from multiple electronic devices are clustered to obtain multiple cloud-based check-in units. These multiple second check-in data are check-in data in a check-in application. The multiple electronic devices include a first electronic device, and the multiple second check-in data include multiple first check-in data from the first electronic device. Each first check-in data includes the check-in radius of a single check-in and the latitude and longitude information of the check-in location, where the check-in radius is the distance between the check-in location and the company. Then, at least one target cloud-based check-in unit is selected from the multiple cloud-based check-in units, and each target cloud-based check-in unit is matched with the latitude and longitude information and the check-in radius. Finally, at least one target cloud-based check-in unit is sent to the first electronic device, and this target cloud-based check-in unit is used to enable the first electronic device to generate a check-in fence for the first electronic device.

[0038] In one possible implementation of the third aspect, the process of obtaining multiple cloud-based check-in units may specifically include: grouping multiple pieces of second check-in data from multiple electronic devices according to a preset category to obtain at least one check-in data group; wherein the preset category includes at least one of check-in city, check-in package name, and target network. Then, for each check-in data group, data filtering is performed to obtain a target check-in data group. Finally, the second check-in data in the target check-in data group is clustered to obtain cloud-based check-in units.

[0039] In one possible implementation of the third aspect, the process of grouping multiple second check-in data from multiple electronic devices may specifically include: obtaining at least two second check-in data within a preset time period from the multiple second check-in data from the multiple electronic devices; then, grouping the at least two second check-in data according to a preset category to obtain at least one check-in data group.

[0040] In one possible implementation of the third aspect, the process of filtering the check-in data group described above may specifically include: deleting the second check-in data in the check-in data group that does not meet the preset conditions to obtain the target check-in data group; wherein, the preset conditions include at least one of the following: the target network is a network named after the company, the check-in time corresponding to the second check-in data is a working day, and the check-in distance between the check-in locations of the two second check-in data is less than a preset distance.

[0041] In one possible implementation of the third aspect, the process of selecting at least one target cloud check-in unit may specifically include: obtaining target latitude and longitude information based on multiple latitude and longitude information included in multiple first check-in data, and obtaining target check-in radius based on multiple check-in radii included in the multiple first check-in data. Then, a target cloud check-in unit matching the target latitude and longitude information and the target check-in radius is selected from the multiple cloud check-in units.

[0042] In one possible implementation of the third aspect, the process of selecting a target cloud-based check-in unit that matches the target latitude and longitude information and the target check-in radius may specifically include: selecting any one cloud-based check-in unit from multiple cloud-based check-in units as the first cloud-based check-in unit. Then, the distance between the latitude and longitude information of each second check-in data point in the first cloud-based check-in unit and the aforementioned target latitude and longitude information is calculated. If the distance between the latitude and longitude information of any second check-in data point in the first cloud-based check-in unit and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data point and the target check-in radius, then the second check-in data point satisfies the first condition, and the first cloud-based check-in unit containing the second check-in data point is designated as the target cloud-based check-in unit.

[0043] Fourthly, this application provides an electronic device, which includes a display screen, a memory, and one or more processors; the display screen, the memory, and the processors are coupled; the display screen is used to display a check-in prompt, the memory is used to store computer program code, the computer program code including computer instructions; when the processor executes the computer instructions, the electronic device performs the method described above.

[0044] Fifthly, this application provides a server, the server including a memory and one or more processors; the memory and the processors are coupled; the memory is used to store computer program code, the computer program code including computer instructions; when the processor executes the computer instructions, the server performs the method described above.

[0045] In a sixth aspect, this application provides a computer-readable storage medium including computer instructions that, when executed on an electronic device, cause the electronic device to perform the method described above.

[0046] In a seventh aspect, this application provides a computer program product that, when run on an electronic device, causes the electronic device to perform the method described above.

[0047] Eighthly, a chip is provided, comprising: an input interface, an output interface, a processor, and a memory, wherein the input interface, the output interface, the processor, and the memory are connected via an internal connection path, and the processor is used to execute code in the memory, wherein when the code is executed, the processor is used to execute the method described above.

[0048] The beneficial effects that can be achieved by the check-in fence generation method described in the second aspect, the check-in fence generation method described in the third aspect, the electronic device described in the fourth aspect, the server described in the fifth aspect, the computer-readable storage medium described in the sixth aspect, the computer program product described in the seventh aspect, and the chip described in the eighth aspect can be referred to the beneficial effects in the first aspect and any possible design method therein, and will not be repeated here. Attached Figure Description

[0049] Figure 1 A schematic diagram of an interface for a check-in scenario provided in an embodiment of this application;

[0050] Figure 2 A schematic diagram of another check-in scenario provided in this application embodiment;

[0051] Figure 3 A schematic diagram of an interface for displaying attendance check-in prompts provided in an embodiment of this application;

[0052] Figure 4 This application provides an embodiment of a schematic diagram showing different branch offices in the same city;

[0053] Figure 5 A schematic diagram of the hardware structure of an electronic device provided in an embodiment of this application;

[0054] Figure 6 A schematic diagram of the software structure of an electronic device provided in an embodiment of this application;

[0055] Figure 7 A schematic diagram of the software structure of another electronic device provided in an embodiment of this application;

[0056] Figure 8 A flowchart illustrating a method for generating a check-in fence, as provided in this application embodiment;

[0057] Figure 9 A flowchart illustrating a method for obtaining a first clustering result provided in an embodiment of this application;

[0058] Figure 10 A flowchart illustrating another method for obtaining the first clustering result provided in this application embodiment;

[0059] Figure 11 A flowchart illustrating a method for obtaining a cloud-based check-in unit using a cloud service, as provided in this application embodiment;

[0060] Figure 12 A schematic diagram of an interface for displaying a target network provided in an embodiment of this application;

[0061] Figure 13 This is a flowchart illustrating a method for selecting a target cloud-based check-in unit, as provided in an embodiment of this application. Detailed Implementation

[0062] The technical solutions of the embodiments of this application will be described below with reference to the accompanying drawings. In the description of this application, unless otherwise stated, "and / or" is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone, where A and B can be singular or plural. Furthermore, in the description of this application, unless otherwise stated, "multiple" refers to two or more. "At least one of the following" or similar expressions refer to any combination of these items, including any combination of single or plural items. For example, at least one of a, b, or c can represent: a, b, c, ab, ac, bc, or abc, where a, b, and c can be single or multiple. Additionally, to facilitate a clear description of the technical solutions of the embodiments of this application, the terms "first" and "second" are used in the embodiments of this application to distinguish identical or similar items with essentially the same function and effect. Those skilled in the art will understand that the terms "first," "second," etc., do not limit the quantity or order of execution, and that "first," "second," etc., are not necessarily different. Furthermore, in the embodiments of this application, words such as "exemplary" or "for example" are used to indicate that something is being used as an example, illustration, or description. Any embodiment or design scheme described as "exemplary" or "for example" in the embodiments of this application should not be construed as being more preferred or advantageous than other embodiments or design schemes. Specifically, the use of words such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner for ease of understanding.

[0063] With the continuous development of electronic devices, users can now clock in and out using electronic devices. Specifically, if the electronic device is within the attendance range, it means the user has arrived near the company. Upon receiving a click from the user on a specific clocking-in application (APP), the electronic device will enter the initial interface of the clocking-in APP. This specific clocking-in APP is the company's default clocking-in APP; that is, the user can clock in and out by performing the clocking-in operation on this APP. Then, in response to the user's click on the "clock in" control on the initial interface, the clocking-in interface will appear. The electronic device can then execute the corresponding clocking-in event based on the user's clocking-in action. In this way, there is no need to install clocking-in equipment in the company, saving equipment costs and improving resource utilization while ensuring attendance.

[0064] For example, such as Figure 1 As shown, if the user clicks the application icon 11 corresponding to the check-in app, the phone can display the initial interface, which includes a message list and a "Check-in" control 12. Then, if the user clicks the "Check-in" control 12, the phone can display the check-in interface, which includes a "Check-in" button 13 and check-in information, such as check-in time (08:25) and attendance range (AA Building). Afterwards, if the user clicks the "Check-in" button 13, it indicates that the user is currently performing a check-in operation. Therefore, the phone can change the "Check-in" button 13 to a "Check-in Completed" button 14 to remind the user that the check-in was successful, allowing the user to clearly understand their check-in status.

[0065] It's understandable that since the employee has completed the clock-in task and the current time is in the afternoon, which means the current time may fall within the time frame for clocking out, the "clock-in" button could also be a "clock-out" button, meaning the phone could display a "clock-out" button. However, in reality, if the employee has not completed the clock-in task and the current time is in the morning, which means the current time falls within the time frame for clocking in, then the "clock-in" button 13 could also be a "clock-in" button, meaning the phone could display a "clock-in" button.

[0066] In some embodiments, to simplify the user's check-in process and reduce check-in time, electronic devices can be equipped with an attendance check-in plugin. This plugin redirects the current interface to a target check-in interface, which is the check-in interface of the specific check-in app mentioned above—the interface used when the electronic device performs the check-in operation. Specifically, the electronic device can display the attendance check-in plugin on its main interface. Then, upon receiving a click from the user on the plugin, the electronic device can display the target check-in interface. In this way, the electronic device only needs to respond to one click to display the check-in interface, eliminating the need for multiple clicks, simplifying the user's check-in process, improving check-in efficiency, and ultimately enhancing the user experience.

[0067] For example, such as Figure 2 As shown, if the user clicks the "Attendance Check-in" plugin 2A on the main interface, the phone can directly access the specific check-in app and display the corresponding check-in interface, i.e., the target check-in interface. This main interface includes application icons and plugins for multiple apps. Then, if the user clicks the "Check-in" button 2B on the target check-in interface, it indicates that the user is currently checking in. Therefore, the phone can change the "Check-in" button 2B to a "Check-in Completed" button 2C to notify the user of successful check-in, allowing the user to clearly understand their check-in status. In other words, upon receiving a user's click on the attendance check-in plugin, the phone can directly perform an interface jump operation, allowing the phone to jump directly from the current interface (or main interface) to the target check-in interface. This simplifies the check-in process, eliminating the need for multiple clicks to complete check-in; a single click is sufficient, reducing check-in time, improving efficiency, and ultimately enhancing the user experience.

[0068] It's understandable that, due to the limited display area of ​​the main interface, continuously displaying the attendance check-in plugin on the main interface would consume display resources for icons, meaning some necessary content (such as application icons and plugins) would not be displayed correctly. Therefore, to avoid consuming display resources on the main interface, electronic devices can choose not to display the attendance check-in plugin in real time. In other words, electronic devices can display the attendance check-in plugin only if the current check-in information meets preset check-in conditions. These preset check-in conditions can include the current time falling within a preset time period and the electronic device being within the attendance tracking range.

[0069] Specifically, the electronic device can acquire at least one check-in fence, which is obtained based on a local check-in unit and at least one cloud check-in unit. Then, if the electronic device is within any check-in fence, it indicates that the device owner can check in, and therefore, the electronic device can display the aforementioned attendance check-in plugin.

[0070] The aforementioned local check-in units are obtained by clustering check-in records (or check-in data) stored in the electronic device. The aforementioned at least one cloud-based check-in unit is obtained from a set of check-in units stored in the cloud based on user check-in information generated by the electronic device. This user check-in information is generated based on the user's historical check-in data, which may include at least one of the following: check-in package name, target network, and check-in city.

[0071] It is understandable that the check-in package name in the aforementioned user historical check-in data indicates the check-in application frequently used by the device owner. The target network in the user historical check-in data indicates the name of the Wi-Fi network that the device owner frequently connects to. It is understood that, generally, companies will set the Wi-Fi name according to the company name (e.g., 123 Co., Ltd.), therefore, the electronic device can determine the company name of the device owner based on this Wi-Fi name. The check-in city in the user historical check-in data indicates the city where the device owner usually works. In other words, the cloud-based check-in unit obtained based on the user's historical check-in data can realize a check-in recommendation function.

[0072] Specifically, if the electronic device is located within the city where the attendance check-in is scheduled, and the distance between the electronic device and the company is less than a preset distance, it indicates that the user holding the electronic device (or the device owner) is within the check-in boundary. Therefore, the electronic device can display the attendance check-in plugin. Subsequently, upon receiving a click operation from the user on the attendance check-in plugin, the electronic device jumps from the current interface to the corresponding check-in interface of the check-in application. In this way, a check-in recommendation function can be implemented, which can predict the user's check-in behavior in a timely manner and provide convenience for the user to perform the check-in operation.

[0073] In one implementation, if the current check-in information meets the preset check-in conditions, the electronic device may not display the attendance check-in plugin, that is, it may not display the check-in recommendation information as a plugin icon. Instead, the electronic device may display the check-in recommendation information as text, which is used to prompt the user to check in. In one example, when the phone is locked, the phone may display the check-in recommendation information on the lock screen. For example, please refer to [link to example]. Figure 3In interface (a), the phone can display a message notification on the lock screen saying "You have reached your end time, please remember to clock out" to remind the user to clock out. Afterwards, if the user clicks on area 301 corresponding to the message notification and the phone is successfully unlocked, the phone can directly enter the clock-out interface, meaning the phone can display something like... Figure 2 (b) of the example. In another example, when the phone is unlocked, it can display check-in recommendation information as a floating window or card on the current screen. For example, please see [link to example]. Figure 3 In interface (b), a notification message "Please remember to clock in" is displayed at the top of the current screen to remind the user to clock in. Afterwards, if the user clicks on the area 302 corresponding to the notification, the phone can directly enter the clock-in interface, meaning the phone can display something like... Figure 2 (b) of the interface.

[0074] In some embodiments, if a company has multiple branches, or if a company has multiple offices in the same city (e.g., multiple flagship stores in different shopping malls), then the electronic device generates a check-in fence based on the cloud check-in unit and the local check-in unit obtained above, which serves as the check-in unit for all check-in locations of the company in the same city. For example, as shown... Figure 4 As shown, Company Q has established multiple check-in locations in the first city (such as check-in location A in area W, check-in location B in area Y, and check-in location C in area T), and users frequently check in and out at check-in location B. In other words, the check-in fence generated by the electronic device can include the check-in fences corresponding to all check-in locations; that is, the aforementioned check-in fence can include the check-in fence corresponding to check-in location A, the check-in fence corresponding to check-in location B, and the check-in fence corresponding to check-in location C.

[0075] Under normal circumstances, users with this electronic device frequently clock in and out at location B. This means that if the device is within the designated clock-in area of ​​location B, displaying the attendance check-in plugin is sufficient. However, based on the above method of displaying the attendance check-in plugin, it can be deduced that if the device is within the designated clock-in area of ​​location A (e.g., the user is passing by location A), the device may still display the attendance check-in plugin to remind the user to clock in. This could lead to incorrect clock-in service recommendations within a company that includes multiple subsidiaries, thus impacting the user experience.

[0076] Therefore, to improve the accuracy of attendance fence generation and further enhance the precision of attendance recommendation, this application provides an attendance fence generation method and electronic device. The method involves acquiring at least one local attendance unit and multiple cloud-based attendance units. The at least one local attendance unit is obtained by clustering multiple first attendance data points from a first electronic device, and the multiple cloud-based attendance units are obtained by clustering multiple second attendance data points from multiple electronic devices. These first and second attendance data points are attendance data in the attendance application. Each first attendance data point includes the attendance radius of a single attendance and the latitude and longitude information of the attendance location, where the attendance radius is the distance between the attendance location and the company. Then, at least one target cloud-based attendance unit is selected from the multiple cloud-based attendance units, and each target cloud-based attendance unit is matched with the latitude and longitude information and attendance radius. Finally, based on the at least one local attendance unit and the at least one target cloud-based attendance unit, an attendance fence for the first electronic device is generated.

[0077] In this embodiment, at least one target cloud-based check-in unit is determined based on latitude and longitude information and a check-in radius. The latitude and longitude information represents the check-in location when the user triggers the check-in operation, and the check-in radius represents the distance between the check-in location and the company. Therefore, the target cloud-based check-in unit determined based on latitude and longitude information and the check-in radius can represent the user's check-in range. In other words, the check-in fence generated by this target cloud-based check-in unit can represent whether the first electronic device can issue a check-in prompt. This ensures that only electronic devices located within the check-in fence can issue a check-in prompt. This not only enables accurate output of check-in recommendation information, reducing the occurrence of electronic devices mistakenly recommending check-in due to users passing by other branches, but also provides timely and effective reminders for users to check in, reducing attendance anomalies due to missed check-ins, thereby improving the user experience.

[0078] For example, the aforementioned electronic device can be any device with a check-in application installed, such as a mobile phone, tablet computer, wearable device (such as a smartwatch, bracelet), etc. This application embodiment does not impose any restrictions on the specific type of electronic device.

[0079] Taking the aforementioned electronic device as an example, which is a mobile phone. Figure 5 A schematic diagram of the structure of the electronic device 200 is shown.

[0080] For example, Figure 5 A schematic diagram of the structure of electronic device 200 is shown. For example... Figure 5As shown, the electronic device 200 may include a processor 210, an external memory interface 220, an internal memory 221, a universal serial bus (USB) interface 230, a charging management module 211, a power management module 212, a battery 213, an antenna 1, an antenna 2, a mobile communication module 240, a wireless communication module 250, an audio module 270, a sensor module 280, buttons 290, a motor 291, an indicator 292, cameras 1-N 293, a display screen 294, and a subscriber identification module (SIM) card interface 1-N 295, etc.

[0081] It is understood that the structures illustrated in the embodiments of the present invention do not constitute a specific limitation on the electronic device 200. In other embodiments of this application, the electronic device 200 may include more or fewer components than illustrated, or combine some components, or split some components, or have different component arrangements. The illustrated components may be implemented in hardware, software, or a combination of software and hardware.

[0082] Processor 210 may include one or more processing units, such as application processor (AP), modem processor, graphics processing unit (GPU), image signal processor (ISP), controller, memory, video codec, digital signal processor (DSP), baseband processor, and / or neural network processing unit (NPU). Different processing units may be independent devices or integrated into one or more processors.

[0083] The controller can be the nerve center and command center of the electronic device 200. The controller can generate operation control signals based on the instruction opcode and timing signals to control the fetching and execution of instructions.

[0084] The processor 210 may also include a memory for storing instructions and data. In some embodiments, the memory in the processor 210 is a cache memory. This memory can store instructions or data that the processor 210 has just used or that are used repeatedly. If the processor 210 needs to use the instruction or data again, it can directly retrieve it from the memory. This avoids repeated accesses, reduces the waiting time of the processor 210, and thus improves the efficiency of the system.

[0085] In some embodiments, the processor 210 may include one or more interfaces. Interfaces may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver / transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input / output (GPIO) interface, a subscriber identity module (SIM) interface, and / or a universal serial bus (USB) interface, etc.

[0086] It is understood that the interface connection relationships between the modules illustrated in the embodiments of the present invention are merely illustrative and do not constitute a structural limitation on the electronic device 200. In other embodiments of this application, the electronic device 200 may also employ different interface connection methods or combinations of multiple interface connection methods as described in the above embodiments.

[0087] The charging management module 211 receives charging input from the charger. While charging the battery 213, the charging management module 211 can also supply power to the electronic device through the power management module 212.

[0088] The wireless communication function of electronic device 200 can be implemented through antenna 1, antenna 2, mobile communication module 240, wireless communication module 250, modem processor, and baseband processor.

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

[0090] The mobile communication module 240 can provide solutions for wireless communication, including 2G / 3G / 4G / 5G, applied to the electronic device 200. The modem processor may include a modulator and a demodulator.

[0091] The wireless communication module 250 can provide solutions for wireless communication applications on the electronic device 200, including wireless local area networks (WLAN) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR) technology, etc.

[0092] Electronic device 200 implements display functions through a GPU, a display screen 294, and an application processor. The GPU is a microprocessor for image processing, connected to the display screen 294 and the application processor. The GPU is used to perform mathematical and geometric calculations and for graphics rendering. Processor 210 may include one or more GPUs, which execute program instructions to generate or modify display information.

[0093] The display screen (or screen) 294 is used to display images, videos, etc. In some embodiments, the display screen 294 may display attendance recommendation information to remind the user to clock in and out.

[0094] The display screen 294 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 (AMOLED), a flexible light-emitting diode (FLED), a miniature LED, a microLED, a quantum dot light-emitting diode (QLED), etc. In some embodiments, the electronic device 200 may include one or N display screens 294, where N is a positive integer greater than 1.

[0095] Electronic device 200 can perform shooting functions through ISP, camera 293, video codec, GPU, display screen 294 and application processor.

[0096] Camera 293 is used to capture still images or videos. An object is projected onto a photosensitive element by generating an optical image through the lens. The photosensitive element can be a charge-coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the light signal into an electrical signal, which is then passed to an ISP for conversion into a digital image signal. The ISP outputs the digital image signal to a DSP for processing. The DSP converts the digital image signal into image signals in standard RGB, YUV, or other formats. In some embodiments, the electronic device 200 may include one or N cameras 293, where N is a positive integer greater than 1.

[0097] Digital signal processors (DSPs) are used to process digital signals. Besides digital image signals, they can also process other digital signals. For example, when electronic device 200 selects a frequency, the DSP is used to perform Fourier transforms on the frequency energy.

[0098] The external storage interface 220 can be used to connect an external memory card, such as a Micro SD card, to expand the storage capacity of the electronic device 200.

[0099] Internal memory 221 can be used to store computer executable program code, which includes instructions. Processor 210 executes various functional applications and data processing of electronic device 200 by running the instructions stored in internal memory 221. Internal memory 221 may include a program storage area and a data storage area. The program storage area may store the operating system, at least one application program required for a function (such as sound playback, image playback, etc.), etc. The data storage area may store data created during the use of electronic device 200 (such as audio data, phonebook, etc.). Furthermore, internal memory 221 may include high-speed random access memory and may also include non-volatile memory, such as at least one disk storage device, flash memory device, universal flash storage (UFS), etc.

[0100] Electronic device 200 can implement audio functions through audio module 270 and application processor, such as music playback and recording. The audio module 270 may include a speaker, receiver, microphone, and headphone jack.

[0101] Buttons 290 include a power button, volume buttons, etc. Indicator 292 may be an indicator light.

[0102] The sensor module 280 may include touch sensors, pressure sensors, gyroscope sensors, barometric pressure sensors, magnetic sensors, accelerometers, distance sensors, proximity sensors, fingerprint sensors, temperature sensors, ambient light sensors, bone conduction sensors, etc.

[0103] A touch sensor, also known as a "touch panel," can be located on the display screen 294. It is used to detect touch operations applied to or near the display. The detected touch operation can be passed to the application processor to determine the type of touch event and provide corresponding visual output through the display screen 294.

[0104] A pressure sensor is used to sense pressure signals and convert them into electrical signals. In some embodiments, the pressure sensor may be located on the display screen 294. There are many types of pressure sensors, such as resistive pressure sensors, inductive pressure sensors, and capacitive pressure sensors. A capacitive pressure sensor may consist of at least two parallel plates with conductive material. When a force is applied to the pressure sensor, the capacitance between the electrodes changes. The electronic device 200 determines the pressure intensity based on the change in capacitance. When a touch operation is applied to the display screen 294, the electronic device 200 detects the intensity of the touch operation based on the pressure sensor. The electronic device 200 may also calculate the touch position based on the detection signal from the pressure sensor. In some embodiments, touch operations applied to the same touch position but with different touch operation intensities may correspond to different operation commands.

[0105] Figure 6 This is a software structure block diagram of an electronic device 200 according to an embodiment of this application.

[0106] A layered architecture divides software into several layers, each with a clear role and function. Layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom: the application layer (application layer), the application framework layer (framework layer), the Android runtime and system libraries, and the kernel layer (or driver layer). The application layer can include a series of application packages.

[0107] like Figure 6 As shown, the application package may include a check-in application, a local data clustering module, a fence generation module, and an attendance check-in plugin. The check-in application is the application capable of performing attendance check-in.

[0108] The aforementioned local data clustering module is used to cluster multiple attendance data in the local attendance dataset to obtain a first clustering result. This first clustering result indicates the classification result of the multiple attendance data, representing which attendance location within the company each attendance data in the local attendance dataset is located near. Specifically, the local attendance dataset can be stored in an electronic device. The multiple attendance data in the local attendance dataset can be all attendance records in the electronic device, that is, all attendance data acquired by the electronic device from the moment the user uses the attendance application to clock in and out. Alternatively, it can be all attendance records acquired within a preset time period, that is, all attendance records acquired within a previous period (such as 2 months, 1 quarter, etc.), etc., without specific limitations.

[0109] The aforementioned fence generation module is used to generate at least one check-in fence based on at least one local check-in unit and / or at least one cloud check-in unit. In some embodiments, upon receiving at least one local check-in unit and / or at least one cloud check-in unit, the fence generation module can generate at least one check-in fence based on at least one local check-in unit and / or at least one cloud check-in unit. Specifically, if at least one local check-in unit and at least one cloud check-in unit are both located near the same check-in location, it indicates that the user frequently checks in at that location; therefore, the fence generation module can generate one check-in fence. If at least one local check-in unit and at least one cloud check-in unit are located near different check-in locations, it indicates that the user may frequently work in different locations (e.g., working at office location A on Mondays, Wednesdays, and Fridays, and working at office location B on Tuesdays and Thursdays); therefore, the fence generation module can generate multiple check-in fences (e.g., a check-in fence corresponding to office location A, and a check-in fence corresponding to office location B).

[0110] The aforementioned attendance check-in plugin is used to remind users to check in and out. Specifically, when the electronic device is within any check-in area and the current time is within a preset time period, the electronic device can display the attendance check-in plugin to remind the user to check in. Subsequently, upon receiving a click operation from the user on the icon corresponding to the attendance check-in plugin, the plugin can redirect the interface containing that icon to the check-in interface, allowing the user to perform the check-in operation.

[0111] The application framework layer provides application programming interfaces (APIs) and a programming framework for applications in the application layer. The application framework layer includes some predefined functions. For example... Figure 6As shown, the application framework layer may include a window manager service (WMS), a content provider, a notification manager, a view system, and a resource manager, etc.

[0112] The window manager manages the windowed applications. It can determine the screen size, the presence of a status bar, lock the screen, and capture screenshots. The content provider stores and retrieves data, making it accessible to applications. This data can include videos, images, audio, made and received phone calls, browsing history and bookmarks, and phonebook entries.

[0113] The notification manager allows applications to display notifications in the status bar. These notifications can be used to deliver informational messages and can disappear automatically after a short pause, requiring no user interaction. For example, the notification manager can be used to notify users of completed downloads or message alerts. The notification manager can also display notifications as icons or scrolling text in the top status bar, such as notifications from background applications, or as dialog boxes on the screen. Examples include displaying text messages in the status bar, emitting sounds, vibrating electronic devices, and flashing indicator lights.

[0114] A view system includes visual controls, such as controls for displaying text and controls for displaying images. View systems can be used to build applications. A display interface can consist of one or more views. The resource manager provides applications with various resources, such as localized strings, icons, images, layout files, video files, and so on.

[0115] The Android runtime consists of the core libraries and the virtual machine. The Android runtime is responsible for scheduling and managing the Android system. The core libraries comprise two parts: one part contains the functionalities that the Java language needs to call, and the other part contains the core Android libraries.

[0116] The application layer and application framework layer run in a virtual machine. The virtual machine executes the Java files of the application layer and application framework layer as binary files. The virtual machine is used to perform functions such as object lifecycle management, stack management, thread management, security and exception management, and garbage collection.

[0117] System libraries can include multiple functional modules. For example: surface manager, 3D graphics processing library (e.g., OpenGL ES), 2D graphics engine (e.g., SGL), media libraries, etc.

[0118] The Surface Manager manages the display subsystem and provides fusion of 2D and 3D layers for multiple applications. The 3D graphics processing library implements 3D graphics drawing, image rendering, compositing, and layer processing. The 2D graphics engine is the drawing engine for 2D graphics. The media library supports playback and recording of various common audio and video formats, as well as still image files. The media library supports multiple audio and video encoding formats, such as MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG.

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

[0120] For example, the software architecture of the aforementioned electronic device 200 may also include a hardware abstraction layer. This hardware abstraction layer is a wrapper around Linux kernel drivers, providing interfaces to higher-level systems. It hides the hardware interface details of a specific platform, providing a virtual hardware platform for the operating system. In this embodiment, the hardware abstraction layer may include modules such as a camera HAL, audio HAL, GPS HAL, and Wi-Fi HAL.

[0121] Understandable, Figure 6 The layers in the illustrated structure and the components contained in each layer do not constitute a specific limitation on the electronic device 200, i.e., the mobile phone. In other embodiments of this application, the structure may include more or fewer layers than illustrated, and each layer may include more or fewer components; this application does not impose any limitations.

[0122] It should be noted that, Figure 6 The attendance units received by the middle unit receiving module can be obtained not only from the aforementioned local data clustering module, but also from the cloud side. Specifically, such as... Figure 7 As shown, this technical solution can be deployed on both the cloud and the device side, with a combination of cloud and device sides to achieve check-in recommendation. The cloud side refers to the cloud server, and the device side refers to the electronic device.

[0123] The cloud-side server can be configured with a cloud-based data clustering module. This module clusters multiple check-in data points within the cloud-based check-in dataset to obtain a second clustering result. This second clustering result indicates the classification of the multiple check-in data points, representing the vicinity of each check-in location in the dataset. It can be understood that the cloud-based check-in dataset includes all check-in data uploaded by all electronic devices; that is, check-in data stored on each electronic device is uploaded to the cloud-based data clustering module to provide a foundation for subsequent data clustering.

[0124] The endpoint can include multiple electronic devices that can share the second clustering results from the cloud side, i.e., share the check-in unit list from the cloud side. Taking one of the electronic devices as an example, the application layer of this electronic device can install an attendance check-in plugin and set up a local data clustering module and a fence generation module.

[0125] The aforementioned attendance check-in plugin is used to remind users to check in and out. Specifically, when the electronic device is within the check-in fence and the current time is within a preset time period, the electronic device can display the attendance check-in plugin to remind the user to check in. The attendance check-in plugin may include a fence registration module and a unit receiving module.

[0126] The aforementioned fence registration module can also be referred to as the brain of the attendance check-in plugin. It is used to register at least one check-in fence, providing a basis for the subsequent output of check-in recommendation information by the electronic device. In some embodiments, when the fence generation module detects that at least one check-in fence data has been generated, the fence registration module can send a fence registration instruction to the fence generation module to generate at least one check-in fence. This facilitates subsequent determination of whether check-in recommendation information needs to be output based on the at least one check-in fence, thereby improving the accuracy of check-in information recommendations.

[0127] The aforementioned unit receiving module can also be referred to as the perception center of the aforementioned attendance check-in plugin. It is used to receive the first clustering result from the local data clustering module and to obtain cloud check-in units from the cloud data clustering module that match the user's check-in information. In some embodiments, when the data clustering module obtains the first clustering result, it can send the first clustering result to the unit receiving module. After receiving the first clustering result, the unit receiving module can send it to the fence generation module, providing a basis for subsequently generating at least one check-in fence. In other embodiments, when the cloud data clustering module obtains a check-in unit list, the unit receiving module can extract at least one target cloud check-in unit from the check-in unit list that matches the user's check-in information. The check-in unit list includes multiple cloud check-in units. Then, the unit receiving module can send the at least one target cloud check-in unit to the fence generation module, providing a basis for subsequently generating at least one check-in fence.

[0128] Based on the electronic devices described above, this application provides a method for generating a check-in fence. The method of this application embodiment is described below using a mobile phone as an example. Specifically, the mobile phone can cluster check-in data in a local check-in dataset to obtain at least one local check-in unit. The mobile phone can also send the check-in data in the local check-in dataset to a cloud service, so that the cloud service can cluster the check-in data stored in different mobile phones, thereby extracting at least one target cloud check-in unit based on the user's check-in information. Then, the mobile phone can generate a check-in fence based on the received at least one target cloud check-in unit and at least one local check-in unit. Then, when the mobile phone is within the check-in fence and within a preset check-in time period, the mobile phone issues a check-in prompt to remind the user to clock in. For example, as shown... Figure 8 As shown, the method for generating the check-in fence may include S801~S815.

[0129] S801, the data clustering module in the mobile phone obtains the local attendance dataset.

[0130] The aforementioned local check-in dataset includes all check-in data stored on the phone, that is, all check-in data generated when a user with that phone triggers a check-in action. In other words, the local check-in dataset includes multiple initial check-in records. In one example, to improve the accuracy of subsequent check-in recommendations, the phone can store all check-in data since the user started using the phone. In another example, to avoid consuming excessive storage resources, the phone can also store only check-in data from a previous period, that is, only check-in data within a preset time period. This preset time period can be set according to actual circumstances, such as 2 months, 1 quarter, etc., without specific limitations.

[0131] In some embodiments, the first check-in data is check-in data in a check-in application. This first check-in data may include at least one of the following: check-in time when a check-in operation is triggered, check-in package name, target network, check-in city, latitude and longitude information of the check-in location, and check-in radius. The check-in package name is used to represent the check-in application. The check-in radius is the distance between the check-in location and the company.

[0132] S802, the data clustering module clusters the first check-in data in the local check-in dataset to obtain a first clustering result, wherein the first clustering result includes at least one local check-in unit.

[0133] Specifically, after obtaining the local check-in dataset, the data clustering module can cluster multiple first check-in data in the local check-in dataset to obtain a first clustering result. This first clustering result includes at least one local check-in unit, which represents the check-in location corresponding to the user holding the mobile phone triggering the check-in operation.

[0134] In one implementation, the data clustering module may employ a first target clustering algorithm to cluster multiple first check-in data in the aforementioned local check-in dataset to obtain a first clustering result. For example, this first target clustering algorithm may be a nearest neighbor clustering algorithm.

[0135] In some embodiments, such as Figure 9 As shown, the data clustering module performs clustering on the first set of attendance data, which may specifically include steps S80201~S80210:

[0136] S80201, the data clustering module retrieves historical clustering results.

[0137] The aforementioned historical clustering results are the clustering results generated when the data clustering module last performed data clustering, and these historical clustering results include at least one historical check-in unit.

[0138] In this embodiment, the data clustering module clusters other first check-in data based on historical clustering results. This reduces the excessive waste of computing resources caused by clustering previous check-in data, thereby improving not only the utilization rate of computing resources but also the clustering efficiency of check-in data.

[0139] S80202, the data clustering module filters new check-in data from the above local check-in dataset.

[0140] The aforementioned new check-in data refers to check-in data that has not undergone clustering, that is, check-in data located after the update time, which is the time corresponding to the last update of the historical clustering results.

[0141] It's understandable that after obtaining historical clustering results—that is, between the completion of the previous data clustering and the start of the current data clustering—if a user's check-in action is detected, the data clustering module needs to retrieve the corresponding check-in data to avoid inaccurate clustering results due to missing check-in data, thus improving the accuracy of the first clustering result. In other words, the sum of the number of check-in data points in the historical clustering results and the number of check-in data points after the update time equals the total number of data points in the local check-in dataset.

[0142] S80203, the data clustering module initializes the cluster list according to the above historical clustering results.

[0143] Specifically, the data clustering module can initialize the cluster list with historical clustering results. That is, the initialized cluster list includes at least one historical check-in unit from the historical clustering results.

[0144] It is understandable that if this data clustering is the first clustering, it means that the phone has not yet stored historical clustering results. Therefore, the data clustering module can initialize the cluster list to zero and use any check-in data in the local check-in dataset as the initial check-in unit.

[0145] S80204, the data clustering module determines whether the number of newly checked-in data in the cluster list is less than the total number of newly checked-in data in the above local check-in dataset.

[0146] In some embodiments, after obtaining the cluster list, the data clustering module can determine whether the number of newly checked-in data in the cluster list is less than the total number of newly checked-in data in the local check-in dataset. If the number of newly checked-in data in the cluster list is less than the total number of newly checked-in data in the local check-in dataset, it indicates that there is still new check-in data in the local check-in dataset that needs to be clustered, meaning that the current data clustering is not yet complete. Therefore, the data clustering module can execute S80205. If the number of newly checked-in data in the cluster list is equal to the total number of newly checked-in data in the local check-in dataset, it indicates that all newly checked-in data in the local check-in dataset has been clustered. Therefore, the data clustering module can execute S80210.

[0147] S80205, the data clustering module calculates the distance between the first new check-in data and each historical check-in unit in the cluster list to obtain the first minimum distance value.

[0148] Specifically, after determining that the number of newly checked-in data in the cluster list is less than the total number of newly checked-in data in the local check-in dataset, the data clustering module can calculate the distance between the first new check-in data and each historical check-in unit in the cluster list to obtain the first minimum distance value. Here, the first new check-in data refers to any new check-in data in the local check-in dataset other than those included in the cluster list.

[0149] S80206, the data clustering module determines whether the first minimum distance value is less than the distance limit value.

[0150] In some embodiments, after obtaining the first minimum distance value, the data clustering module can determine whether the first minimum distance value is less than the distance limit value. If the first minimum distance value is less than the distance limit value, it indicates that the first new check-in data is closest to the historical check-in unit corresponding to the first minimum distance value, and the data clustering module can execute S80207. If the first minimum distance value is greater than or equal to the distance limit value, it indicates that the user holding the mobile phone may be working in another work location, and therefore, the data clustering module can execute S80209.

[0151] The aforementioned distance limit value is a pre-set distance value. In this embodiment, the distance limit value can be 200. In other embodiments, the distance limit value can be other values, such as 180, 270, etc., and there is no specific limitation.

[0152] S80207, the data clustering module adds the first new check-in data to the historical check-in unit corresponding to the first minimum distance value to obtain a new historical check-in unit.

[0153] Specifically, after determining that the first minimum distance value is less than the distance limit value, the data clustering module can add the first new check-in data to the historical check-in unit corresponding to the first minimum distance value to obtain a new historical check-in unit.

[0154] In some embodiments, when the first new check-in data is added to the historical check-in unit corresponding to the first minimum distance value, the data clustering module can calculate the average latitude and longitude based on the latitude and longitude of the new historical check-in unit and the first new check-in data. It can be understood that this average latitude and longitude represents the latitude and longitude (center gps) of the cluster center corresponding to the historical check-in unit.

[0155] S80208, the data clustering module increments the number of newly checked-in data in the cluster list by 1 to obtain the new number of data.

[0156] In some embodiments, after obtaining a new historical check-in unit, the data clustering module can increment the number of new check-in data in the cluster list by 1 to obtain a new number of data.

[0157] In other embodiments, after the first new check-in data is added to the newly created historical check-in unit, the data clustering module can increment the number of new check-in data in the cluster list by 1 to obtain a new number of data.

[0158] In one implementation, when a new number of data points are obtained, the data clustering module can return to executing the above S80204 until the number of newly checked-in data points in the cluster list equals the total number of data points, and the data clustering module can obtain the above first clustering result.

[0159] S80209, the data clustering module creates a new check-in unit in the above cluster list and adds the first new check-in data to the newly created check-in unit.

[0160] Specifically, after determining that the first minimum distance value is greater than or equal to the distance limit value, the data clustering module can create a new check-in unit in the cluster list and add the first new check-in data to the newly created check-in unit.

[0161] It should be noted that if the above cluster list does not contain historical check-in units, that is, the data clustering module has not clustered the check-in data, the data clustering module can determine that the first minimum distance value is infinite, that is, the first minimum distance value must be greater than the above distance limit value.

[0162] S80210, the data clustering module obtains the first clustering result.

[0163] Specifically, after determining that the number of newly recorded check-in data in the aforementioned cluster list equals the total number of data, the data clustering module can obtain the first clustering result. This first clustering result includes at least one check-in unit from the cluster list; this check-in unit can be a historical check-in unit or a newly created check-in unit.

[0164] In some embodiments, the attribute information corresponding to the above-mentioned check-in unit may include at least one of the following: the latitude and longitude of the cluster center (centerGps), the cluster radius (radius), the maximum timestamp (timestamp), the cell name list (cellIdList), the cell attribute list (cellList), the cluster size (cluster size), the city code (city code), and the clustering flag (flag). The cluster radius represents the check-in range within which the check-in operation can be performed; that is, only if the mobile phone is within the cluster radius can it be said that the user holding the mobile phone is within the check-in range and the mobile phone can perform the check-in operation. The maximum timestamp represents the maximum value of the timestamps (or check-in times) corresponding to all check-in data in the check-in unit. The cell name list includes the data name of each check-in data in the check-in unit. The cell attribute list includes the check-in information of each check-in data in the check-in unit, which may be the network operator corresponding to the check-in operation or the data name, etc. The cluster size represents the number of check-in data within the check-in unit. The city code represents the city where the check-in unit is located. The clustering label can be "cluster", which indicates that the check-in unit is generated by clustering based on the check-in data.

[0165] It should be noted that the first clustering result mentioned above is obtained by clustering new check-in data in the local check-in dataset based on historical clustering results. In contrast, in the prior art, the clustering result obtained by clustering check-in data is not based on historical clustering results, but rather clusters all check-in data in the local check-in dataset to obtain the clustering result. In other words, this implementation method can reduce unnecessary resource waste and improve the utilization rate of computing resources compared to the prior art.

[0166] Specifically, such as Figure 10 As shown, the process of clustering all the attendance data in the local attendance dataset can specifically include S802a~S802h:

[0167] S802a, the data clustering module initializes the cluster list.

[0168] The above-mentioned initialization of the cluster list refers to setting the cluster list to empty, that is, the cluster list does not contain attendance data.

[0169] S802b, the data clustering module determines whether the number of data in the cluster list is less than the total number of data corresponding to the above check-in dataset.

[0170] In some embodiments, after obtaining the cluster list, the data clustering module can determine whether the number of data in the cluster list is less than the total number of data corresponding to the check-in dataset (or local check-in dataset). If the number of data in the cluster list is less than the total number of data corresponding to the check-in dataset, it indicates that there are still check-in data in the local check-in dataset that need to be clustered, meaning that the data clustering is not yet complete. Therefore, the data clustering module can execute S802c. If the number of data in the cluster list is equal to the total number of data corresponding to the check-in dataset, it indicates that all check-in data in the local check-in dataset has been clustered. Therefore, the data clustering module can execute S802h.

[0171] S802c, the data clustering module calculates the distance between the first check-in data and each check-in unit in the cluster list to obtain the second minimum distance value.

[0172] Specifically, after determining that the number of data in the cluster list is less than the total number of data in the check-in dataset, the data clustering module can calculate the distance between the first check-in data and each check-in unit in the cluster list to obtain the second minimum distance value. Here, the first check-in data refers to any check-in data in the check-in dataset other than those included in the cluster list.

[0173] S802d, the data clustering module determines whether the second minimum distance value is less than the distance limit value.

[0174] In some embodiments, after obtaining the second minimum distance value, the data clustering module can determine whether the second minimum distance value is less than the distance limit value. If the second minimum distance value is less than the distance limit value, it indicates that the first check-in data is closest to the check-in unit corresponding to the second minimum distance value, and the data clustering module can execute S802e. If the second minimum distance value is greater than or equal to the distance limit value, it indicates that the user holding the mobile phone may be working in another workplace, and therefore, the data clustering module can execute S802g.

[0175] S802e, the data clustering module adds the first check-in data to the check-in unit corresponding to the second minimum distance value to obtain a new check-in unit.

[0176] Specifically, after determining that the second minimum distance value is less than the distance limit value, the data clustering module can add the first check-in data to the check-in unit corresponding to the second minimum distance value to obtain a new check-in unit.

[0177] In some embodiments, when the first check-in data is added to the check-in unit corresponding to the second minimum distance value, the data clustering module can calculate the average latitude and longitude based on the latitude and longitude of the new check-in unit and the first check-in data. It can be understood that this average latitude and longitude represents the latitude and longitude of the cluster center corresponding to the check-in unit.

[0178] S802f, the data clustering module increments the number of data in the cluster list by 1 to obtain the new number of data.

[0179] In some embodiments, after obtaining a new check-in unit, the data clustering module can increment the number of data in the cluster list by 1 to obtain a new number of data.

[0180] In other embodiments, after the first check-in data is added to the newly created check-in unit, the data clustering module can increment the number of data in the cluster list by 1 to obtain a new number of data.

[0181] In one implementation, upon obtaining a new number of data points, the data clustering module can return to executing the above S802b until the number of data points in the cluster list equals the total number of data points, at which point the data clustering module can obtain the above first clustering result.

[0182] S802g, the data clustering module creates a new check-in unit in the above cluster list and adds the first check-in data to the newly created check-in unit.

[0183] Specifically, after determining that the second minimum distance value is greater than or equal to the distance limit value, the data clustering module can create a new check-in unit in the cluster list and add the first check-in data to the newly created check-in unit.

[0184] It should be noted that if the above cluster list does not contain historical check-in units, that is, the data clustering module has not clustered the check-in data, the data clustering module can determine that the second minimum distance value is infinite, that is, the second minimum distance value must be greater than the above distance limit value.

[0185] S802h, the data clustering module obtains the first clustering result.

[0186] It should be noted that this step is similar to step S80210 in Figure 9, and will not be described again here.

[0187] Under normal circumstances, each mobile phone corresponds to only one local check-in unit, meaning the user of that phone only checks in at the same office location. However, in some cases, if the user's profession is special (e.g., the user is a doctor), they may need to see patients at different branches of the same hospital. Therefore, the phone may have different local check-in units corresponding to different branches. For example, if the user sees patients at branch A from Monday to Wednesday and at branch B from Thursday to Friday, then the first clustering result obtained by the data clustering module can include the local check-in units corresponding to branch A and branch B.

[0188] In some embodiments, the data clustering module can cluster the first check-in data in the local check-in dataset when the phone is charging and / or the phone is in a screen-off state to obtain the first clustering result. In this way, power consumption can be reduced to the greatest extent, the phone's usage time can be guaranteed, and the occurrence of excessive phone battery consumption or user impact due to data clustering can be reduced, thereby improving the user experience.

[0189] S803, the attendance and check-in plugin in the mobile phone receives the first clustering result sent by the data clustering module.

[0190] Specifically, after obtaining the first clustering result, the data clustering module can send the first clustering result to the attendance check-in plugin on the mobile phone.

[0191] The attendance check-in plugin mentioned above may include a fence registration module and a unit receiving module. The fence registration module is used to register the check-in fence. The unit receiving module is used to receive the first clustering result from the data clustering module and the second clustering result from the cloud service. The unit receiving module is also used to execute the corresponding check-in operation based on the user's trigger operation on the attendance check-in plugin.

[0192] S804, cloud service obtains cloud-based attendance dataset.

[0193] The aforementioned cloud-based check-in dataset includes check-in data uploaded to the cloud service by all mobile phones. This means each mobile phone uploads its acquired check-in data to the cloud service, allowing the dataset to include multiple initial check-in records stored on different phones. This facilitates subsequent clustering of the multiple check-in records by the cloud service, further improving the accuracy of check-in fence determination. It can be understood that the cloud-based check-in dataset includes multiple second check-in records from multiple mobile phones, and these multiple mobile phones include the aforementioned mobile phone; that is, the cloud-based check-in dataset includes multiple initial check-in records from the aforementioned mobile phone.

[0194] In some embodiments, the cloud service includes a cloud data clustering module, which is used to cluster the multiple second check-in data obtained above.

[0195] S805, the cloud service clusters at least two second check-in data in the above cloud check-in dataset to obtain a second clustering result, wherein the second clustering result includes multiple cloud check-in units.

[0196] Specifically, after obtaining the aforementioned cloud-based check-in dataset, the cloud service can cluster at least two second check-in data points within the dataset to obtain a second clustering result. This second clustering result can include multiple cloud-based check-in units, each indicating the check-in location corresponding to a user's check-in information triggering the check-in operation.

[0197] In some embodiments, such as Figure 11 As shown, the process of clustering the second check-in data by the cloud service can specifically include S8051~S8054:

[0198] S8051, the cloud service obtains at least two second check-in data within a preset time period.

[0199] The aforementioned preset time period can be set according to actual conditions, such as 4 months (120 days), half a year, or 1 quarter, etc., without specific limitations. In other words, in this embodiment, the cloud service only clusters the check-in data within the preset time period. This not only reduces unnecessary waste of computing resources and improves the utilization rate of computing resources, but also reduces the occurrence of clustering results being affected by clustering earlier check-in data, thus improving the accuracy of the second clustering result determination. However, in other embodiments, the cloud service can also cluster all check-in data in the cloud check-in dataset. This makes the clustered cloud check-in units more applicable to users with different check-in information, improving the applicability of the cloud check-in units.

[0200] S8052, the cloud service groups the above at least two second check-in data according to a preset category to obtain at least one check-in data group.

[0201] The aforementioned preset categories may include at least one of the following: check-in city, check-in package name, and target network. The check-in city is the city where the user is located when the check-in operation is triggered; the check-in package name is the application name corresponding to the user's check-in operation; and the target network is the WLAN name that the user's mobile phone is connected to or the recommended WLAN name when the user triggers the check-in operation.

[0202] In one implementation, the target network is the connected Wi-Fi network in the clock wifiinfo field of the attendance data. That is, the target network is the WLAN network the mobile phone is connected to. For example, please see... Figure 12 In interface (a), the phone is connected to a WLAN network named "XX Company", indicating that the user holding the phone works at XX Company. Therefore, the phone can identify the target network as "XX Company".

[0203] In another implementation, if the clock wifi info field in the attendance data is empty, meaning the phone is not connected to a WLAN network, the target network is the WLAN network to be connected to in the available WLAN list. For example, this target network could be the first WLAN network to be connected to in the available WLAN list; see, for example, [link to relevant documentation]. Figure 12 In interface (b), the phone is not connected to any WLAN. The phone can use the WLAN that is first in the list of available WLANs as the target WLAN, that is, the network with the WLAN name "XX Company" as the target network.

[0204] Specifically, the cloud service can group check-in data belonging to the same preset category from at least two sets of second check-in data as the same check-in data group. In one example, using the check-in city as the preset category, the cloud service can group check-in data belonging to city A from at least two sets of second check-in data as the same check-in data group, and also group check-in data belonging to city B from at least two sets of second check-in data as the same check-in data group. In another example, using a preset category that includes check-in city, check-in package name, and target network as an example, the cloud service can group check-in data belonging to city A from at least two sets of second check-in data, including those using the first check-in application and those connected to XX company via mobile phone, as the same check-in data group, and also group check-in data belonging to city A from at least two sets of second check-in data, including those using the first check-in application and those connected to YY company via mobile phone, as the same check-in data group.

[0205] S8053, the cloud service filters the data for each check-in data group to obtain the target check-in data group.

[0206] Specifically, the cloud service can delete check-in data from a check-in data group that does not meet preset conditions, thus obtaining the target check-in data group. These preset conditions are used to filter the check-in data in the group, ensuring that all check-in data in the group meets the preset criteria.

[0207] In one implementation, the aforementioned preset conditions may include at least one of the following:

[0208] (1) The target network is a network named after a company. For example, if the WLAN name is "XX Company", the cloud service can identify the network corresponding to "XX Company" as the target network. Similarly, if the WLAN name is a number (e.g., 1234), text not named by a company (e.g., Meeting Room A), or special symbols (e.g., !!!!), the cloud service can determine that the network corresponding to that WLAN name is not the target network. It can be understood that in this embodiment, the cloud service deletes networks named after non-company names, which simplifies the subsequent data clustering process, reduces the waste of computing resources due to excessive attendance data, and thus improves the accuracy of the clustering results.

[0209] (2) The check-in time corresponding to the second check-in data is a weekday. It can be understood that if the check-in time is a non-weekday, it means that the user corresponding to the check-in data may be working overtime. Therefore, in order to avoid the impact of individual overtime events on the generation of subsequent cloud check-in units, the cloud service can delete check-in data with check-in times of non-weekdays to improve the accuracy of cloud check-in unit determination. Among them, non-weekdays include Saturdays, Sundays and public holidays.

[0210] (3) The check-in distance between check-in locations in two second check-in data sets is less than a preset distance. This check-in distance can be determined based on a unit feature table, which includes the latitude and longitude information and check-in radius of each second check-in data set within the same check-in data set. It can be understood that the check-in distance between check-in locations (or check-in points) in different second check-in data sets within the same check-in data set should all be less than the preset distance. If any check-in distance is greater than the preset distance, it indicates that there are check-in locations that are far apart within the check-in data set, meaning that the second check-in data corresponding to that location does not belong to that check-in data set. Therefore, the cloud service can delete second check-in data that does not belong to the same check-in data set to ensure that the check-in distance between second check-in data sets within the same check-in data set is less than the preset distance.

[0211] For example, the unit feature table includes check-in data 1, check-in data 2, and check-in data 3. The check-in distance 12 between the check-in location corresponding to check-in data 1 and the check-in location corresponding to check-in data 2 is 10 meters, the check-in distance 13 between the check-in location corresponding to check-in data 1 and the check-in location corresponding to check-in data 3 is 100 meters, and the check-in distance 23 between the check-in location corresponding to check-in data 2 and the check-in location corresponding to check-in data 3 is 1000 meters. If the preset distance is 700 meters, the cloud service can determine that the check-in distance 23 is greater than the preset distance. Since the distance 12 is 10 meters, it means that the check-in distance 12 between the check-in location corresponding to check-in data 1 and the check-in location corresponding to check-in data 2 is relatively close. Therefore, the cloud service can determine that check-in data 1 and check-in data 2 are the same check-in data group. Therefore, the cloud service can delete check-in data 3 from the unit feature table. That is, the unit feature table only includes check-in data 1 and check-in data 2.

[0212] It should be noted that the aforementioned preset conditions may include one or more of the above conditions combined. If multiple preset conditions are included, the mobile phone can perform the judgments simultaneously or in a preset execution order; the specific order is not limited. For example, the mobile phone can sequentially determine whether the target network is named after the company, whether the check-in time corresponding to the second check-in data is a weekday, and whether the check-in distance between the check-in locations in the two second check-in data is less than a preset distance. This can reduce unnecessary resource loss and improve the utilization rate of computing resources.

[0213] S8054, the cloud service clusters the second check-in data in the target check-in data group to obtain the cloud check-in unit.

[0214] Specifically, the cloud service can employ a second-objective clustering algorithm to cluster the second-objective check-in data in the target check-in data group to obtain cloud check-in units. For example, this second-objective clustering algorithm can be a density-based spatial clustering of applications with noise (DBSCAN).

[0215] In some embodiments, the cloud service can cluster the second check-in data in the target check-in data group according to preset parameters. The preset parameters are (eps, points), where eps is a preset distance (e.g., 500 meters) and points is the center point (e.g., 1). In other words, the cluster radius corresponding to a cluster center is the preset distance.

[0216] For example, as shown in Table 1, the city code corresponding to the cloud check-in unit number “000374fc-1652-3853-b357-dba195da3ba9” is “0546”, the check-in package name is “com.alibaba.android.rimet”, the target network is “syzxxx”, and the unit feature table is “[{“cellid:12986118148,clusterId:0,lac:3153935,latitude:37.471995,long itude:118.496406,opt:2,radius:868.0”}]”.

[0217] Table 1

[0218]

[0219] In some embodiments, the cloud service can receive second check-in data from different mobile phones within a preset time period, and cluster the received second check-in data to obtain a second clustering result. This reduces the number of times mobile phones send check-in data, which is beneficial for the management and clustering of check-in data, reducing the possibility of cloud service receiving chaotic data due to excessive data transmission, and thus improving the accuracy of the second clustering result. The preset time period can be set according to actual conditions, such as 1:00-2:00, 11:00-12:00, etc., and is not specifically limited.

[0220] S806, the cloud service extracts at least one target cloud check-in unit that matches the user's check-in information from the above second clustering results.

[0221] Specifically, after obtaining the second clustering result, the cloud service can select at least one target cloud check-in unit from the second clustering result, based on the user check-in information. The user check-in information is generated based on user behavior data, which includes at least one of the following: check-in package name, target network, check-in city, target latitude and longitude information, and target check-in radius.

[0222] In one implementation, the cloud service can obtain the target latitude and longitude information based on the multiple latitude and longitude coordinates included in the multiple first check-in data, and obtain the target check-in radius based on the multiple check-in radii included in the multiple first check-in data. Then, the cloud service can select a target cloud check-in unit from the multiple cloud check-in units that matches the target latitude and longitude information and the target check-in radius.

[0223] For example, such as Figure 13As shown, the process of the cloud service extracting at least one target cloud check-in unit may specifically include S8061~S8068:

[0224] S8061, the cloud service obtains the target latitude and longitude information and the target check-in radius from the user's check-in information.

[0225] Specifically, after obtaining the second clustering result mentioned above, the cloud service can obtain the target latitude and longitude information and the target check-in radius from the user's check-in information.

[0226] S8062, the cloud service selects any cloud check-in unit from the second clustering results as the first cloud check-in unit.

[0227] S8063, the cloud service calculates the distance between the latitude and longitude information of each second check-in data in the first cloud check-in unit and the aforementioned target latitude and longitude information.

[0228] S8064, the cloud service determines whether the distance between the latitude and longitude information of the second check-in data in the first cloud check-in unit and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data and the target check-in radius.

[0229] In some embodiments, after obtaining the distance between the latitude and longitude information of each second check-in data in the first cloud check-in unit and the target latitude and longitude information, the cloud service can determine whether the distance between the latitude and longitude information of the second check-in data in the first cloud check-in unit and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data and the target check-in radius. If the distance between the latitude and longitude information of any second check-in data in the first cloud check-in unit and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data and the target check-in radius, the cloud service can execute S8065. If the distance between the latitude and longitude information of the second check-in data and the target latitude and longitude information is greater than or equal to the sum of the check-in radius of the second check-in data and the target check-in radius, the cloud service can execute S8066.

[0230] S8065, the cloud service takes the first cloud check-in unit corresponding to the second check-in data as the target cloud check-in unit.

[0231] Specifically, after determining that the distance between the latitude and longitude information of the second check-in data and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data and the target check-in radius, the cloud service can use the first cloud check-in unit corresponding to the second check-in data as the target cloud check-in unit.

[0232] It is understandable that, since the cloud check-in units in the above second clustering results are clustered based on the second check-in data, that is, the check-in locations corresponding to multiple second check-in data in the same cloud check-in unit are adjacent, if the distance between the latitude and longitude information of any second check-in data in the same cloud check-in unit and the target latitude and longitude information is less than the sum of the check-in radius of the second check-in data and the target check-in radius, it means that the check-in locations corresponding to all second check-in data in the cloud check-in unit are adjacent to the target latitude and longitude information. In other words, all second check-in data in the cloud check-in unit matches the user's first check-in data. Therefore, the cloud service can use the cloud check-in unit as the target cloud check-in unit. In this way, not only can unnecessary resource waste be reduced and the utilization rate of computing resources be improved, but the efficiency of unit extraction can also be improved, providing a foundation for the rapid generation of check-in fences in the future.

[0233] S8066, the cloud service determines whether all cloud check-in units in the above second clustering results are used as first cloud check-in units.

[0234] In some embodiments, after determining that the distance between the latitude and longitude information of the second check-in data and the target latitude and longitude information in the first cloud check-in unit is greater than or equal to the sum of the check-in radius of the second check-in data and the target check-in radius, the cloud service can determine whether all cloud check-in units in the second clustering result are used as first cloud check-in units. If all cloud check-in units in the second clustering result are used as first cloud check-in units, it indicates that all cloud check-in units in the second clustering result have been judged, and therefore, the cloud service can execute S8067. If not all cloud check-in units in the second clustering result are used as first cloud check-in units, it indicates that there are still cloud check-in units in the second clustering result that have not been judged, and therefore, the cloud service can execute S8068.

[0235] S8067, the cloud service obtains at least one target cloud check-in unit.

[0236] Specifically, after determining that all cloud check-in units in the above second clustering results are used as first cloud check-in units, the cloud service can obtain at least one target cloud check-in unit.

[0237] S8068, the cloud service selects any cloud check-in unit other than the first cloud check-in unit from the above second clustering results and uses it as the first cloud check-in unit again.

[0238] Specifically, after determining that not all cloud check-in units in the second clustering result are used as first cloud check-in units, the cloud service can select any cloud check-in unit other than the first cloud check-in unit from the second clustering result and use it as the first cloud check-in unit again, and return to execute the above step S8063 until all cloud check-in units in the second clustering result are used as first cloud check-in units, and the cloud service can obtain at least one target cloud check-in unit.

[0239] S807, the attendance check-in plugin receives at least one target cloud check-in unit sent by the cloud service.

[0240] Specifically, after obtaining at least one target cloud-based check-in unit, the cloud service can send the at least one target cloud-based check-in unit to the attendance check-in plugin to facilitate the subsequent generation of check-in fences.

[0241] In some embodiments, the cloud service can send at least one target cloud check-in unit to the unit receiving module in the attendance check-in plugin.

[0242] It should be noted that the execution order of the above-mentioned acquisition process of at least one target cloud check-in unit and the above-mentioned acquisition process of the first clustering result is not limited. For example, the mobile phone can first execute the above-mentioned steps S801~S803 and then execute the above-mentioned steps S804~S807, or the mobile phone can first execute the above-mentioned steps S804~S807 and then execute the above-mentioned steps S801~S803, or the mobile phone can execute the above-mentioned steps S801~S803 and the above-mentioned steps S804~S807 at the same time.

[0243] S808, the fence generation module receives the first clustering result and / or at least one target cloud check-in unit from the attendance check-in plugin.

[0244] Specifically, when the unit receiving module in the above-mentioned attendance check-in plugin receives the first clustering result and / or at least one target cloud check-in unit, it can send the first clustering result and / or at least one target cloud check-in unit to the fence generation module to facilitate the subsequent generation of the check-in fence.

[0245] S809, the fence generation module generates at least one check-in fence data based on the first clustering result and / or at least one target cloud check-in unit.

[0246] Specifically, upon receiving a fence registration instruction, the aforementioned fence check-in module can generate at least one check-in fence data based on the received first clustering result and / or at least one target cloud check-in unit. This at least one check-in fence data is used to generate at least one check-in fence. It can be understood that the number of check-in fences is the same as the number of check-in locations corresponding to the user holding the mobile phone. That is, if the mobile phone frequently receives check-in operations from the user at the check-in locations corresponding to Branch A and Branch B, it indicates that the user holding the mobile phone frequently works in Branch A and Branch B, and the mobile phone can generate one check-in fence corresponding to Branch A and one check-in fence corresponding to Branch B.

[0247] In some embodiments, the fence generation module can calculate the union of at least one local check-in unit and at least one target cloud check-in unit in the first clustering result to obtain at least one check-in fence data.

[0248] S810, the fence generation module receives the fence registration instruction from the attendance check-in plugin.

[0249] In some embodiments, the fence registration module in the attendance check-in plugin can send a fence registration instruction to the fence generation module to instruct the fence generation module to generate a check-in fence. This check-in fence indicates the check-in range within which the mobile phone can perform the check-in operation.

[0250] S811, the fence generation module generates at least one check-in fence based on the above at least one check-in fence data.

[0251] Specifically, upon receiving a fence registration instruction, the aforementioned fence check-in module can generate at least one check-in fence based on at least one check-in fence data.

[0252] It should be noted that steps S809 and S810~S811 can be executed simultaneously. Specifically, when the fence generation module receives the fence registration instruction, it can directly generate the corresponding check-in fence based on at least one check-in fence data to improve the efficiency of check-in fence generation.

[0253] S812, when the mobile phone is located within at least one check-in fence and the target time is within the preset check-in period, the fence generation module sends an information output instruction to the attendance check-in plugin.

[0254] Specifically, after generating at least one of the above-mentioned check-in fences, the fence generation module can determine whether the current location of the mobile phone is within any of the check-in fences. If the current location of the mobile phone is not within at least one check-in fence, it means that the user holding the mobile phone is not at work or is on fieldwork. Therefore, the fence generation module does not send information output instructions to the attendance check-in plugin to avoid causing check-in trouble for the user due to the mobile phone displaying check-in recommendation information, thereby improving the user experience.

[0255] If the phone's current location is within any designated check-in area, it indicates that the user holding the phone may need to perform a check-in operation. The area-of-flight generation module can further determine whether the target time is within a preset check-in period. If the target time is within the preset check-in period, it means that the current time is within the start or end of the workday check-in period, meaning the user holding the phone needs to perform a check-in operation. The area-of-flight generation module can then send an output instruction to the attendance check-in plugin, instructing the plugin to output check-in recommendation information. It can be understood that the target time is the current time.

[0256] If the target time is not within the preset check-in period, it means that the current time is not within the work check-in period or the off-get off work check-in period. In other words, the user holding the mobile phone does not have a need to perform the check-in operation. The fence generation module does not send information output instructions to the attendance check-in plugin to avoid causing check-in trouble for the user due to the mobile phone displaying check-in recommendation information, thereby improving the user experience.

[0257] It is understandable that the aforementioned preset clock-in / out times can be set according to the company's work hours. For example, if the company's work hours start at 8:00 AM, the mobile phone can be set to preset clock-in / out times from 7:00 AM to 8:00 AM, or from 7:30 AM to 8:00 AM. Similarly, if the company's get off work hours end at 5:00 PM, the mobile phone can be set to preset clock-in / out times from 5:00 PM to 6:00 PM, or from 5:00 PM to 5:30 PM.

[0258] The aforementioned attendance recommendation information is used to remind users to clock in and out. In this embodiment, the attendance recommendation information can be displayed on the main interface as a plugin icon (e.g., ...). Figure 2 The attendance recommendation information is displayed in the form of the "Attendance Check-in" plugin 2A. In other embodiments, the check-in recommendation information can also be displayed in other forms, such as text. In one example, when the phone is locked, the phone can display the check-in recommendation information on the lock screen. For example, please refer to [link to relevant documentation]. Figure 3 The phone can be on the lock screen (such as...) Figure 3In example (a), the screen displays a message notification saying "You have reached your end time, please remember to clock out" to remind the user to clock out. In another example, when the phone is unlocked, it can display clock-out recommendation information as a floating window or card on the current screen; for example, please see [link to example]. Figure 3 On the current interface (e.g.) Figure 3 Above the (b) interface, a notification message “Please remember to clock in” is displayed to remind users to clock in for attendance.

[0259] S813, the attendance check-in plugin displays the attendance check-in icon when it receives an information output instruction.

[0260] Specifically, after receiving the information output instruction from the fence generation module, the attendance check-in plugin can display an attendance check-in icon. For example, a mobile phone can display... Figure 2 The "Attendance Check-in" plugin 2A in the system reminds users to check in and reduce the occurrence of missed attendance checks.

[0261] S814, the attendance check-in plugin receives user clicks on the aforementioned attendance check-in icon.

[0262] In some embodiments, after displaying the attendance check-in icon, if the attendance check-in plugin detects a user's click on the icon, it indicates that the user has a need to check in / out. The attendance check-in plugin can then jump from the main interface corresponding to the displayed attendance check-in icon to the check-in interface corresponding to the target check-in application, that is, execute S815 to display the check-in interface. The target check-in application is the application corresponding to the check-in package name in the user's check-in information, i.e., the application the user frequently uses for check-in.

[0263] S815, the attendance check-in plugin displays the check-in interface corresponding to the target check-in application.

[0264] Specifically, when the attendance check-in plugin receives a click from a user on the aforementioned attendance check-in icon, the plugin can display the check-in interface (or primary interface) corresponding to the target check-in application. For example, such as... Figure 2 As shown, if the main interface ( Figure 2 When the user clicks on the "Attendance Check-in" plugin 2A in interface (a) of the mobile phone, the phone can directly obtain the target check-in application and display the check-in interface corresponding to that target check-in application, that is, display the check-in interface of the target check-in application. Figure 2 (b) of the interface.

[0265] It should be understood that the corresponding steps performed by the various modules in the aforementioned mobile phone can also be performed by other modules in the mobile phone, and there is no specific limitation. For example, the process of the aforementioned cloud service extracting at least one target cloud check-in unit can also be extracted by the aforementioned attendance check-in plugin. As another example, after the aforementioned data clustering module generates the first clustering result, it can directly send the first clustering result to the fence generation module, without first sending the first clustering result to the attendance check-in plugin and then having the attendance check-in plugin send it to the fence generation module.

[0266] In some embodiments, this application provides a computer-readable storage medium including computer instructions that, when executed on an electronic device, cause the electronic device to perform the method described above.

[0267] In some embodiments, this application provides a computer program product that, when run on an electronic device, causes the electronic device to perform the method described above.

[0268] Through the above description of the embodiments, those skilled in the art can clearly understand that, for the sake of convenience and brevity, only the division of the above functional modules is used as an example. In actual applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above.

[0269] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of modules or units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another device, or some features may be ignored or not executed. Furthermore, the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between devices or units may be electrical, mechanical, or other forms.

[0270] The units described as separate components may or may not be physically separate. A component shown as a unit can be one or more physical units; that is, it can be located in one place or distributed in multiple different locations. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.

[0271] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.

[0272] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a readable storage medium. Based on this understanding, the technical solutions of the embodiments of this application, essentially or in other words, the parts that contribute to the prior art, or all or part of the technical solutions, can be embodied in the form of a software product. This software product is stored in a storage medium and includes several instructions to cause a device (which may be a microcontroller, chip, etc.) or processor to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0273] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.

Claims

1. A method for generating a check-in fence, characterized in that, include: The system acquires at least one local check-in unit and multiple cloud-based check-in units. The at least one local check-in unit represents the check-in location corresponding to a user triggering a check-in operation using a first electronic device. This local check-in unit is obtained by clustering multiple first check-in data entries from the first electronic device. The multiple cloud-based check-in units indicate the check-in location corresponding to a user whose check-in information belongs to the same user and triggers a check-in operation. These multiple cloud-based check-in units are obtained by clustering multiple second check-in data entries from multiple electronic devices, including the first electronic device. The multiple first and second check-in data entries are check-in data in a check-in application. Each first check-in data entry includes the check-in radius and latitude / longitude information of the check-in location. Each second check-in data entry includes the check-in radius and latitude / longitude information of the check-in location. The check-in radius is the distance between the check-in location and the company. At least one target cloud check-in unit is selected from the plurality of cloud check-in units; wherein, the at least one target cloud check-in unit is matched with target latitude and longitude information and target check-in radius, the target latitude and longitude information is obtained based on the plurality of latitude and longitude information corresponding to the plurality of first check-in data, and the target check-in radius is obtained based on the plurality of check-in radii corresponding to the plurality of first check-in data; Based on the at least one local check-in unit and the at least one target cloud check-in unit, a check-in fence for the first electronic device is generated.

2. The method according to claim 1, characterized in that, Each cloud-based check-in unit includes at least one second check-in record; The at least one target cloud check-in unit is matched with the target latitude and longitude information and the target check-in radius, including: The distance between the latitude and longitude information of the second check-in data included in any target cloud check-in unit and the latitude and longitude information of the target is less than the sum of the check-in radius of the second check-in data included in the target cloud check-in unit and the target check-in radius.

3. The method according to claim 1, characterized in that, The step of generating a check-in fence for the first electronic device based on the at least one local check-in unit and the at least one target cloud check-in unit includes: The union of the at least one local check-in unit and the at least one target cloud check-in unit is calculated to obtain the check-in fence of the first electronic device.

4. The method according to any one of claims 1-3, characterized in that, The acquisition of at least one local check-in unit includes: Obtain historical clustering results; wherein, the historical clustering results include at least one historical check-in unit; Filter new check-in data from the local check-in dataset, excluding the first check-in data in the historical clustering results; wherein, the local check-in dataset includes multiple first check-in data from the first electronic device; Based on the historical clustering results, the new check-in data is clustered to obtain at least one local check-in unit.

5. The method according to any one of claims 1-3, characterized in that, Obtain multiple cloud-based check-in units, including: According to a preset category, multiple second check-in data from the plurality of electronic devices are grouped to obtain at least one check-in data group; wherein, the preset category includes at least one of check-in city, check-in package name, and target network; For each check-in data group, the check-in data group is filtered to obtain the target check-in data group; Cluster the second check-in data in the target check-in data group to obtain the multiple cloud check-in units.

6. The method according to claim 5, characterized in that, The step of filtering the check-in data group to obtain the target check-in data group includes: The second check-in data that does not meet the preset conditions in the check-in data group is deleted to obtain the target check-in data group; wherein, the preset conditions include at least one of the following: the target network is a network named after the company, the check-in time corresponding to the second check-in data is a weekday time, and the check-in distance between the check-in locations in the two second check-in data is less than a preset distance.

7. A method for generating a check-in fence, characterized in that, Applied to a first electronic device, the first electronic device having a check-in application installed, the method includes: Clustering multiple first check-in data in the first electronic device yields at least one local check-in unit; wherein, the multiple first check-in data are check-in data in the check-in application, each first check-in data includes the check-in radius of a check-in and the latitude and longitude information of the check-in location, the check-in radius is the distance between the check-in location and the company, and the at least one local check-in unit is used to characterize the check-in location corresponding to when the user holding the first electronic device triggers the check-in operation; Send the multiple first check-in data to the server; The system receives at least one target cloud-based check-in unit sent by the server; wherein the at least one target cloud-based check-in unit is selected by the server from multiple cloud-based check-in units, the multiple cloud-based check-in units are used to indicate the check-in location corresponding to the user triggering the check-in operation when the user's check-in information belongs to the same user, the multiple cloud-based check-in units are obtained by clustering multiple second check-in data in multiple electronic devices, the multiple electronic devices include the first electronic device, the multiple second check-in data are check-in data in the check-in application, each second check-in data includes the check-in radius and latitude and longitude information of one check-in; the at least one target cloud-based check-in unit is matched with target latitude and longitude information and target check-in radius, the target latitude and longitude information is obtained based on multiple latitude and longitude information corresponding to the multiple first check-in data, and the target check-in radius is obtained based on multiple check-in radii corresponding to the multiple first check-in data; Based on the at least one local check-in unit and the at least one target cloud check-in unit, a check-in fence is generated; When the first electronic device is located within the check-in fence and within the preset check-in time period, a check-in prompt is issued.

8. The method according to claim 7, characterized in that, After issuing the check-in reminder, the method further includes: In response to the triggering operation of the check-in prompt, a first interface is displayed, the first interface including a first control; The check-in is completed in response to the user's triggering action on the first control.

9. The method according to claim 7 or 8, characterized in that, There are multiple check-in fences; The step of issuing a check-in prompt when the first electronic device is located within the check-in fence and within a preset check-in time period includes: The check-in prompt is issued when the first electronic device is located within any of the multiple check-in fences and within the preset check-in time period.

10. A method for generating a check-in fence, characterized in that, Applied to a server, the method includes: Multiple second check-in data from multiple electronic devices are clustered to obtain multiple cloud check-in units. These cloud check-in units indicate the check-in location corresponding to the user's check-in information triggering the check-in operation. The multiple second check-in data are check-in data within the check-in application. The multiple electronic devices include a first electronic device, and the multiple second check-in data include multiple first check-in data from the first electronic device. Each second check-in data includes the check-in radius of a single check-in and the latitude and longitude information of the check-in location. The check-in radius is the distance between the check-in location and the company. At least one target cloud check-in unit is selected from the plurality of cloud check-in units; wherein, the at least one target cloud check-in unit is matched with target latitude and longitude information and target check-in radius, the target latitude and longitude information is obtained based on the plurality of latitude and longitude information corresponding to the plurality of first check-in data, and the target check-in radius is obtained based on the plurality of check-in radii corresponding to the plurality of first check-in data; The first electronic device sends at least one target cloud check-in unit to the first electronic device so that the first electronic device can generate a check-in fence based on the at least one target cloud check-in unit and at least one local check-in unit; wherein, the at least one local check-in unit is used to characterize the check-in location corresponding to the user holding the first electronic device triggering the check-in operation, and the at least one local check-in unit is obtained by clustering the multiple first check-in data.

11. A computer device, characterized in that, The computer device includes a display screen, a memory, and one or more processors; the display screen, the memory, and the processors are coupled; the display screen is used to display check-in prompts, the memory is used to store computer program code, the computer program code including computer instructions; when the processor executes the computer instructions, the computer device performs the check-in fence generation method as described in any one of claims 1 to 6 or the check-in fence generation method as described in any one of claims 7 to 9.

12. A service device, characterized in that, The service device includes a memory and one or more processors; the memory and the processors are coupled; the memory is used to store computer program code, the computer program code including computer instructions; when the processor executes the computer instructions, the service device performs the check-in fence generation method as described in claim 10.

13. A computer-readable storage medium, characterized in that, The method includes computer instructions that, when executed on a computer device, cause the computer device to perform the check-in fence generation method as described in any one of claims 1 to 7, or the check-in fence generation method as described in any one of claims 7 to 9, or the check-in fence generation method as described in claim 10.

14. A computer program product, characterized in that, The method includes computer instructions that, when executed on a computer device, cause the computer device to perform the check-in fence generation method as described in any one of claims 1 to 6, or the check-in fence generation method as described in any one of claims 7 to 9, or the check-in fence generation method as described in claim 10.

Citation Information

Patent Citations

  • Methods and systems relating to time location based employee management systems

    CA2868660A1

  • Fencing off cluster services based on access keys for shared storage

    US20240005017A1