Card punching fence generation method and electronic equipment

By clustering local and cloud check-in data, a check-in fence based on latitude and longitude and check-in radius is generated, the problem of inaccurate check-in prompts is solved, more accurate check-in recommendations and prompts are achieved, and user experience is improved.

CN120388429AActive Publication Date: 2025-07-29HONOR DEVICE CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202410084842.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-01-19
Publication Date
2025-07-29
Estimated Expiration
2044-01-19

AI Technical Summary

Technical Problem

The existing clock-in fence generation is not accurate enough, resulting in errors in pushing the clock-in prompt information, affecting the user experience.

Method used

By clustering local and cloud check-in data, a check-in fence based on latitude and longitude information and check-in radius is generated to ensure that only electronic devices within the accurate check-in range issue a prompt.

Benefits of technology

It improves the accuracy of check-in prompts, reduces the situation of misrecommendations and missed check-in, and improves the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120388429A_ABST
    Figure CN120388429A_ABST
Patent Text Reader

Abstract

The embodiment of the invention is applied to the field of intelligent terminals, and provides a clock-in fence generation method and electronic equipment. At least one local clock-in unit and a plurality of cloud clock-in units are obtained, the at least one local clock-in unit is obtained by clustering a plurality of pieces of first clock-in data in the first electronic device, and the plurality of cloud clock-in units are obtained by clustering a plurality of pieces of second clock-in data in the plurality of electronic devices; each piece of first clock-in data comprises clock-in radius of one time of clock-in and longitude and latitude information of a clock-in place. Then, at least one target cloud clock-in unit is selected from the multiple cloud clock-in units, and each target cloud clock-in unit is matched with the longitude and latitude information and the clock-in radius; and then, based on the at least one local clock-in unit and the at least one target cloud clock-in unit, generating a clock-in fence of the first electronic equipment. According to the method and the device, the card punching fence generation accuracy can be improved, and the accurate output of the card punching prompt is realized.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of intelligent terminals, and in particular, to a method for generating a punch-in fence and an electronic device. Background Art

[0002] With the continuous development of electronic devices, more and more enterprises use electronic devices (such as mobile phones) to achieve attendance punching. Specifically, before going to work, employees who enter the enterprise's attendance range can punch in for work; after work, employees located within the enterprise's attendance range can punch out.

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

[0004] Embodiments of this application provide a method for generating a punch-in fence and an electronic device, which are used to improve the accuracy of punch-in fence generation and thus enhance the accuracy of punch-in push.

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

[0006] In a first aspect, a method for generating a punch-in fence is provided. In this method, at least one local punch-in unit and multiple cloud punch-in units are obtained. Among them, the at least one local punch-in unit is obtained by clustering multiple first punch-in data in a first electronic device, and the multiple cloud punch-in units are obtained by clustering multiple second punch-in data in multiple electronic devices. The multiple first punch-in data and the multiple second punch-in data are punch-in data in a punch-in application; each piece of first punch-in data includes the punch-in radius of a punch-in and the longitude and latitude information of the punch-in location, and the punch-in radius is the distance between the punch-in location and the company. Then, at least one target cloud punch-in unit is selected from the multiple cloud punch-in units, and each target cloud punch-in unit matches the longitude and latitude information and the punch-in radius. Then, based on the at least one local punch-in unit and the at least one target cloud punch-in unit, a punch-in fence for the first electronic device is generated.

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

[0008] In this application, since at least one target cloud clock-in unit is determined based on longitude and latitude information and a clock-in radius, and the longitude and latitude information is used to represent the clock-in location corresponding to when the user triggers the clock-in operation, and the clock-in radius is used to represent the distance between the clock-in location and the company when the user triggers the clock-in operation. Therefore, the target cloud clock-in unit determined based on the longitude and latitude information and the clock-in radius can represent the clock-in range of the user. That is to say, the clock-in fence generated by the target cloud clock-in unit can be used to represent whether the first electronic device can issue a clock-in prompt. In this way, only the electronic device located within the clock-in fence can issue a clock-in prompt. In this way, not only can the accurate output of the clock-in prompt be realized, reducing the occurrence of the situation where the electronic device mis-recommends a clock-in event because the user passes by other branch companies, but also the user can be prompted to perform attendance clock-in in a timely and effective manner, reducing the occurrence of attendance anomalies due to the user's omission of clock-in, thereby improving the user experience.

[0009] In a possible implementation manner of the first aspect, the process of obtaining at least one local clock-in unit may specifically include: obtaining a historical clustering result; where the historical clustering result includes at least one historical clock-in unit. Then, screen out new clock-in data other than the first clock-in data in the historical clustering result from the local clock-in data set; where the local clock-in data set includes multiple pieces of first clock-in data. Then, based on the historical clustering result, cluster the new clock-in data to obtain at least one local clock-in unit.

[0010] In this application, the electronic device clusters other first clock-in data based on the historical clustering result. In this way, the situation of excessive waste of computing resources caused by clustering the previous clock-in data can be reduced, not only improving the utilization rate of computing resources, but also improving the clustering efficiency of clock-in data.

[0011] In a possible implementation of the first aspect, the process of clustering new check-in data based on the historical clustering result may specifically include: initializing the cluster list according to the historical clustering result to obtain the initialized cluster list; wherein, the initialized cluster list includes at least one historical check-in unit in the historical clustering result. Then, 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, repeatedly calculate the distances between the first new check-in data and each historical check-in unit in the initialized cluster list to obtain the 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, 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 add 1 to the number of new check-in data in the cluster list to obtain a new number of data, until the number of new check-in data in the cluster list is equal to the total number of data, to obtain at least one local check-in unit.

[0012] In this application, after obtaining the historical clustering result, that is, after the previous data clustering is completed and before the current data clustering, if a check-in operation of the user is detected, the data clustering module also needs to obtain the check-in data corresponding to the check-in operation, so as to avoid the situation that the clustering result is inaccurate due to missing check-in data and improve the accuracy of determining the first clustering result. In addition, 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, and the electronic device can merge the first new check-in data and the historical check-in unit into the same check-in unit to complete the clustering of check-in data.

[0013] In a possible implementation of the first aspect, the above method further includes: when the first minimum distance value is greater than or equal to the distance limit value, 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. Then, add 1 to the number of new check-in data in the cluster list to obtain a new number of data, until the number of new check-in data in the cluster list is equal to the total number of data, to obtain 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 means that the user holding the mobile phone may be working at other locations 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 newly created check-in unit to achieve the clustering of check-in data, thereby improving the accuracy of determining the first clustering result.

[0015] In a possible implementation of the first aspect, the process of obtaining at least one cloud clock-in unit may specifically include: grouping multiple pieces of second clock-in data in multiple electronic devices according to a preset category to obtain at least one clock-in data group; where the preset category includes at least one of a clock-in city, a clock-in package name, and a target network. Then, for each clock-in data group, perform data screening on the clock-in data group to obtain a target clock-in data group. Then, cluster the second clock-in data in the target clock-in data group to obtain a cloud clock-in unit.

[0016] In this application, before clustering multiple pieces of second clock-in data, the multiple pieces of second clock-in data in multiple electronic devices can be grouped and data-screened first. In this way, the accuracy of generating the cloud clock-in unit can be improved, providing a basis for accurately generating a clock-in fence subsequently.

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

[0018] In this application, only the clock-in data within the preset time period is grouped. In this way, not only can unnecessary waste of computing resources be reduced, the utilization rate of computing resources be improved, but also the situation where the clustering result is affected by clustering earlier clock-in data can be reduced, and the accuracy of determining the second clustering result can be improved.

[0019] In a possible implementation of the first aspect, the process of performing data screening on the clock-in data group may specifically include: deleting the second clock-in data in the clock-in data group that does not meet the preset conditions to obtain a target clock-in data group; where the preset conditions include at least one of that the target network is a network named after a company name, the clock-in time corresponding to the second clock-in data is a weekday time, and the clock-in distance between the clock-in locations of two pieces of second clock-in data is less than a preset distance.

[0020] In this application, deleting the network named after a non-company name can simplify the subsequent data clustering process, reduce the waste of computing resources caused by excessive clock-in data, and thus improve the accuracy of determining the clustering result. In addition, if the clock-in time is a non-weekday time, it means that the user corresponding to the clock-in data may be working overtime. Therefore, in order to avoid affecting the subsequent generation of the cloud clock-in unit due to individual overtime events, the cloud service can delete the clock-in data with a non-weekday clock-in time to improve the accuracy of determining the cloud clock-in unit.

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

[0022] In this application, since at least one target cloud clock-in unit is determined based on the target longitude and latitude information and the target clock-in radius, and the target longitude and latitude information is the average longitude and latitude information of the clock-in location corresponding to the user's triggered clock-in operation, the target clock-in radius can represent the average distance between the clock-in location and the company. Therefore, the target cloud clock-in unit determined according to the target longitude and latitude information and the target clock-in radius can indicate the clock-in range where the user can perform clock-in, thereby improving the accuracy of generating the clock-in fence, reducing the occurrence of situations where the electronic device mis-recommends clock-in events, and improving the user experience.

[0023] In a possible implementation of the first aspect, the process of selecting a target cloud clock-in unit that matches the target longitude and latitude information and the target clock-in radius may specifically include: selecting any cloud clock-in unit from the multiple cloud clock-in units as the first cloud clock-in unit. Then, calculate the distance between the longitude and latitude information of each second clock-in data in the first cloud clock-in unit and the target longitude and latitude information. If there is any second clock-in data in the first cloud clock-in unit whose distance from the target longitude and latitude information is less than the sum of the clock-in radius of the second clock-in data and the target clock-in radius, determine that the second clock-in data meets the first condition, and use the first cloud clock-in unit where the second clock-in data is located as the target cloud clock-in unit.

[0024] In this application, since the cloud clock-in units in the second clustering result are clustered according to the second clock-in data, that is, the clock-in positions corresponding to the multiple second clock-in data in the same cloud clock-in unit are adjacent. Therefore, if the distance between the longitude and latitude information of any second clock-in data in the same cloud clock-in unit and the target longitude and latitude information is less than the sum of the clock-in radius of the second clock-in data and the target clock-in radius, it means that the clock-in positions corresponding to all the second clock-in data in this cloud clock-in unit are adjacent to the target longitude and latitude information, that is, all the second clock-in data in this cloud clock-in unit match the user's first clock-in data. Therefore, using this cloud clock-in unit as the target cloud clock-in unit can not only reduce unnecessary resource waste and improve the utilization rate of computing resources, but also improve the efficiency of unit extraction, providing a basis for quickly generating a clock-in fence subsequently.

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

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

[0027] In this application, the clock-in fence is the union of at least one local clock-in unit and at least one target cloud clock-in unit. That is to say, the clock-in fence is determined based on the longitude and latitude information and the clock-in radius of different users under the same city, the same clock-in application, and the same target network. Therefore, the clock-in fence can represent the clock-in ranges of different users in the same company, thereby improving the accuracy of generating the clock-in fence, reducing the occurrence of false recommended clock-in events of the electronic device, and enhancing the user experience.

[0028] In a second aspect, this application also provides a method for generating a clock-in fence, which is applied to a first electronic device. The first electronic device is installed with a clock-in application. In this method, multiple first clock-in data in the first electronic device are clustered to obtain at least one local clock-in unit; wherein, the multiple first clock-in data are clock-in data in the clock-in application, and each first clock-in data includes the clock-in radius of one clock-in and the longitude and latitude information of the clock-in location, and the clock-in radius is the distance between the clock-in location and the company. Then, multiple first clock-in data are sent to the server. Then, at least one target cloud clock-in unit sent by the server is received; wherein, each target cloud clock-in unit matches the clock-in radius and the longitude and latitude information. Then, based on at least one local clock-in unit and at least one target cloud clock-in unit, the clock-in fence of the first electronic device is generated. Then, when the first electronic device is located within the clock-in fence and is in a preset clock-in time period, a clock-in prompt is issued.

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

[0030] In a possible implementation of the second aspect, the process of obtaining at least one local clock-in unit may specifically include: The first electronic device obtains a historical clustering result, where the historical clustering result includes at least one historical clock-in unit. Then, the first electronic device filters out new clock-in data other than the first clock-in data in the historical clustering result from the local clock-in dataset, where the local clock-in dataset includes multiple pieces of first clock-in data. Then, the first electronic device clusters the new clock-in data based on the historical clustering result to obtain at least one local clock-in unit.

[0031] In a possible implementation of the second aspect, the process of the first electronic device clustering the new clock-in data based on the historical clustering result may specifically include: The first electronic device initializes the cluster list according to the historical clustering result to obtain an initialized cluster list, where the initialized cluster list includes at least one historical clock-in unit in the historical clustering result. Then, the first electronic device repeatedly executes the following steps when the number of new clock-in data in the initialized cluster list is less than the total number of new clock-in data in the local clock-in dataset: Calculate the distances between the first new clock-in data and each historical clock-in unit in the initialized cluster list to obtain a first minimum distance value, where the first new clock-in data is any new clock-in data other than the new clock-in data included in the cluster list in the local clock-in dataset. Then, when the first minimum distance value is less than the distance limit value, the first electronic device adds the first new clock-in data to the historical clock-in unit corresponding to the first minimum distance value to obtain a new historical clock-in unit, and adds 1 to the number of new clock-in data in the cluster list to obtain a new number of data, until the number of new clock-in data in the cluster list is equal to the total number of data, to obtain at least one local clock-in unit.

[0032] In a possible implementation of the second aspect, the above 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 clock-in unit in the cluster list and adds the first new clock-in data to the newly created clock-in unit. Then, the first electronic device adds 1 to the number of new clock-in data in the cluster list to obtain a new number of data, until the number of new clock-in data in the cluster list is equal to the total number of data, to obtain at least one local clock-in unit.

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

[0034] In a possible implementation of the second aspect, after the above-mentioned punching prompt is issued, it further includes: in response to a triggering operation of the user on the punching prompt, a first interface is displayed, where the first interface includes a first control. Then, in response to a triggering operation of the user on the first control, punching is completed.

[0035] In this application, when the punching prompt is displayed on the first electronic device, if the punching prompt is clicked by the user, the first electronic device can display the first interface to facilitate the user to complete punching quickly. In this way, the punching steps of the user can be simplified and the punching time can be reduced.

[0036] In a possible implementation of the second aspect, the process of issuing the above-mentioned punching prompt may specifically include: when the first electronic device is within any one of multiple punching fences and within a preset punching time period, a punching prompt is issued.

[0037] In a third aspect, this application also provides a method for generating a punching fence, which is applied to a server. In this method, multiple second punching data in multiple electronic devices are clustered to obtain multiple cloud punching units; where the multiple second punching data are punching data in a punching application, the multiple electronic devices include a first electronic device, the multiple second punching data include multiple first punching data in the first electronic device, and each first punching data includes the punching radius of a punching and the longitude and latitude information of the punching location, and the punching radius is the distance between the punching location and the company. Then, at least one target cloud punching unit is selected from the multiple cloud punching units, and each target cloud punching unit matches the longitude and latitude information and the punching radius. Then, at least one target cloud punching unit is sent to the first electronic device, and the at least one target cloud punching unit is used to enable the first electronic device to generate a punching fence for the first electronic device.

[0038] In a possible implementation of the third aspect, the process of obtaining multiple cloud punching units may specifically include: grouping multiple second punching data in multiple electronic devices according to a preset category to obtain at least one punching data group; where the preset category includes at least one of a punching city, a punching package name, and a target network. Then, for each punching data group, data screening is performed on the punching data group to obtain a target punching data group. Then, the second punching data in the target punching data group are clustered to obtain cloud punching units.

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

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

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

[0042] In a possible implementation of the third aspect, the process of selecting a target cloud clock-in unit that matches the target longitude and latitude information and the target clock-in radius may specifically include: selecting any cloud clock-in unit from the multiple cloud clock-in units as the first cloud clock-in unit. Then, calculate the distance between the longitude and latitude information of each second clock-in data in the first cloud clock-in unit and the above target longitude and latitude information. In the case that the distance between the longitude and latitude information of any second clock-in data in the first cloud clock-in unit and the target longitude and latitude information is less than the sum of the clock-in radius of the second clock-in data and the target clock-in radius, it is determined that the second clock-in data meets the first condition, and the first cloud clock-in unit where the second clock-in data is located is used as the target cloud clock-in unit.

[0043] Fourth aspect, the present application provides an electronic device, the electronic device includes a display screen, a memory, and one or more processors; the display screen, the memory, and the processor are coupled; the display screen is used to display a clock-in prompt, the memory is used to store computer program code, and the computer program code includes computer instructions; when the processor executes the computer instructions, the electronic device is caused to execute the method as described above.

[0044] Fifth aspect, the present application provides a server, the server includes a memory and one or more processors; the memory and the processor are coupled; the memory is used to store computer program code, and the computer program code includes computer instructions; when the processor executes the computer instructions, the server is caused to execute the method as described above.

[0045] Sixth aspect, the present application provides a computer-readable storage medium, including computer instructions, which, when running on an electronic device, cause the electronic device to execute the method described above.

[0046] Seventh aspect, the present application provides a computer program product, which, when running on an electronic device, causes the electronic device to execute the method described above.

[0047] Eighth aspect, a chip is provided, including: an input interface, an output interface, a processor, and a memory. The input interface, the output interface, the processor, and the memory are connected through an internal connection path. The processor is configured to execute the code in the memory, and when the code is executed, the processor is configured to execute the method described above.

[0048] Among them, for the beneficial effects that can be achieved by the clock-in fence generation method described in the second aspect, the clock-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, reference can be made to the beneficial effects in the first aspect and any of its possible design manners, which will not be elaborated here. Description of the Drawings

[0049] Figure 1 It is a schematic diagram of the interface of a clock-in scenario provided by an embodiment of the present application;

[0050] Figure 2 It is a schematic diagram of the interface of another clock-in scenario provided by an embodiment of the present application;

[0051] Figure 3 It is a schematic diagram of the interface for displaying the clock-in attendance prompt provided by an embodiment of the present application;

[0052] Figure 4 It is a schematic diagram for displaying different branches in the same city provided by an embodiment of the present application;

[0053] Figure 5 It is a schematic diagram of the hardware structure of an electronic device provided by an embodiment of the present application;

[0054] Figure 6 It is a schematic diagram of the software structure of an electronic device provided by an embodiment of the present application;

[0055] Figure 7 It is a schematic diagram of the software structure of another electronic device provided by an embodiment of the present application;

[0056] Figure 8 It is a flowchart of a clock-in fence generation method provided by an embodiment of the present application;

[0057] Figure 9 Flowchart of a method for obtaining a first clustering result provided by an embodiment of the present application;

[0058] Figure 10 Another flowchart of a method for obtaining a first clustering result provided by an embodiment of the present application;

[0059] Figure 11 Flowchart of a method for a cloud service to obtain a cloud clock-in unit provided by an embodiment of the present application;

[0060] Figure 12 Schematic diagram of an interface for displaying a target network provided by an embodiment of the present application;

[0061] Figure 13 Flowchart of a method for selecting a target cloud clock-in unit provided by an embodiment of the present application. Detailed implementation manners

[0062] Next, the technical solutions in the embodiments of the present application will be described with reference to the accompanying drawings in the embodiments of the present application. Among them, in the description of the present application, unless otherwise specified, the "and / or" in the present application is only an association relationship describing associated objects, indicating that three relationships may exist. For example, A and / or B may represent: A exists alone, A and B exist simultaneously, and B exists alone. These three situations, where A and B may be singular or plural. And, in the description of the present application, unless otherwise specified, "a plurality of" means two or more than two. "At least one (item)" or similar expressions below refer to any combination of these items, including any combination of single item (item) or plural items (items). For example, at least one (item) of a, b, or c may represent: a, b, c, a - b, a - c, b - c, or a - b - c, where a, b, c may be single or multiple. In addition, in order to clearly describe the technical solutions of the embodiments of the present application, in the embodiments of the present application, terms such as "first" and "second" are used to distinguish the same items or similar items with basically the same functions and effects. Those skilled in the art can understand that the terms "first", "second", etc. do not limit the quantity and execution order, and the terms "first", "second", etc. do not necessarily limit to be different. At the same time, in the embodiments of the present application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or explanations. Any embodiment or design solution described as "exemplary" or "for example" in the embodiments of the present application should not be construed as being more preferred or having more advantages than other embodiments or design solutions. Exactly speaking, using words such as "exemplary" or "for example" aims to present relevant concepts in a specific way for easy understanding.

[0063] With the continuous development of electronic devices, users can achieve the function of punching in and out for work through electronic devices. Specifically, if the electronic device is within the attendance range, it means that the user has arrived near the company. The electronic device can enter the initial interface of the punching-in APP when it receives a click operation from the user on a specific punching-in application (APP). Among them, this specific punching-in APP is the default punching-in APP of the company. That is to say, users can achieve punching in and out for work by performing punching operations on this punching-in APP. After that, in response to the user's click operation on the "Punch In" control in the initial interface, the punching-in interface will be displayed. Then, the electronic device can execute corresponding punching events according to the user's punching operations. In this way, there is no need to install punching devices in the company, saving equipment costs for the company and improving resource utilization while ensuring attendance.

[0064] Exemplarily, as Figure 1 shown, if the application icon 11 corresponding to the punching-in APP is clicked by the user, the mobile phone can display the initial interface, where the initial interface includes a message list and a "Punch In" control 12. After that, if the "Punch In" control 12 is clicked by the user, the mobile phone can display the punching-in interface, where the punching-in interface includes a "Punch In" button 13 and punching information, and the punching information can include the punching time (08:25), the attendance range (AA Building), etc. After that, if the "Punch In" button 13 is clicked, it means that the user is currently performing a punching operation. Therefore, the mobile phone can convert the "Punch In" button 13 into a "Punched In" button 14 to remind the user that the punching is successful and facilitate the user to clearly understand the punching status.

[0065] It can be understood that since the employee has completed the work punching-in task and the current time is in the afternoon, that is, the current time may be in the time period corresponding to the off-work punching-in. Therefore, the "Punch In" button can also be an "Off-Work Punch In" button, that is, the mobile phone can display an "Off-Work Punch In" button. However, in fact, if the employee has not completed the work punching-in task and the current time is in the morning, that is, the current time is in the time period corresponding to the work punching-in. Therefore, the "Punch In" button 13 can also be a "Work Punch In" button, that is, the mobile phone can display a "Work Punch In" button.

[0066] In some embodiments, to simplify the user's clock-in steps and reduce the clock-in time, the electronic device may set an attendance clock-in plugin. Among them, the attendance clock-in plugin is used to jump the current interface to the target clock-in interface, which is the clock-in interface of the above-mentioned specific clock-in APP, that is, the clock-in interface corresponding to the electronic device when performing the clock-in operation. Specifically, the electronic device may display the attendance clock-in plugin on the main interface. After that, when receiving a click operation on the attendance clock-in plugin by the user, the electronic device may display the target clock-in interface. In this way, the electronic device only needs to respond to one click operation to display the clock-in interface, without having to respond to multiple click operations, simplifying the user's clock-in steps, improving the clock-in efficiency, and thus enhancing the user experience.

[0067] Exemplarily, as Figure 2 shown, if the "Attendance Clock-in" plugin 2A in the main interface is clicked by the user, the mobile phone can directly obtain the specific clock-in APP and display the clock-in interface corresponding to the specific clock-in APP, that is, display the target clock-in interface, where the main interface includes application icons and plugins of multiple applications. After that, if the "Clock-in" button 2B in the target clock-in interface is clicked by the user, it means that the user is currently performing a clock-in operation. Therefore, the mobile phone can convert the "Clock-in" button 2B into a "Clock-in Completed" button 2C to remind the user that the clock-in is successful and facilitate the user to clearly understand the clock-in status. That is to say, when receiving a click operation on the attendance clock-in plugin by the user, the mobile phone can directly perform an interface jump operation to make the mobile phone directly jump from the current interface (or the main interface) to the target clock-in interface. In this way, the user's clock-in steps can be simplified, and the user does not need to perform multiple click operations to complete the clock-in. Only one click operation is required to complete the clock-in, reducing the clock-in time, improving the clock-in efficiency, and thus enhancing the user experience.

[0068] It can be understood that since the display area of the main interface is limited, if the above-mentioned attendance clock-in plugin is always displayed on the main interface, it will occupy the display resources of the icons on the main interface, that is, there are some necessary contents (such as application icons, plugins, etc.) that cannot be displayed normally. Therefore, to avoid occupying the display resources of the main interface, the electronic device may not display the attendance clock-in plugin on the main interface in real time. That is to say, the electronic device may display the attendance clock-in plugin when the current clock-in information meets the preset clock-in conditions. Among them, the current clock-in information meeting the preset clock-in conditions may include that the current time is within a preset time period and the electronic device is within the attendance range.

[0069] Specifically, the electronic device can obtain at least one clock-in fence, where the at least one clock-in fence is obtained based on the local clock-in unit and at least one cloud clock-in unit. After that, when the electronic device is within any clock-in fence, it means that the owner user can clock in. Therefore, the electronic device can display the above-mentioned attendance clock-in plug-in.

[0070] Among them, the above-mentioned local clock-in unit is obtained by clustering the clock-in records (or called clock-in data) stored in the electronic device. The above-mentioned at least one cloud clock-in unit is obtained from the set of clock-in units stored in the cloud according to the user clock-in information generated by the electronic device. The user clock-in information is generated based on the user's historical clock-in data, and the user's historical clock-in data may include at least one of the clock-in package name, target network, and clock-in city.

[0071] It can be understood that the clock-in package name in the above-mentioned user's historical clock-in data is used to indicate the clock-in application commonly used by the owner user. The target network in the user's historical clock-in data is used to indicate the WIFI name that the owner user often connects to. It can be understood that generally, a company will set the WIFI name according to the company name (such as 123 Co., Ltd.). Therefore, the electronic device can determine the company name where the owner user is located according to the WIFI name. The clock-in city in the user's historical clock-in data is used to indicate the city where the owner user is permanently stationed for work. That is to say, the cloud clock-in unit obtained according to the user's historical clock-in data can implement the clock-in recommendation function.

[0072] Specifically, if the electronic device is within the clock-in city and the distance between the electronic device and the company is less than the preset distance, it means that the user holding the electronic device (or called the owner user) is within the clock-in fence. Therefore, the electronic device can display the attendance clock-in plug-in. After that, when receiving a click operation on the attendance clock-in plug-in by the user, the electronic device jumps from the current interface to the clock-in interface corresponding to the clock-in application. In this way, the clock-in recommendation function can be realized, which can predict the user's clock-in behavior in a timely manner and provide convenience for the user to perform the clock-in operation.

[0073] In one implementation, when the above-mentioned current clock-in information meets the preset clock-in conditions, the electronic device can also not display the above-mentioned attendance clock-in plug-in, that is, does not display the clock-in recommendation information in the form of a plug-in icon. The electronic device can display the clock-in recommendation information in the form of text, where the clock-in recommendation information is used to prompt the user to perform attendance clock-in. In an example, when the mobile phone is in the locked screen state, the mobile phone can display the clock-in recommendation information on the locked screen interface, for example, please refer to Figure 3In the (a) interface, the mobile phone can display a message notification on the lock screen interface that says "You have reached the end of get off work time, please remember to punch in" to remind the user to punch in after get off work. Afterwards, if the area 301 corresponding to the message notification is clicked by the user and the mobile phone is unlocked successfully, the mobile phone can directly enter the punch-in interface, that is, the mobile phone can display the following Figure 2 In another example, when the phone is in a non-locked state, the phone can display the check-in recommendation information in the form of a floating window or card on the current interface, for example, see Figure 3 In the (b) interface, a notification message "Please remember to punch in" is displayed above the current interface to remind the user to punch in for attendance. Afterwards, if the area 302 corresponding to the message notification is clicked by the user, the mobile phone can directly enter the punch-in interface, that is, the mobile phone can display the following Figure 2 (b) Interface in.

[0074] In some embodiments, if the same company has multiple branches, or a company has multiple offices in the same city (such as 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 is the check-in unit corresponding to all the check-in locations of the company in the same city. For example, Figure 4 As shown, Company Q has established multiple clock-in locations in City 1 (e.g., clock-in location A in District W, clock-in location B in District Y, and clock-in location C in District T), and users frequently clock in and out at clock-in location B. In other words, the clock-in fence generated by the electronic device may include the clock-in fences corresponding to all clock-in locations, i.e., the clock-in fence may include the clock-in fence corresponding to clock-in location A, the clock-in fence corresponding to clock-in location B, and the clock-in fence corresponding to clock-in location C.

[0075] It is understandable that under normal circumstances, the user holding the electronic device often clocks in and out at clock-in location B. That is, when the electronic device is within the clock-in fence corresponding to clock-in location B, the electronic device can display the attendance clock-in plug-in. However, according to the above-mentioned method of displaying the attendance clock-in plug-in on the electronic device, it can be concluded that if the electronic device is within the clock-in fence corresponding to clock-in location A (for example, the user holding the electronic device is passing by clock-in location A), the electronic device can still display the attendance clock-in plug-in to remind the user to clock in. In this way, the same company may include multiple subsidiaries and incorrectly recommend the clock-in service, thereby affecting the user's experience.

[0076] Therefore, in order to improve the accuracy of generating the check-in fence and further improve the accuracy of the attendance check-in recommendation, the embodiments of the present application provide a method for generating a check-in fence and an electronic device. In this method, at least one local check-in unit and multiple cloud check-in units are obtained. Among them, the at least one local check-in unit is obtained by clustering multiple first check-in data in a first electronic device, and the multiple cloud check-in units are obtained by clustering multiple second check-in data in multiple electronic devices. The multiple first check-in data and the multiple second check-in data are check-in data in a check-in application; each piece of first check-in data includes the check-in radius of a check-in and the longitude and latitude information of the check-in location, and the check-in radius is the distance between the check-in location and the company. After that, at least one target cloud check-in unit is selected from the multiple cloud check-in units, and each target cloud check-in unit matches the longitude and latitude information and the check-in radius. After that, 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.

[0077] In the embodiments of the present application, since at least one target cloud check-in unit is determined based on the longitude and latitude information and the check-in radius, and the longitude and latitude information is used to represent the check-in location corresponding to when the user triggers the check-in operation, and the check-in radius is used to represent the distance between the check-in location and the company when the user triggers the check-in operation. Therefore, the target cloud check-in unit determined according to the longitude and latitude information and the check-in radius can represent the check-in range of the user. That is to say, the check-in fence generated by the target cloud check-in unit can be used to represent whether the first electronic device can issue a check-in prompt. In this way, only the electronic devices located within the check-in fence can issue a check-in prompt. In this way, not only can the accurate output of the check-in recommendation information be realized, reducing the occurrence of the situation that the electronic device mis-recommends a check-in event because the user passes by other branch companies, but also the user can be timely and effectively prompted to perform attendance check-in, reducing the occurrence of the situation of attendance anomalies due to the user's omission of check-in, thereby improving the user experience.

[0078] Exemplarily, the above-mentioned electronic device can be any device installed with a check-in application, such as a mobile phone, a tablet computer, a wearable device (such as a smart watch, a bracelet), etc. The embodiments of the present application do not impose any restrictions on the specific type of the electronic device.

[0079] Taking the above-mentioned electronic device as a mobile phone as an example. Figure 5 The structural schematic diagram of the electronic device 200 is shown.

[0080] Exemplarily, Figure 5 The structural schematic diagram of the electronic device 200 is shown. As 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, a key 290, a motor 291, an indicator 292, cameras 1 - N 293, a display screen 294, and subscriber identification module (SIM) card interfaces 1 - N 295, etc.

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

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

[0083] Among them, the controller may be the nerve center and command center of the electronic device 200. The controller may generate operation control signals according to the instruction operation code and timing signals to complete the control of fetching and executing instructions.

[0084] A memory may also be provided in the processor 210 for storing instructions and data. In some embodiments, the memory in the processor 210 is a cache memory. This memory may save the instructions or data that the processor 210 has just used or recycled. If the processor 210 needs to use the instruction or data again, it can directly call 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. The 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 can be understood that the interface connection relationships between the modules illustrated in the embodiments of the present invention are only illustrative descriptions and do not constitute a structural limitation on the electronic device 200. In other embodiments of the present application, the electronic device 200 may also adopt different interface connection methods in the above embodiments, or a combination of multiple interface connection methods.

[0087] The charging management module 211 is used to receive a charging input from a 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 the electronic device 200 can be implemented through antenna 1, antenna 2, the mobile communication module 240, the wireless communication module 250, the modulation and demodulation processor, and the baseband processor, etc.

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

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

[0091] The wireless communication module 250 may provide solutions for wireless communications applied to the electronic device 200, including wireless local area networks (WLANs) (such as wireless fidelity (Wi-Fi) networks), Bluetooth (BT), global navigation satellite systems (GNSSs), frequency modulation (FM), near field communication (NFC), infrared (IR), etc.

[0092] The electronic device 200 implements a display function through a GPU, a display screen 294, an application processor, etc. 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 for graphics rendering. The processor 210 may include one or more GPUs, which execute program instructions to generate or change 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 clock-in recommendation information for reminding the user to clock in for work.

[0094] Among them, the display screen 294 includes a display panel. The display panel may adopt 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 Miniled, a MicroLed, a Micro-oLed, 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] The electronic device 200 can implement a shooting function through an ISP, a camera 293, a video codec, a GPU, a display screen 294, and an application processor, etc.

[0096] The camera 293 is used to capture static images or videos. An object generates an optical image through the lens and projects it onto the photosensitive element. The photosensitive element can be a charge coupled device (CCD) or a complementary metal-oxide-semiconductor (CMOS) phototransistor. The photosensitive element converts the optical signal into an electrical signal, and then transfers the electrical signal to the ISP to be converted into a digital image signal. The ISP outputs the digital image signal to the DSP for processing. The DSP converts the digital image signal into an image signal in standard formats such as RGB and YUV. In some embodiments, the electronic device 200 may include one or N cameras 293, where N is a positive integer greater than 1.

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

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

[0100] The electronic device 200 can implement audio functions through the audio module 270 and the application processor, etc. For example, music playback, recording, etc. Among them, the audio module 270 may include a speaker, a receiver, a microphone, and a headphone interface, etc.

[0101] The keys 290 include a power-on key, a volume key, etc. The indicator 292 can be an indicator light.

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

[0103] The touch sensor, also known as the "touch panel", can be disposed on the display screen 294 and is used to detect touch operations acting thereon or nearby. The detected touch operations can be transmitted to the application processor to determine the type of touch event and provide corresponding visual output through the display screen 294.

[0104] The pressure sensor is used to sense pressure signals and can convert the pressure signals into electrical signals. In some embodiments, the pressure sensor can be disposed on the display screen 294. There are many types of pressure sensors, such as resistive pressure sensors, inductive pressure sensors, capacitive pressure sensors, etc. The capacitive pressure sensor can include at least two parallel plates with conductive materials. When a force acts on the pressure sensor, the capacitance between the electrodes changes. The electronic device 200 determines the intensity of the pressure according to the change in capacitance. When a touch operation acts on the display screen 294, the electronic device 200 detects the intensity of the touch operation according to the pressure sensor. The electronic device 200 can also calculate the position of the touch according to the detection signal of the pressure sensor. In some embodiments, touch operations acting on the same touch position but with different touch operation intensities can correspond to different operation instructions.

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

[0106] The layered architecture divides the software into several layers, and each layer has a clear role and division of labor. The layers communicate with each other through software interfaces. In some embodiments, the Android system is divided into four layers, from top to bottom, namely the application layer (abbreviation: application layer), the application framework layer (abbreviation: framework layer), the Android runtime and the system library, and the kernel layer (or called the driver layer). The application layer may include a series of application packages.

[0107] Such as Figure 6 shown, the application packages may include a clock-in application, a local data clustering module, a fence generation module, an attendance clock-in plugin, etc. Among them, the clock-in application is an application program capable of performing attendance clock-in.

[0108] The above-mentioned local data clustering module is used to cluster multiple clock-in data in the local clock-in dataset to obtain a first clustering result, where the first clustering result is used to indicate the classification result of the multiple clock-in data, that is, to characterize which clock-in location near the company each clock-in data in the local clock-in dataset is located at. Specifically, the local clock-in dataset can be stored in an electronic device. The multiple clock-in data in the local clock-in dataset can be all the clock-in records in the electronic device, that is, all the clock-in data obtained by the electronic device since the user starts using the clock-in application for attendance clock-in, or can be all the clock-in records obtained within a preset time, that is, all the clock-in records obtained within a previous period of time (such as 2 months, 1 quarter, etc.). There is no specific limitation.

[0109] The above-mentioned fence generation module is used to generate at least one clock-in fence according to at least one local clock-in unit and / or at least one cloud clock-in unit. In some embodiments, when receiving at least one local clock-in unit and / or at least one cloud clock-in unit, the fence generation module can generate at least one clock-in fence according to at least one local clock-in unit and / or at least one cloud clock-in unit. Specifically, if at least one local clock-in unit and at least one cloud clock-in unit are both near the same clock-in location, it indicates that the owner user often clocks in at this clock-in location. Therefore, the fence generation module can generate one clock-in fence. If at least one local clock-in unit and at least one cloud clock-in unit are near different clock-in locations, it indicates that the owner user may often work at different locations (such as working at office location A on Mondays, Wednesdays, and Fridays every week, and working at office location B on Tuesdays and Thursdays every week). Therefore, the fence generation module can generate multiple clock-in fences (such as the clock-in fence corresponding to office location A and the clock-in fence corresponding to office location B).

[0110] The above-mentioned attendance clock-in plug-in is used to remind the user to perform attendance clock-in. Specifically, when the electronic device is within any clock-in fence and the current time is within a preset period, the electronic device can display the attendance clock-in plug-in to remind the user to clock in. After that, when receiving a click operation on the icon corresponding to the attendance clock-in plug-in by the user, the attendance clock-in plug-in can jump the interface where the icon is located to the clock-in interface to facilitate the user to perform the clock-in operation.

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

[0112] Among them, the window manager is used to manage window programs. The window manager can obtain the display screen size, determine whether there is a status bar, lock the screen, capture the screen, etc. The content provider is used to store and obtain data, and make this data accessible to application programs. The data may include videos, images, audio, incoming and outgoing calls, browsing history and bookmarks, phone books, etc.

[0113] The notification manager enables application programs to display notification information in the status bar. It can be used to convey notification-type messages, which can automatically disappear after a short stay without user interaction. For example, the notification manager is used to inform that the download is completed, message reminders, etc. The notification manager can also be a notification that appears in the system top status bar in the form of a chart or scroll bar text, such as the notification of a background-running application program, or a notification that appears on the screen in the form of a dialogue window. For example, it prompts text information in the status bar, emits a prompt tone, the electronic device vibrates, the indicator light flashes, etc.

[0114] The view system includes visible controls, such as controls for displaying text, controls for displaying pictures, etc. The view system can be used to build application programs. The display interface can be composed of one or more views. The resource manager provides various resources for application programs, such as localized strings, icons, pictures, layout files, video files, and so on.

[0115] Android runtime includes a core library and a virtual machine. Android runtime is responsible for the scheduling and management of the Android system. The core library contains two parts: one part is the functional functions that need to be called by the Java language, and the other part is the core library of Android.

[0116] The application layer and the application framework layer run in the virtual machine. The virtual machine executes the Java files of the application layer and the 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] The system library can include multiple functional modules. For example: surface manager, 3D graphics processing library (such as: openGL ES), 2D graphics engine (such as: SGL), media libraries, etc.

[0118] The surface manager is used to manage the display subsystem and provides the fusion of 2D and 3D layers for multiple applications. The 3D graphics processing library is used to implement 3D graphics drawing, image rendering, synthesis, and layer processing, etc. The 2D graphics engine is the drawing engine for 2D drawing. The media library supports the playback and recording of multiple common audio and video formats, as well as static image files, etc. The media library can support multiple audio and video coding formats, such as: MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, etc.

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

[0120] Exemplarily, the software structure of the above-mentioned electronic device 200 may further include a hardware abstraction layer. The hardware abstraction layer is an encapsulation of the Linux kernel driver, providing an interface upward, hiding the hardware interface details of a specific platform, and providing a virtual hardware platform for the operating system. In the embodiments of the present application, the hardware abstraction layer may include modules such as a camera HAL, an audio HAL, a GPS HAL, a Wi-Fi HAL, etc.

[0121] It can be understood that Figure 6 The layers in the shown structure and the components included in each layer do not constitute a specific limitation on the electronic device 200, that is, the mobile phone. In other embodiments of the present application, the structure may include more or fewer layers than shown, and each layer may include more or fewer components, which are not limited in the present application.

[0122] It should be noted that Figure 6 The clock-in unit received by the unit receiving module in may not only be obtained from the above-mentioned local data clustering module, but also be obtained from the cloud side. Specifically, as Figure 7 shown, this technical solution can be deployed on the cloud side and the end side, and the combination of the cloud and the end is used to implement clock-in recommendation. Among them, the cloud side is the cloud side server, and the end side is the electronic device.

[0123] Among them, the cloud side server may set up a cloud data clustering module. The cloud data clustering module is used to cluster multiple clock-in data in the cloud clock-in dataset to obtain a second clustering result, where the second clustering result is used to indicate the classification result of the multiple clock-in data, that is, to characterize which clock-in location each clock-in data in the clock-in dataset is near. It can be understood that the cloud clock-in dataset includes all the clock-in data uploaded by all electronic devices, that is, the clock-in data stored by each electronic device will be uploaded to the cloud data clustering module to provide a basis for subsequent data clustering.

[0124] The edge side may include multiple electronic devices, and the multiple electronic devices may share the second clustering result on the cloud side, that is, share the punch-in unit list on the cloud side. Taking one of the electronic devices as an example, an attendance punch-in plugin can be installed on the application layer of the electronic device, and a local data clustering module and a fence generation module can be set up.

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

[0126] The above-mentioned fence registration module can also be referred to as the brain of the above-mentioned attendance punch-in plugin. It is used to register the above-mentioned at least one punch-in fence, providing a basis for the subsequent electronic device to output punch-in recommendation information. In some embodiments, when it is detected that the above-mentioned fence generation module generates at least one punch-in fence data, the fence registration module can send a fence registration instruction to the fence generation module to generate at least one punch-in fence, so as to facilitate subsequent determination of whether to output punch-in recommendation information based on the at least one punch-in fence, thereby improving the accuracy of punch-in information recommendation.

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

[0128] Based on the electronic device introduced in the above exemplary manner, an embodiment of the present application provides a method for generating a punching fence. Taking the electronic device as a mobile phone as an example below, the method of the embodiment of the present application will be described. Specifically, the mobile phone can cluster the punching data in the local punching data set to obtain at least one local punching unit. The mobile phone can also send the punching data in the local punching data set to the cloud service, so that the cloud service can cluster the punching data stored in different mobile phones, and then extract at least one target cloud punching unit according to the user's punching information. After that, the mobile phone can generate a punching fence according to the received at least one target cloud punching unit and at least one local punching unit. Then, when the mobile phone is within the punching fence and within a preset punching time period, the mobile phone issues a punching reminder to remind the user to perform attendance punching. Exemplarily, as Figure 8 shown, the method for generating the punching fence may include S801 to S815.

[0129] S801, the data clustering module in the mobile phone obtains the local punching data set.

[0130] Among them, the above local punching data set includes all the punching data stored in the mobile phone, that is, all the punching data generated when the user holding the mobile phone triggers a punching operation. That is, the local punching data set includes multiple first punching data. In one example, in order to improve the accuracy of subsequent punching recommendations, the mobile phone can store all the punching data of the user since using the mobile phone. In another example, in order to avoid occupying too much storage resources, the mobile phone can also only store the punching data in a previous period of time, that is, only store the punching data within a preset time. Among them, the preset time can be set according to the actual situation, such as 2 months, 1 quarter, etc., and no specific limitation is made.

[0131] In some embodiments, the above first punching data is the punching data in the punching application. The first punching data may include at least one of the punching time, punching package name, target network, punching city, longitude and latitude information of the punching location, and punching radius when triggering a punching operation. Among them, the punching package name is used to represent the punching application. The punching radius is the distance between the punching location and the company.

[0132] S802, the above data clustering module clusters the first punching data in the above local punching data set to obtain a first clustering result, where the first clustering result includes at least one local punching 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. Among them, the first clustering result includes at least one local check-in unit, and the local check-in unit is used to represent the check-in location corresponding to the user who holds the mobile phone when triggering the check-in operation.

[0134] In one implementation, the data clustering module can use a first target clustering algorithm to cluster multiple first check-in data in the above local check-in dataset to obtain a first clustering result. Exemplarily, the first target clustering algorithm can be a nearest neighbor clustering algorithm.

[0135] In some embodiments, as Figure 9 shown, the process of the data clustering module clustering the first check-in data can specifically include S80201 to S80210:

[0136] S80201, the data clustering module obtains a historical clustering result.

[0137] Among them, the above historical clustering result is the clustering result generated by the data clustering module when performing data clustering last time, and the historical clustering result includes at least one historical check-in unit.

[0138] In this embodiment, the data clustering module clusters other first check-in data on the basis of the historical clustering result. In this way, the situation of excessive waste of computing resources caused by clustering the previous check-in data can be reduced, which not only improves the utilization rate of computing resources, but also improves the clustering efficiency of check-in data.

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

[0140] Among them, the above new check-in data is the check-in data that has not been clustered, that is, the check-in data after the update time, and the update time is the time corresponding to the last update of the historical clustering result.

[0141] It can be understood that after obtaining the historical clustering result, that is, after the last data clustering is completed and before the current data clustering, if the data clustering module detects the user's check-in operation, it also needs to obtain the check-in data corresponding to the check-in operation to avoid inaccurate clustering results caused by missing check-in data and improve the accuracy of determining the first clustering result. That is to say, the sum of the number of check-in data corresponding to the historical clustering result and the number of check-in data after the update time is equal to the total number of data in the local check-in dataset.

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

[0143] Specifically, the data clustering module may initialize the cluster list to the historical clustering result, that is, the initialized cluster list includes at least one historical check-in unit in the historical clustering result.

[0144] It can be understood that if this data clustering is the first clustering, it means that the mobile phone has not stored the historical clustering result yet. Therefore, the data clustering module may 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 data quantity of the new check-in data in the cluster list is less than the total data quantity of the new check-in data in the above local check-in dataset.

[0146] In some embodiments, after obtaining the cluster list, the data clustering module may determine whether the data quantity of the new check-in data in the cluster list is less than the total data quantity of the new check-in data in the above local check-in dataset. If the data quantity of the new check-in data in the cluster list is less than the total data quantity of the new check-in data in the local check-in dataset, it means that there is still new check-in data in the local check-in dataset that needs to be clustered, that is, this data clustering is not completed. Therefore, the data clustering module may execute S80205. If the data quantity of the new check-in data in the cluster list is equal to the total data quantity of the new check-in data in the local check-in dataset, it means that all the new check-in data in the local check-in dataset have been clustered. Therefore, the data clustering module may execute S80210.

[0147] S80205, the data clustering module calculates the distances 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 data quantity of the new check-in data in the cluster list is less than the total data quantity of the new check-in data in the local check-in dataset, the data clustering module may calculate the distances between the first new check-in data and each historical check-in unit in the cluster list to obtain the first minimum distance value. Wherein, the first new check-in data is any new check-in data in the local check-in dataset except the new check-in data included in the cluster list.

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

[0150] In some embodiments, after obtaining the above first minimum distance value, the data clustering module may 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 may 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 at other workplaces. Therefore, the data clustering module may execute S80209.

[0151] Among them, the above distance limit value is a preset distance value. In this embodiment, the distance limit value may be 200. In other embodiments, the distance limit value may also be other values, such as 180, 270, etc., which are not specifically limited.

[0152] S80207, the data clustering module adds the above 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 above first minimum distance value is less than the distance limit value, the data clustering module may 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 adding the above first new check-in data to the historical check-in unit corresponding to the first minimum distance value, the data clustering module may calculate the average of the longitude and latitude based on the longitude and latitude of the new historical check-in unit and the longitude and latitude of the first new check-in data. It can be understood that the average of the longitude and latitude represents the longitude and latitude (center gps) of the cluster center corresponding to the historical check-in unit.

[0155] S80208, the data clustering module increments the data quantity of the new check-in data in the cluster list by 1 to obtain a new data quantity.

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

[0157] In other embodiments, after adding the above first new check-in data to the newly created historical check-in unit, the data clustering module may increment the data quantity of the new check-in data in the cluster list by 1 to obtain a new data quantity.

[0158] In one implementation, when obtaining the new data quantity, the data clustering module may return to execute the above S80204 until the data quantity of the new check-in data in the cluster list is equal to the total data quantity, and the data clustering module may 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 above first new check-in data to the newly created check-in unit.

[0160] Specifically, after determining that the above 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 above cluster list and add the above 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 an infinite value, that is to say, 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 data of the new check-in data in the above cluster list is equal to the total number of data, the data clustering module can obtain the first clustering result. Among them, the first clustering result includes at least one check-in unit in the cluster list, and the 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 check-in unit may include at least one of the longitude and latitude 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, the city code, and the clustering flag (flag). The cluster radius is used to represent the check-in range where the check-in operation can be performed. That is to say, only when the mobile phone is within the cluster radius, it can be explained 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 is used to represent the maximum value of the timestamps (or called check-in times) corresponding to all check-in data in the check-in unit. The cell name list includes the data names 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, and the check-in information can be the network operator corresponding to the check-in operation or the data name, etc. The cluster size is used to represent the number of check-in data in the check-in unit. The city code is used to represent the city where the check-in unit is located. The clustering flag can be "cluster", which is used to represent that the check-in unit is generated by clustering the check-in data.

[0165] It should be noted that the above first clustering result is obtained by clustering the new check-in data in the above local check-in dataset based on the historical clustering result. In the prior art, the clustering result obtained by clustering the check-in data is not based on the historical clustering result for data clustering, but all the check-in data in the local check-in dataset is clustered to obtain the clustering result. That is to say, compared with the prior art, this embodiment can reduce unnecessary resource waste and improve the utilization rate of computing resources.

[0166] Specifically, as Figure 10 shown, the process of clustering all the check-in data in the local check-in dataset may specifically include S802a to S802h:

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

[0168] Among them, the above initialization of the cluster list (cluster list) means setting the cluster list to be empty, that is, the cluster list does not contain check-in 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 may 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 referred to as the local check-in dataset). If the number of data in the cluster list is less than the total number of data corresponding to the above check-in dataset, it means that there is still check-in data in the local check-in dataset that needs to be clustered, that is, this data clustering is not completed. Therefore, the data clustering module may 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 means that all the check-in data in the local check-in dataset has been clustered. Therefore, the data clustering module may 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 smallest distance value.

[0172] Specifically, after determining that the number of data in the above cluster list is less than the total number of data corresponding to the above check-in dataset, the data clustering module may calculate the distance between the first check-in data and each check-in unit in the cluster list to obtain the second smallest distance value. Among them, the first check-in data is any check-in data in the check-in dataset except the check-in data included in the cluster list.

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

[0174] In some embodiments, after obtaining the above-mentioned second minimum distance value, the data clustering module may 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 may 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 at other workplaces. Therefore, the data clustering module may execute S802g.

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

[0176] Specifically, after determining that the above-mentioned second minimum distance value is less than the distance limit value, the data clustering module may 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 adding the above-mentioned first check-in data to the check-in unit corresponding to the above-mentioned second minimum distance value, the data clustering module may calculate the average of longitude and latitude based on the longitude and latitude of the new check-in unit and the longitude and latitude of the first check-in data. It can be understood that the average of longitude and latitude represents the longitude and latitude of the cluster center corresponding to the check-in unit.

[0178] In S802f, the data clustering module adds 1 to the number of data in the cluster list to obtain a new number of data.

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

[0180] In other embodiments, after adding the above-mentioned first check-in data to the newly created check-in unit, the data clustering module may add 1 to the number of data in the cluster list to obtain a new number of data.

[0181] In one implementation, when obtaining the new number of data, the data clustering module may return to execute the above-mentioned S802b until the number of data in the cluster list is equal to the total number of data, and the data clustering module may obtain the above-mentioned first clustering result.

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

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

[0184] It should be noted that if the historical clock-in unit is not included in the above cluster list, that is, the data clustering module does not cluster the clock-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 the step Figure 9 in S80210 and will not be elaborated here.

[0187] It can be understood that under normal circumstances, each mobile phone corresponds to only one local clock-in unit, that is, the user holding the mobile phone only clocks in at the same office location. However, in some cases, if the user's occupation is relatively special (such as the user is a doctor), then the user needs to see patients in different branches of the same hospital. Therefore, there may be different local clock-in units corresponding to different branches for this mobile phone. For example, if the user holding the mobile phone sees patients in Branch A from Monday to Wednesday and in Branch B from Thursday to Friday, then the first clustering result obtained by the data clustering module may include the local clock-in unit corresponding to Branch A and the local clock-in unit corresponding to Branch B.

[0188] In some embodiments, the data clustering module can cluster the first clock-in data in the local clock-in dataset when the mobile phone is in the charging state and / or the mobile phone is in the screen-off state, so as to obtain the first clustering result. In this way, the power consumption overhead can be minimized to ensure the usage duration of the mobile phone, reduce the situation that too much mobile phone power is consumed due to data clustering or affect the user experience, and improve the user experience.

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

[0190] Specifically, after obtaining the above first clustering result, the data clustering module can send the first clustering result to the attendance clock-in plug-in in the mobile phone.

[0191] Among them, the above attendance clock-in plug-in may include a fence registration module and a unit receiving module. The fence registration module is used to register the clock-in fence. The unit receiving module is used to receive the first clustering result sent by the data clustering module and the second clustering result sent by the cloud service, and the unit receiving module is also used to perform corresponding clock-in operations according to the trigger operation of the user on the attendance clock-in plug-in.

[0192] S804, the cloud service obtains the cloud clock-in dataset.

[0193] Among them, the above cloud punch-in dataset includes all the punch-in data uploaded by mobile phones to the cloud service. That is to say, each mobile phone will upload the obtained punch-in data to the cloud service, so that the cloud punch-in dataset can include multiple first punch-in data stored in different mobile phones, facilitating the subsequent cloud service to cluster the obtained multiple punch-in data and further improving the accuracy of punch-in fence determination. It can be understood that the cloud punch-in dataset includes multiple second punch-in data in multiple mobile phones, and the multiple mobile phones include the above mobile phone. That is to say, the cloud punch-in dataset includes multiple first punch-in data in the above mobile phone.

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

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

[0196] Specifically, after obtaining the above cloud punch-in dataset, the cloud service can cluster at least two second punch-in data in the cloud punch-in dataset to obtain a second clustering result. Among them, the second clustering result can include multiple cloud punch-in units, and the cloud punch-in unit is used to indicate the punch-in location corresponding to the user when triggering the punch-in operation for the punch-in information belonging to the same user.

[0197] In some embodiments, as Figure 11 shown, the process of the cloud service clustering the second punch-in data can specifically include S8051 to S8054:

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

[0199] Among them, the above preset time period can be set according to the actual situation. For example, it can be 4 months (that is, 120 days), half a year, 1 quarter, etc., and there is no specific limitation. That is to say, in this embodiment, the cloud service only clusters the punch-in data within the preset time. In this way, not only can unnecessary waste of computing resources be reduced and the utilization rate of computing resources be improved, but also the situation where the clustering result is affected by clustering the earlier punch-in data can be reduced, and the accuracy of determining the second clustering result can be improved. However, in other embodiments, the cloud service can also cluster all the punch-in data in the cloud punch-in dataset. In this way, the cloud punch-in units obtained by clustering can be more suitable for users with different user punch-in information, and the applicability of the cloud punch-in units can be improved.

[0200] The S8052 cloud service groups the at least two second punch data according to a preset category to obtain at least one punch data group.

[0201] Among them, the preset category may include at least one of a punch city, a punch package name, and a target network. The punch city is the city where the user triggers the punch operation, the punch package name is the application name corresponding to the user when triggering the punch operation, and the target network is the WLAN name connected by the mobile phone or the recommended WLAN name when the user triggers the punch operation.

[0202] In one implementation, the target network is the connected WIFI in the clock wireless network information (clockwifiinfo) field in the punch data. That is to say, the target network is the WLAN network connected by the mobile phone. For example, please refer to Figure 12 the interface in (a). The mobile phone is connected to a network with the WLAN name of "XX Company", indicating that the user holding the mobile phone is working in XX Company. Therefore, the mobile phone can determine that the target network is "XX Company".

[0203] In another implementation, when the clock wifiinfo field in the punch data is empty, that is, when the mobile phone is not connected to a WLAN network, the target network is the WLAN network to be connected in the available WLAN list. Exemplarily, the target network may be the WLAN network to be connected at the first position in the available WLAN list. For example, please refer to Figure 12 the interface in (b). The mobile phone is not connected to any WLAN. The mobile phone can use the WLAN at the first position in the available WLAN list as the target WLAN, that is, use the network with the WLAN name of "XX Company" as the target network.

[0204] Specifically, the cloud service may use the punch data in the same preset category among the at least two second punch data as the same punch data group. In one example, taking the preset category as the punch city for illustration, the cloud service may use the punch data in city A among the at least two second punch data as the same punch data group, and use the punch data in city B among the at least two second punch data as the same punch data group. In another example, taking the preset category including the punch city, the punch package name, and the target network for illustration, the cloud service may use the punch data in city A, punching in with the first punch application, and the mobile phone connected to XX Company among the at least two second punch data as the same punch data group, and use the punch data in city A, punching in with the first punch application, and the mobile phone connected to YY Company among the at least two second punch data as the same punch data group.

[0205] For S8053, the cloud service performs data screening on each punch-in data group to obtain a target punch-in data group.

[0206] Specifically, the cloud service can delete the punch-in data in the punch-in data group that does not meet the preset conditions to obtain a target punch-in data group. Among them, the preset conditions are used to screen the punch-in data in the punch-in data group so that all the punch-in data in the punch-in data group meet the preset conditions.

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

[0208] (1) The target network is named after the company name. For example, if the WLAN name is XX Company, the cloud service can determine the network corresponding to the XX Company as the target network. Another example is that if the WLAN name is a number (such as 1234), a non-company-named text (such as Conference Room A), or a special symbol (such as!!!!), the cloud service can determine that the network corresponding to the WLAN name is not the target network. It can be understood that in this embodiment, the cloud service deletes the network named after a non-company name, which can simplify the subsequent data clustering process, reduce the waste of computing resources caused by excessive punch-in data, and thus improve the accuracy of determining the clustering result.

[0209] (2) The punch-in time corresponding to the second punch-in data is a working day time. It can be understood that if the punch-in time is a non-working day time, it means that the user corresponding to the punch-in data may be working overtime. Therefore, in order to avoid affecting the generation of subsequent cloud punch-in units due to individual overtime events, the cloud service can delete the punch-in data with a non-working day punch-in time to improve the accuracy of determining the cloud punch-in unit. Among them, non-working days include Saturdays, Sundays, and holidays.

[0210] (3) The punch-in distance between the punch-in locations of two second punch-in data is less than the preset distance. Among them, the punch-in distance can be determined according to the unit feature table, and the unit feature table includes the longitude and latitude information and the punch-in radius of each second punch-in data in the same punch-in data group. It can be understood that the punch-in distance between different second punch-in data in the same punch-in data group should be less than the preset distance. If there is any punch-in distance greater than the preset distance, it means that there is a situation where the punch-in locations are far apart in the punch-in data group, that is, the second punch-in data corresponding to the punch-in location does not belong to the punch-in data group. Therefore, the cloud service can delete the second punch-in data that does not belong to the same punch-in data group to ensure that the punch-in distances between the second punch-in data in the same punch-in data group are all less than the preset distance.

[0211] Exemplarily, the unit feature table includes clock-in data 1, clock-in data 2, and clock-in data 3. The clock-in distance 12 between the clock-in positions corresponding to the clock-in data 1 and the clock-in data 2 is 10 meters. The clock-in distance 13 between the clock-in positions corresponding to the clock-in data 1 and the clock-in data 3 is 100 meters. The clock-in distance 23 between the clock-in positions corresponding to the clock-in data 2 and the clock-in data 3 is 1000 meters. If the preset distance is 700 meters, the cloud service can determine that the clock-in distance 23 is greater than the preset distance. Since the distance 12 is 10 meters, that is to say, the clock-in distance 12 between the clock-in positions corresponding to the clock-in data 1 and the clock-in data 2 is relatively short. Therefore, the cloud service can determine that the clock-in data 1 and the clock-in data 2 belong to the same clock-in data group. Therefore, the cloud service can delete the clock-in data 3 from the unit feature table. That is, the unit feature table only includes the clock-in data 1 and the clock-in data 2.

[0212] It should be noted that the above preset conditions may include a combination of one or more of the above. If the above preset conditions include multiple items, the mobile phone can make judgments simultaneously or in a preset execution order, which is not specifically limited. For example, the mobile phone can sequentially determine whether the above target network is a network named after the company name, whether the clock-in time corresponding to the second clock-in data is a weekday time, and whether the clock-in distance between the clock-in positions in the two second clock-in data is less than the preset distance. In this way, unnecessary resource losses can be reduced and the utilization rate of computing resources can be improved.

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

[0214] Specifically, the cloud service can use a second target clustering algorithm to cluster the second clock-in data in the target clock-in data group to obtain a cloud clock-in unit. Exemplarily, the second target clustering algorithm can be the density-Based spatial clustering of applications with noise (DBSCAN).

[0215] In some embodiments, the cloud service can cluster the second clock-in data in the target clock-in data group according to preset parameters. Among them, the preset parameters are (eps, points), the eps is the preset distance (such as 500 meters), and the points is the center point (such as 1). That is to say, the cluster radius corresponding to a cluster center is the preset distance.

[0216] Exemplarily, as shown in Table 1, the city code corresponding to the cloud clock-in unit number "000374fc-1652-3853-b357-dba195da3ba9" is "0546", the clock-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,longitude:118.496406,opt:2,radius:868.0\"}]".

[0217] Table 1

[0218]

[0219] In some embodiments, the cloud service can receive second clock-in data sent by different mobile phones within a preset time period, and cluster the received second clock-in data to obtain a second clustering result. In this way, the number of times of sending clock-in data by mobile phones is reduced, which is beneficial to the management and clustering of clock-in data, reduces the situation of chaotic reception of the cloud service caused by excessive sending times of clock-in data, and further improves the accuracy of determining the second clustering result. Among them, the preset time period can be set according to the actual situation. For example, it can be within 1:00 - 2:00, or it can be 11:00 - 12:00, etc., and no specific limitation is made.

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

[0221] Specifically, after obtaining the above second clustering result, the cloud service can select at least one corresponding target cloud clock-in unit from the second clustering result in combination with the user's clock-in information. Among them, the user's clock-in information is generated based on the user's behavior habit data, and the user's behavior habit data includes at least one of the clock-in package name, the target network, the clock-in city, the target longitude and latitude information, and the target clock-in radius.

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

[0223] Exemplarily, such as Figure 13As shown, the process of the cloud service extracting at least one target cloud punching unit may specifically include S8061 to S8068:

[0224] S8061, the cloud service obtains the target longitude and latitude information and the target punching radius in the user punching information.

[0225] Specifically, after obtaining the above second clustering result, the cloud service can obtain the target longitude and latitude information and the target punching radius in the user punching information.

[0226] S8062, the cloud service selects any cloud punching unit from the second clustering result as the first cloud punching unit.

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

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

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

[0230] S8065, the cloud service uses the first cloud punching unit corresponding to the above second punching data as the target cloud punching unit.

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

[0232] It can be understood that since the cloud check-in units in the above-mentioned second clustering result are clustered according to 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. Therefore, if the distance between the longitude and latitude information of any second check-in data in the same cloud check-in unit and the target longitude and latitude information is less than the sum of the check-in radius of this second check-in data and the target check-in radius, it means that the check-in locations corresponding to all the second check-in data in this cloud check-in unit are adjacent to the target longitude and latitude information, that is, all the second check-in data in this cloud check-in unit match the first check-in data of this user. Therefore, the cloud service can use this 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 also the efficiency of unit extraction can be improved, providing a basis for quickly generating a check-in fence subsequently.

[0233] S8066, the cloud service determines whether all the cloud check-in units in the above-mentioned second clustering result have been used as the first cloud check-in units.

[0234] In some embodiments, after determining that the distance between the longitude and latitude information of the second check-in data in the above-mentioned first cloud check-in unit and the target longitude and latitude information is greater than or equal to the sum of the check-in radius of this second check-in data and the target check-in radius, the cloud service can determine whether all the cloud check-in units in the above-mentioned second clustering result have been used as the first cloud check-in units. If all the cloud check-in units in this second clustering result have been used as the first cloud check-in units, it means that all the cloud check-in units in this second clustering result have been judged. Therefore, the cloud service can execute S8067. If not all the cloud check-in units in this second clustering result have been used as the first cloud check-in units, it means that there are still cloud check-in units in this second clustering result that have not been judged. 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 the cloud check-in units in the above-mentioned second clustering result have been used as the 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 above-mentioned first cloud check-in unit from the above-mentioned second clustering result and uses it as the first cloud check-in unit again.

[0238] Specifically, after determining that not all of the cloud check-in units in the second clustering result are used as the 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 as the first cloud check-in unit again, and return to execute the steps of S8063 above until all of the cloud check-in units in the second clustering result are used as the 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 the at least one target cloud check-in unit, the cloud service can send the at least one target cloud check-in unit to the attendance check-in plugin for subsequent generation of check-in fences.

[0241] In some embodiments, the cloud service can send the 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 process of obtaining the at least one target cloud check-in unit and the process of obtaining the first clustering result is not limited. For example, the mobile phone can first execute the steps of S801-S803 above, and then execute the steps of S804-S807 above, or the mobile phone can first execute the steps of S804-S807 above, and then execute the steps of S801-S803 above, or the mobile phone can execute the steps of S801-S803 above and the steps of S804-S807 above simultaneously.

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

[0244] Specifically, when the unit receiving module in the 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 for subsequent generation of check-in fences.

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

[0246] Specifically, when the above-mentioned fence clock-in module receives a fence registration instruction, it can generate at least one piece of clock-in fence data based on the received first clustering result and / or at least one target cloud clock-in unit. Among them, the at least one piece of clock-in fence data is used to generate at least one clock-in fence. It can be understood that the number of the clock-in fences is the same as the number of clock-in locations corresponding to the user holding the mobile phone. That is to say, if the mobile phone often receives the user's clock-in operation at the clock-in positions corresponding to Branch A and Branch B, it means that the user holding the mobile phone often works at Branch A and Branch B, and the mobile phone can generate one clock-in fence corresponding to Branch A and one clock-in fence corresponding to Branch B.

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

[0248] S810, the fence generation module receives a fence registration instruction sent by the attendance clock-in plug-in.

[0249] In some embodiments, the fence registration module in the above-mentioned attendance clock-in plug-in may send a fence registration instruction to the above-mentioned fence generation module to instruct the fence generation module to generate a clock-in fence. Among them, the clock-in fence is used to indicate the clock-in range corresponding to the mobile phone's ability to perform a clock-in operation.

[0250] S811, the fence generation module generates at least one clock-in fence according to the above-mentioned at least one piece of clock-in fence data.

[0251] Specifically, when the above-mentioned fence clock-in module receives a fence registration instruction, it can generate at least one clock-in fence according to the above-mentioned at least one piece of clock-in fence data.

[0252] It should be noted that the steps of S809 and S810 - S811 above may be executed simultaneously. Specifically, when the fence generation module receives a fence registration instruction, it can directly generate the corresponding clock-in fence according to the generated at least one piece of clock-in fence data to improve the generation efficiency of the clock-in fence.

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

[0254] Specifically, after generating the above-mentioned at least one punching fence, the fence generation module can determine whether the current location of the mobile phone is within any of the punching fences. If the current location of the mobile phone is not within the at least one punching fence, it indicates that the user holding the mobile phone is not at work or is on a business trip. Therefore, the fence generation module does not send an information output instruction to the attendance punching plugin to avoid the situation of causing punching troubles to the user due to the display of punching recommendation information on the mobile phone and improve the user experience.

[0255] If the current location of the mobile phone is within any of the punching fences, it indicates that the user holding the mobile phone may have a need to perform a punching operation. The fence generation module can further determine whether the target time is within the preset punching time period. If the target time is within the preset punching time period, it means that the current time is within the working punching time period or the off-work punching time period, that is, the user holding the mobile phone has a need to perform a punching operation. The fence generation module can send an information output instruction to the attendance punching plugin to instruct the attendance punching plugin to output punching recommendation information. It can be understood that the target time is the current time.

[0256] If the above-mentioned target time is not within the above-mentioned preset punching time period, it means that the current time is not within the working punching time period and the off-work punching time period, that is, the user holding the mobile phone does not have a need to perform a punching operation. The fence generation module does not send an information output instruction to the attendance punching plugin to avoid the situation of causing punching troubles to the user due to the display of punching recommendation information on the mobile phone and improve the user experience.

[0257] It can be understood that the above-mentioned preset punching time period can be set according to the working and off-work times of the enterprise. For example, if the working time of the enterprise is 8:00 in the morning, the mobile phone can set the preset punching time period to 7:00 - 8:00 in the morning, or set the preset punching time period to 7:30 - 8:00 in the morning. Another example, if the off-work time of the enterprise is 17:00 in the afternoon, the mobile phone can set the preset punching time period to 17:00 - 18:00 in the afternoon, or set the preset punching time period to 17:00 - 17:30 in the afternoon.

[0258] Among them, the above-mentioned punching recommendation information is used to prompt the user to perform attendance punching. In this embodiment, the punching recommendation information can be displayed in the main interface in the form of a plugin icon (such as Figure 2 the "Attendance Punching" plugin 2A in Figure 3 . In other embodiments, the punching recommendation information can also be displayed in other forms. For example, the punching recommendation information can be displayed in text form. In an example, when the mobile phone is in the locked screen state, the mobile phone can display the punching recommendation information on the locked screen interface. For example, please refer to Figure 3On the (a) interface in [description], a message notification of "You have reached the end of your workday. Please remember to clock in." is displayed to remind the user to clock out. In another example, when the mobile phone is in a non-locked screen state, the mobile phone can display clock-in recommendation information on the current interface in the form of a floating window or a card. For example, please refer to Figure 3 , above the current interface (such as Figure 3 the (b) interface in [description]), a notification message of "Please remember to clock in." is displayed to remind the user to perform attendance clock-in.

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

[0260] Specifically, after the attendance clock-in plugin receives the information output instruction sent by the fence generation module, it can display an attendance clock-in icon. For example, the mobile phone can display Figure 2 the "Attendance Clock-in" plugin 2A in [description] to remind the user to perform attendance clock-in and reduce the occurrence of the user missing the attendance clock-in.

[0261] S814, the attendance clock-in plugin receives the user's click operation on the above-mentioned attendance clock-in icon.

[0262] In some embodiments, after the attendance clock-in plugin displays the above-mentioned attendance clock-in icon, if it detects the user's click operation on the attendance clock-in icon, it indicates that the user has a need to perform attendance clock-in. The attendance clock-in plugin can jump from the main interface corresponding to the displayed attendance clock-in icon to the clock-in interface corresponding to the target clock-in application, that is, execute S815 to display the clock-in interface. Wherein, the target clock-in application is the application program corresponding to the clock-in package name in the above-mentioned user clock-in information, that is, the application program that the user often uses for clock-in.

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

[0264] Specifically, when the attendance clock-in plugin receives the user's click operation on the above-mentioned attendance clock-in icon, the attendance clock-in plugin can display the clock-in interface (or called the first interface) corresponding to the target clock-in application. Exemplarily, as Figure 2 shown, if the "Attendance Clock-in" plugin 2A in the main interface ( Figure 2 the (a) interface in [description]) is clicked by the user, the mobile phone can directly obtain the target clock-in application and display the clock-in interface corresponding to the target clock-in application, that is, display Figure 2 the (b) interface in [description].

[0265] It should be understood that the corresponding steps performed by each module in the above mobile phone can also be performed by other modules in the mobile phone, and no specific limitation is made. For example, the process of the above cloud service extracting at least one target cloud clock-in unit can also be performed by the above attendance clock-in plug-in. Another example is that after the above 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 clock-in plug-in and then having the attendance clock-in plug-in send it to the fence generation module.

[0266] In some embodiments, the present application provides a computer-readable storage medium, including computer instructions, which when running on an electronic device, cause the electronic device to execute the method as described above.

[0267] In some embodiments, the present application provides a computer program product, which when running on an electronic device, causes the electronic device to execute the method as described above.

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

[0269] In several embodiments provided by the present application, it should be understood that the disclosed device and method can be implemented in other ways. For example, the device embodiments described above are only illustrative. For example, the division of the module or unit is only a logical function division. In actual implementation, there may be other division methods. For example, multiple units or components can be combined or integrated into another device, or some features can be ignored or not executed. Another point is that the displayed or discussed coupling or direct coupling or communication connection between each other can be through some interfaces. The indirect coupling or communication connection of the device or unit can be in an electrical, mechanical or other form.

[0270] The unit described as a separated component may or may not be physically separated. The component displayed as a unit may be a physical unit or multiple physical units, that is, it can be located in one place, or it can be distributed to multiple different places. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0271] In addition, in each embodiment of the present application, the functional units may be integrated into one processing unit, or each unit may exist physically alone, or two or more units may be integrated into one unit. The above integrated unit may be implemented in the form of hardware or in the form of a software functional unit.

[0272] If the above integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it may be stored in a readable storage medium. Based on such an understanding, the technical solution of the embodiments of the present application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, may be embodied in the form of a software product. The software product is stored in a storage medium and includes several instructions for causing a device (which may be a single-chip microcomputer, a chip, etc.) or a processor to execute all or part of the steps of the methods described in the embodiments of the present application. The foregoing storage medium includes: various media such as USB flash drives, mobile hard disks, read only memory (ROM), random access memory (RAM), magnetic disks, or optical discs that can store program codes.

[0273] The above content is only the specific implementation manner of the present application, but the protection scope of the present application is not limited thereto. Any changes or substitutions within the technical scope disclosed in the present application should be covered by the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.

Claims

1. A method for generating a clock-in fence, characterized in that, Including: Obtaining at least one local punching unit and multiple cloud punching units; wherein, the at least one local punching unit is obtained by clustering multiple first punching data in a first electronic device, and the multiple cloud punching units are obtained by clustering multiple second punching data in multiple electronic devices, and the multiple first punching data and the multiple second punching data are punching data in a punching application; each first punching data includes a punching radius of a punching and longitude and latitude information of a punching location, and the punching radius is the distance between the punching location and the company; Selecting at least one target cloud punching unit from the multiple cloud punching units, and each target cloud punching unit matches the longitude and latitude information and the punching radius; Generating a punching fence of the first electronic device based on the at least one local punching unit and the at least one target cloud punching unit.

2. The method according to claim 1, wherein The selecting at least one target cloud punching unit from the multiple cloud punching units, and each target cloud punching unit matches the longitude and latitude information and the punching radius, includes: Selecting a target cloud punching unit from the multiple cloud punching units that matches target longitude and latitude information and a target punching radius; Wherein, the target longitude and latitude information is obtained based on multiple longitude and latitude information corresponding to the multiple first punching data, and the target punching radius is obtained based on multiple punching radii corresponding to the multiple first punching data.

3. The method according to claim 2, characterized in that Each second punching data includes a punching radius of a punching and longitude and latitude information, and each cloud punching unit includes at least one second punching data; The selecting a target cloud punching unit from the multiple cloud punching units that matches target longitude and latitude information and a target punching radius, includes: Detecting whether the first cloud punching unit includes second punching data that meets a first condition, and the first cloud punching unit is any one of the at least one cloud punching unit; If the first cloud punching unit includes second punching data that meets the first condition, then the first cloud punching unit is the target cloud punching unit; Wherein, the first condition includes: The distance between the longitude and latitude information of the second punching data and the target longitude and latitude information is less than the sum of the punching radius of the second punching data and the target punching radius.

4. The method according to any one of claims 1 to 3, characterized in that, The generating a punching fence of the first electronic device based on the at least one local punching unit and the at least one target cloud punching unit, includes: Calculating the union of the at least one local punching unit and the at least one target cloud punching unit to obtain the punching fence of the first electronic device.

5. The method according to any one of claims 1-4, characterized in that The obtaining at least one local punching unit includes: Obtaining a historical clustering result; wherein, the historical clustering result includes at least one historical punching unit; Screening new punching data other than the first punching data in the historical clustering result from a local punching data set; wherein, the local punching data set includes multiple first punching data in the first electronic device; Clustering the new punching data on the basis of the historical clustering result to obtain the at least one local punching unit.

6. The method according to any one of claims 1-5, characterized in that, The obtaining of at least one cloud clock-in unit includes: Grouping multiple pieces of second clock-in data in the multiple electronic devices according to a preset category to obtain at least one clock-in data group; wherein, the preset category includes at least one of a clock-in city, a clock-in package name, and a target network. For each clock-in data group, perform data screening on the clock-in data group to obtain a target clock-in data group. Cluster the second clock-in data in the target clock-in data group to obtain the cloud clock-in unit.

7. The method according to claim 6, wherein The performing data screening on the clock-in data group to obtain a target clock-in data group includes: Deleting the second clock-in data in the clock-in data group that does not meet the preset conditions to obtain the target clock-in data group; wherein, the preset conditions include that the target network is a network named after a company name, the clock-in time corresponding to the second clock-in data is a weekday time, and the clock-in distance between the clock-in locations in two pieces of second clock-in data is less than a preset distance.

8. A method for generating a punching fence, characterized in that, Applied to a first electronic device, a clock-in application is installed in the first electronic device, and the method includes: Clustering multiple pieces of first clock-in data in the first electronic device to obtain at least one local clock-in unit; wherein, the multiple pieces of first clock-in data are clock-in data in the clock-in application, and each piece of first clock-in data includes a clock-in radius of a clock-in and longitude and latitude information of the clock-in location, and the clock-in radius is the distance between the clock-in location and the company. Send the multiple pieces of first clock-in data to the server. Receive at least one target cloud clock-in unit sent by the server; wherein each target cloud clock-in unit matches the clock-in radius and the longitude and latitude information. Generate a clock-in fence based on the at least one local clock-in unit and the at least one target cloud clock-in unit. When the first electronic device is within the clock-in fence and within a preset clock-in time period, issue a clock-in prompt.

9. The method according to claim 8, characterized in that, After the clock-in prompt is issued, the method further includes: In response to a trigger operation on the clock-in prompt, display a first interface, and the first interface includes a first control. In response to a trigger operation of the user on the first control, complete the clock-in.

10. The method according to claim 8 or 9, characterized in that There are multiple clock-in fences. The issuing a clock-in prompt when the first electronic device is within the clock-in fence and within a preset clock-in time period includes: When the first electronic device is within any one of the multiple clock-in fences and within the preset clock-in time period, issue the clock-in prompt.

11. A method for generating a clock-in fence, characterized in that, Applied to a server, the method includes: Cluster multiple pieces of second clock-in data in multiple electronic devices to obtain multiple cloud clock-in units; wherein, the multiple pieces of second clock-in data are clock-in data in the clock-in application; the multiple electronic devices include a first electronic device, the multiple pieces of second clock-in data include multiple pieces of first clock-in data in the first electronic device, and each piece of first clock-in data includes a clock-in radius of a clock-in and longitude and latitude information of the clock-in location, and the clock-in radius is the distance between the clock-in location and the company. Select at least one target cloud clock-in unit from the multiple cloud clock-in units, where each target cloud clock-in unit matches the longitude and latitude information and the clock-in radius; Send the at least one target cloud clock-in unit to the first electronic device, where the at least one target cloud clock-in unit is used to cause the first electronic device to generate a clock-in fence for the first electronic device.

12. An electronic device, characterized in that, The electronic 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 a clock-in prompt, the memory is used to store computer program code, and the computer program code includes computer instructions; when the processor executes the computer instructions, the electronic device is caused to execute the clock-in fence generation method according to any one of claims 1 to 7 or the clock-in fence generation method according to any one of claims 8 to 10.

13. A server, characterized in that, The server includes a memory and one or more processors; the memory and the processors are coupled; the memory is used to store computer program code, and the computer program code includes computer instructions; when the processor executes the computer instructions, the server is caused to execute the clock-in fence generation method according to claim 11.

14. A computer-readable storage medium, characterized in that, Includes computer instructions, when the computer instructions run on an electronic device, causing the electronic device to execute the clock-in fence generation method according to any one of claims 1 to 7 or the clock-in fence generation method according to any one of claims 8 to 10 or the clock-in fence generation method according to claim 11.

15. A computer program product, characterized in that, Includes computer instructions, when the computer instructions run on an electronic device, causing the electronic device to execute the clock-in fence generation method according to any one of claims 1 to 7 or the clock-in fence generation method according to any one of claims 8 to 10 or the clock-in fence generation method according to claim 11.

Citation Information

Patent Citations

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

    CA2868660A1

  • Geofence generation method and device

    CN105718465A

  • Triggering method of geo-fence and related electronic equipment

    CN116056003A

  • Method for generating geo-fence, electronic equipment and storage medium

    CN116668951A

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

    US20240005017A1