Device usage management
A system with encrypted, device-to-device communication manages time-based device usage limits, addressing excessive use concerns and ensuring privacy by preventing unauthorized access to usage data.
Patent Information
- Application Number
- JP2025162010
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2018-09-28
- Filing Date
- 2025-09-29
- Publication Date
- 2026-02-10
AI Technical Summary
There is a growing concern about excessive use of computing devices, and users desire to manage and limit their device usage time, particularly for themselves and others, while maintaining privacy and control over usage data.
A system that sets time-based limits on device usage, encrypts data to maintain privacy, and synchronizes usage data across devices without server aggregation, using device-to-device communication protocols, to prevent unauthorized access and enforce usage restrictions.
Effectively manages device usage time, protects user privacy, and ensures that only authorized devices can access usage data, thereby preventing unauthorized access and maintaining control over device usage.
Smart Images

Figure 2026021304000001_ABST
Abstract
Description
[Technical Field]
[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims the benefit of U.S. Provisional Patent Application No. 62 / 668,814, entitled "MANAGING DEVICE USAGE TIME," filed May 8, 2018, and U.S. Provisional Patent Application No. 62 / 679,893, entitled "MANAGING DEVICE USAGE," filed June 3, 2018, each of which is incorporated by reference herein in its entirety and made a part of this U.S. patent application for all purposes.
[0002] [Technical field] TECHNICAL FIELD This specification relates generally to device operation, including managing device usage time. [Background technology]
[0003] As users increasingly spend more time interacting with computing devices, e.g., phones, tablets, computers, etc., there may be growing concerns regarding the appropriate amount of time (e.g., per day) that users should interact with their computing devices, and potential concerns related to excessive computing device use. [Brief explanation of the drawings]
[0004] Certain features of the subject technology are set forth in the appended claims. However, for purposes of explanation, several embodiments of the subject technology are set forth in the following figures.
[0005] [Figure 1] 1 illustrates an exemplary network environment for managing device usage time, according to one or more implementations.
[0006] [Figure 2] 1 illustrates an example device that may implement a system for managing device usage time, according to one or more implementations.
[0007] [Figure 3] 1 illustrates an example architecture of a system for managing personal device usage time, according to one or more implementations.
[0008] [Figure 4] 1 illustrates an example architecture of a system for managing another user's device usage time, according to one or more implementations.
[0009] [Figure 5] 1 illustrates an example architecture of a system for managing personal device usage time based on time-based limits set by another user, according to one or more implementations.
[0010] [Figure 6] 1 illustrates an example architecture of a system for managing device usage time in an enterprise setting, according to one or more implementations.
[0011] [Figure 7] 1 illustrates an example architecture of a system for remote management of components for managing device time usage, according to one or more implementations.
[0012] [Figure 8] 1 illustrates an example process for managing device usage time, according to one or more implementations.
[0013] [Figure 9] 1 illustrates another example process for managing device usage time, according to one or more implementations.
[0014] [Figure 10] 1 illustrates an exemplary electronic system in which aspects of the subject technology may be implemented, according to one or more implementations. DETAILED DESCRIPTION OF THE INVENTION
[0015] The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the subject technology may be practiced. The accompanying drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details to provide a thorough understanding of the subject technology. However, the subject technology is not limited to the specific details set forth herein and may be practiced using one or more other implementation forms. In one or more implementations, structures and components are shown in block diagram form to avoid obscuring the concepts of the subject technology.
[0016] Users may wish to limit and / or manage the amount of time spent personally using their electronic device(s). For example, a user may wish to limit personal usage with respect to a particular application / website, a particular category of application / website, and / or a particular device-level feature (e.g., the device's display, audio, microphone, camera, sensors, accessories, and / or hardware resources). Additionally, a user (e.g., a parent) may wish to limit and manage the amount of time another user (e.g., a child) uses their electronic device(s), with respect to, for example, an application / website, category, and / or device-level feature, and / or define conditions or goals for usage by other users (e.g., one hour of educational reading on the device before access to other applications is allowed).
[0017] The subject system sets time-based limits on personal device use or device use by others (e.g., children). Time-based limits may apply across multiple devices associated with a given user. For example, a first device receives time-based limits on a user's use of an application / website (e.g., a category of applications and / or websites) or device-level functionality. The first device receives encrypted data indicating the user's use of the application, website, or device-level functionality on a second device. The first device determines that the user's use on either or both the first and second devices has violated a time-based limit. The first device provides a notification that the user is violating a time-based limit.
[0018] Additionally, the subject system maintains the privacy of time-based restrictions and usage data, such that only authorized devices (e.g., the user's own device for personal usage management and / or parent / child devices when managing usage for a child) can access the usage data. For example, data indicative of usage and / or restrictions may be end-to-end encrypted when communicated between devices. In the parent-child example, privacy protection may be implemented by sending end-to-end encrypted messages directly between the parent's device and the child's device, the messages indicating the restrictions and usage. Alternatively or additionally, in the parent-child example, the server may store the restriction data and / or usage data in an encrypted manner, and the parent's device and the child's device may access the data based on respective keys that are not accessible to the server.
[0019] In the example of personal usage management, privacy protection may be implemented by storing usage data on a server that is accessible only by an encryption key known to the device and is unavailable to the server. Alternatively or additionally, restrictions and / or personal usage data may be synchronized across multiple devices of a user, for example, using a device-to-device communication protocol such as Bluetooth that bypasses the server.
[0020] Based on these privacy implementations, access to restricted data and / or usage data by unauthorized devices (including, for example, servers) is prevented, whether the usage is managed for others (e.g., children) or personally managed.
[0021] 1 illustrates an exemplary network environment for managing device usage time, according to one or more implementations. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.
[0022] Network environment 100 includes electronic devices 102, 103, and 104 (hereinafter, 102-104), a network 106, and a server 108. Network 106 may, for example, communicatively couple (directly or indirectly) any two or more of electronic devices 102-104 and / or server 108. In one or more implementations, network 106 may include the Internet or a network of interconnected devices communicatively coupled to the Internet. For purposes of illustration, network environment 100 is shown in FIG. 1 as including electronic devices 102-104 and a single server 108. However, network environment 100 may include any number of electronic devices and any number of servers.
[0023] One or more of electronic devices 102-104 may be, for example, a portable computing device, such as a laptop computer, a smartphone, a peripheral device (e.g., a digital camera, headphones), a tablet device, a wearable device such as a smartwatch, a band, or any other suitable device that includes one or more wireless interfaces, such as, for example, WLAN wireless communication, cellular wireless communication, Bluetooth® wireless communication, Zigbee® wireless communication, near field communication (NFC) wireless communication, and / or other wireless communication. In FIG. 1 , by way of example, electronic device 102 is shown as a smartphone, electronic device 103 is shown as a smartwatch, and electronic device 104 is shown as a laptop computer. Each of electronic devices 102-104 may be and / or include all or part of the devices described below with respect to FIG. 2 and / or the electronic systems described below with respect to FIG. 10.
[0024] The server 108 may be and / or include all or part of the electronic system described below with respect to FIG. 10. The server 108 may include one or more servers, such as a cloud of servers, that may be used to facilitate limiting usage of the electronic devices 102-104. A user may use more than one of the electronic devices 102-104, for example, in connection with having a registered user account (e.g., a cloud-based service provider account that provides usage management) and being logged into that user account on more than one of the electronic devices 102-104. The server 108 may store encrypted data that may be accessed via a key by each of the user's devices to limit and / or manage personal device usage time.
[0025] In another example, a first user (e.g., a parent using electronic device 104) can limit and / or manage device usage time for a second user (e.g., a child using one or more of electronic devices 102-103). Corresponding time limits and data usage information may be communicated between electronic devices 102-104 in a private manner. For example, this information may be stored on server 108 as encrypted data accessible by electronic devices 102-104 via a key. Alternatively or additionally, such information may be transmitted directly between electronic devices 102-104 using a message forwarding system, such that the information is not stored on server 108.
[0026] For purposes of explanation, a single server 108 is shown and described with respect to various operations, such as storing encrypted data related to time-based restrictions and / or data usage, etc. However, these and other operations described herein may be performed by one or more servers, for example, in one or more different data centers, and each different operation may be performed by the same server or different servers.
[0027] FIG. 2 illustrates an exemplary device that may implement a system for managing device usage time, according to one or more implementations. For example, device 200 of FIG. 2 may correspond to any of electronic devices 102-104 of FIG. 1. However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.
[0028] Device 200 may include a host processor 202, a memory 204, and a communications interface 206. Host processor 202 may include suitable logic, circuitry, and / or code that enables it to process data and / or control the operation of device 200. In this regard, host processor 202 may be capable of providing control signals to various other components of device 200. Host processor 202 may also control data transfer between various portions of device 200. Additionally, host processor 202 may enable the implementation of an operating system or otherwise execute code to manage the operation of device 200. In the subject systems, host processor 202 may implement a software architecture for managing device usage time, as further described below in connection with FIGS. 3-7.
[0029] The memory 204 may include appropriate logic, circuitry, and / or code that enables storage of various types of information, such as received data, generated data, code, and / or configuration information. The memory 204 may include, for example, random access memory (RAM), read-only memory (ROM), flash, and / or magnetic storage. In one or more implementations, the memory 204 may store an application for managing personal device usage time and / or an application for managing another user's (e.g., a child's) device usage time.
[0030] The communication interface 206 may include suitable logic, circuitry, and / or code that enables wired or wireless communication, such as between any of the electronic devices 102-104 and the server 108 over the network 106. The communication interface 206 may include, for example, one or more of a Bluetooth communication interface, a cellular interface, an NFC interface, a Zigbee communication interface, a WLAN communication interface, a USB communication interface, or generally any communication interface.
[0031] In one or more implementations, one or more of the host processor 202, memory 204, communication interface 206, and / or one or more portions thereof may be implemented in software (e.g., subroutines and code), in hardware (e.g., an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gate logic, discrete hardware components, or any other suitable device), and / or a combination of both.
[0032] FIG. 3 illustrates an exemplary architecture 300 of a system for managing personal device usage time, according to one or more implementations. For example, architecture 300, including its various components 302-334, can be implemented by one or more software modules executing on host processor 202 of electronic device 102 (or, for example, on any of electronic devices 102-103). In another example, architecture 300 can be implemented by one or more software modules implemented by custom hardware (e.g., one or more coprocessors). However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.
[0033] The architecture 300 includes a database 320 having a usage database 322 and a configuration database 326. The usage database 322 may store usage data corresponding to a user's time of use of applications, websites, categories of applications and / or websites, and / or device-level features of the electronic device 102. The displayed applications, websites, categories of applications and / or websites, and / or device-level features may be pre-selected by the user (e.g., when the user specifies which applications, websites, categories of applications and / or websites, and / or device-level features to display). For example, the displayed applications, websites, categories of applications and / or websites, and / or device-level features may correspond to registered user account(s) (e.g., cloud-based service provider accounts that manage usage) or may be pre-selected by the user based on different categories associated with the user account(s) (e.g., work, personal). Alternatively, all applications, websites, categories of applications and / or websites, and / or device-level features associated with usage may be displayed.
[0034] The configuration database 326 can store time-based limits (e.g., quotas and / or time limits) set by a user of the electronic device 102 (e.g., in association with a registered user account) for one or more applications, websites, categories of applications and / or websites, and / or device-level features. In one or more implementations, the database 320 includes a cloud mirroring component 324 that can be used to synchronize usage times and time-based limits across multiple devices (e.g., electronic devices 102-103) associated with a user.
[0035] The personal configuration editor 318 may provide a user interface for setting and / or adjusting time-based limits. The user interface provided by the personal configuration editor 318 may include user interface elements for setting respective (e.g., different) time-based limits for applications, websites, categories (e.g., of applications and / or websites), and / or device-level features.
[0036] In this regard, time-based restrictions may correspond to a quota, where the user specifies, via a user interface, a certain amount of time that usage is permitted. The user's usage time is applied against the quota to determine when the quota is reached. Alternatively or additionally, time-based restrictions may correspond to a time limit, where the user specifies, via a user interface, periods of time during which personal usage is permitted and prohibited. Examples of time-based restrictions include, but are not limited to, daily restrictions (e.g., limiting usage from 10:00 PM to 2:00 PM every day), weekly restrictions (e.g., limiting usage for an entire specific day(s) of the week or for a specified time), monthly restrictions (e.g., limiting usage for an entire specific day(s) of the month or for a specified time), etc. Additionally, time-based restrictions may be set on a recurring or single occurrence basis.
[0037] Additionally, limits may be quantity-based (e.g., as opposed to a predetermined amount of time). For example, limits may specify a number of times for a particular application, website, category, and / or device-level function. In another example, limits may be set to specify a number of times a particular action related to an application, website, category, and / or device-level function may be performed (e.g., a predetermined number of times to receive a notification, send a message, pick up a device, etc.).
[0038] In one or more implementations, additional restrictions may be based on the geographic location of the electronic device. For example, restrictions on certain device-level features (e.g., camera, microphone) may be specified based on geofencing to predefined locations (e.g., museums, movie theaters). Geography-based restrictions may also be specified for applications, websites, and / or categories (e.g., social networking in public parks). In one or more implementations, geography-based restrictions may be specified with respect to locations associated with the user (e.g., work, school) based on information local to the user's device (e.g., contact address information). However, the identity and / or association of those locations is not provided to or otherwise shared with a server (e.g., server 108) to protect the user's privacy.
[0039] Additionally, restrictions may be specified, for example, with respect to environmental conditions associated with the device. For example, a user may choose to set a restriction on disabling network activity (e.g., connecting to the Internet for applications and / or websites) when a WiFi connection is unavailable (e.g., indicating the device will be required to use cellular data for network-based functionality). In another example, a user may have restrictions specified to disable or otherwise adjust device-level functionality (e.g., disable wireless file transfers or limit file transfers to contacts) when the electronic device 102 detects nearby devices (e.g., via near-field communication, Bluetooth) that are not known (e.g., not the user's contacts). In another example, a user may specify that device use be disabled or otherwise limited based on the device's power state (e.g., low battery, plugged in, or not plugged in).
[0040] Additionally, a user may specify contact-based restrictions for certain of the user's contacts (e.g., for personal management) or certain of another user's contacts (e.g., for child management). For example, a user may specify not to communicate with certain contacts (e.g., for either personal management or child management) or may encourage communication with certain contacts (e.g., as a goal / condition before allowing certain applications, websites, categories, and / or device-level features).
[0041] In one or more implementations, various types of restrictions described above can be combined to form a composite restriction. For example, any two or more of the restrictions (e.g., time, amount, geographic location, device environment / conditions, and / or contacts) can be used to form a composite restriction based on the respective restriction(s) of each restriction type. For example, a user can specify a composite restriction to not communicate with a particular contact based on a time-based time limit (e.g., no communication with person X between 10:00 PM and 2:00 AM). In another example, a user may specify a composite restriction that prohibits social networking on Sundays between 10:00 AM and 2:00 PM if geofenced in a public park.
[0042] Various restrictions that may be specified by a user (e.g., restrictions based on time, amount, geographic location, device environment / conditions, contacts), and any usage corresponding to those restrictions, may be synchronized in an end-to-end encrypted manner across multiple devices of the user and / or family members (e.g., for child-based restrictions), as described herein. In this manner, restrictions and / or usage data are accessible only by devices associated with the user (e.g., and / or children) and not by a server (e.g., server 1018), thereby protecting the user's privacy.
[0043] The user interface provided by personal configuration editor 318 allows a user to set time-based restrictions (e.g., quotas and / or time limits) for particular applications, websites, categories of applications and / or websites, and / or device-level features. With respect to applications and / or websites, a user can specify respective time-based restrictions for different applications and / or websites. For example, a user can specify a two-hour quota for a first social networking application and / or define a time limit (e.g., no use between 11:00 PM and 5:00 AM) for a first news website. In one or more implementations, if a time-based restriction is set for a particular application (e.g., a first social networking application), architecture 300 can automatically apply the same time-based restriction to a website version of the application and / or an extended application version of the application. Similarly, a time-based restriction for a particular website can automatically apply to an application version and / or an extended application version of the website. In doing so, architecture 300 can determine that a website (e.g., a domain hosting a website) corresponds to the application and / or extension. Additionally, although websites are described herein with respect to managing device time, limiting website usage, and setting time-based restrictions, such management, restrictions, and time-based settings may also apply to the domain hosting the website.
[0044] With respect to categories, the user interface provided by the personal configuration editor 318 allows a user to specify time-based restrictions (e.g., quotas or time limits) for categories of applications and / or websites. Categories correspond to logical groupings of applications and / or websites. Examples of categories include, but are not limited to, books, business, catalogs, education, entertainment, finance, food & drink, games, health & fitness, lifestyle, medical, music, navigation, news, photos & videos, productivity, reference, social networking, sports, travel, utilities, and weather (e.g., in one or more geographic regions). In this manner, a user can specify a time-based quota and / or a time-based time limit for a particular category, e.g., social networking. The time-based quota or time limit may apply to applications, websites, and / or extension applications (and combinations thereof) that are categorized as social networking applications.
[0045] In addition to the above-mentioned categories, applications and / or websites may be categorized based on one or more broad topics associated with a user, such topics loosely correlated with the user's interests, for example, without identifying the user. Thus, a user may specify (e.g., via a user interface provided by personal configuration editor 318) a time-based quota and / or time limit for a particular topic, such as sports. The time-based quota or time limit may apply to content within applications, websites, and / or extended applications (and combinations thereof) categorized as sports.
[0046] In one or more implementations, the categorization of an application and / or website may be based on default information provided by the application / website developer (e.g., as part of the application installation or as part of default website information). Alternatively or additionally, the categorization of an application and / or website may be specified by the user (e.g., user categorization of applications on the device, user-defined bookmarks).
[0047] The user interface provided by the personal configuration editor 318 may further enable a user to specify time-based restrictions (e.g., quotas or time limits) for device-level features. For example, the device-level features may relate to one or more of overall device usage and / or use of specific device features (e.g., display, audio, microphone, camera, sensors, accessories, and / or hardware resources). In this manner, a user may specify a time-based quota for a specific device-level feature, e.g., total audio time (e.g., three hours per day) or an audio-based time limit (e.g., no audio after 11 PM). Thus, a time-based quota and / or time limit may be applied to audio output. In addition to a quota or time limit, the user interface may limit the number of times content (e.g., audio or music video) is consumed. Additionally, different limits may be set for different hardware components (e.g., one hour for earphones and two hours for phone speakers).
[0048] A device-level framework may be used to implement time-based restrictions on device-level features. For example, a module may be implemented for each application that provides permission to use a corresponding device-level feature (e.g., audio, video). In this regard, the module may provide device-level features based on a restricted usage range. For example, an audio module may define output levels (e.g., maximum and minimum volume levels) rather than simply turning audio on / off when a time-based limit is reached based on usage time. In one or more implementations, device-level features may be grouped with applications and / or websites (e.g., setting a time-based limit on video / audio features for a music application) such that time-based restrictions and usage of the device-level features are based on the respective application and / or website.
[0049] After a user sets time-based limits via the user interface, those time-based limits may be written to configuration database 326. Additionally, personal configuration editor 318 may access configuration database 326 to display the time-based limits currently set for the user and / or update configuration database 326 based on adjustments to the time-based limits entered by the user via the user interface.
[0050] The architecture 300 further includes a personal usage viewer 316 coupled to the usage management module 328 and which may provide a user interface for viewing usage time. For example, the user interface provided by the personal usage viewer 316 may show overall device usage time, respective usage time for one or more of application(s) (e.g., per application), website (e.g., per website), device-level function (e.g., per function), and / or application / website category (e.g., per category). The user interface provided by the personal usage viewer 316 may display usage against respective time-based limits (e.g., based on the configuration database 326).
[0051] For example, usage time for applications, websites, device-level features, and / or categories may be displayed (e.g., in graphical and / or textual form) as a percentage of usage against a time-based quota. In one or more implementations, the user interface provided by the personal usage viewer 316 may also display summary information such as, but not limited to, applications, websites, and / or categories ranked by usage time (e.g., 3 hours for social network application A, 2 hours for website B). Thus, a user can recognize which applications and categories they use the most, and the user can set time-based limits accordingly.
[0052] As the user continues to use the electronic device 102 (e.g., by using applications, websites, and / or device-level features), the usage time is updated in the database 320 (e.g., as part of the usage database 322), and the user interface provided by the personal usage viewer 316 may change to show the updated usage time. In one or more implementations, usage time is based on the time the respective application or website is in the foreground on the electronic device. Furthermore, usage time may be determined based on whether the user is interacting with the application / web content or whether the user is passively consuming the content. For example, the subject system may determine that usage time (e.g., counting against a quota) does not apply to the passive consumption of a game (e.g., when the game is paused and / or the user is not interacting with the game) or the passive consumption of a social network (e.g., when there is no user interaction, but the social network is still in the foreground). However, usage time may apply to the passive consumption of media content (e.g., video or music content that may not typically require user interaction to be consumed).
[0053] The user interface provided by the personal usage viewer 316 may be displayed as part of or separate from the user interface provided by the personal configuration editor 318. Thus, the user interface(s) provided by the personal usage viewer 316 and the personal configuration editor 318 enable a user to set time-based limits (e.g., for categories, applications, websites, and / or device-level features), view current usage time against those time-based limits, modify time-based limits, and otherwise manage their usage time.
[0054] The architecture 300 further includes a personal organization controller 302, a device management module 330, a usage tracking module 332, a usage monitoring module 334, and a usage management module 328, which may work in conjunction with one another to track usage time (e.g., across multiple devices) against time-based limits set by the user.
[0055] In one or more implementations, the configuration data persistence module 312 can access the configuration database 326 to obtain configuration data corresponding to the time-based restrictions. The configuration data persistence module 312 may pass the configuration data through the server conduit 310, the internal transport 308, the client conduit 306, and the configuration source module 304. The configuration source module 304 can then pass rules (e.g., declarations, commands) based on the configuration data to the device management module 330. Thus, the personal organization controller 302 is configured to detect changes made to the time-based restrictions (e.g., via the configuration data persistence module 312) and communicate these detected changes to the device management module 330.
[0056] In addition to receiving time-based restrictions, the device management module 330 may be configured to access usage data across a user's multiple devices. In this regard, the usage monitoring module 334 may be configured to synchronize user activity data across multiple devices without aggregating user activity on a server (e.g., server 108). In this manner, a user's privacy may be maintained while providing the user with the benefit of having their previous activity on any of their electronic devices.
[0057] The architecture 300 maintains time-based restrictions and privacy of usage data so that only authorized devices (e.g., electronic devices 102-103) can access the usage data. For example, data indicative of usage and / or restrictions may be end-to-end encrypted when communicated between electronic devices 102-103. For example, privacy can be implemented by storing usage data on a server (e.g., server 108), where the usage data is accessible only by devices equipped with an encryption key, e.g., a key that is not available to the server. Alternatively or additionally, restrictions and / or personal usage data may be synchronized across a user's multiple devices using a device-to-device communication protocol. Based on these privacy implementations, access to restriction data and / or usage data by unauthorized devices (including, e.g., server 108) can be prevented.
[0058] In one or more implementations, the usage tracking module 332 may implement device usage de-duplication. The usage tracking module 332 may receive synchronized usage data from the usage monitoring module 334 and aggregate (e.g., de-dupe) that data with any local usage data. In this regard, if a user uses two devices (e.g., associated with a registered user account) simultaneously, the usage tracking module 332 may perform de-duplication so that concurrent usage time across multiple devices is not counted twice. Concurrent usage may be detected, for example, based on timestamp data of when each application is foreground on each electronic device. With respect to websites, domain usage timestamp data may be used to determine when the website was accessed.
[0059] The usage tracking module 332 may determine that simultaneous use of the same application (e.g., or category) across different devices should not be counted repeatedly (e.g., double) against the time-based quota. However, if each device uses a different application (e.g., or category), the budget may be fully applied to the respective time-based limit for each application / category. If a time-based limit is set for overall device usage in addition to a specific application-based limit, deduplication may not double-count usage of separate devices. In this way, if a user uses multiple different applications across multiple devices for 24 consecutive hours, this may be determined by the subject system as 24 hours against overall device usage, while the total aggregate time for each individual application may exceed 24 hours.
[0060] In one or more implementations, de-duplication may be implemented at the application level and / or category level. For example, if a user is simultaneously accessing a first social networking application on electronic device 102 and a second social networking application on electronic device 103, usage tracking module 332 may determine that use of different applications within the same social networking category should not be double-counted against the social networking category's time-based quota.
[0061] The timing of synchronization of the user device(s) may be based on a synchronization policy. For example, if a user is associated with only a single electronic device (e.g., electronic device 102), the synchronization policy may specify that synchronization should occur less frequently (e.g., once a week or less) or not at all. If a user is associated with multiple electronic devices (e.g., electronic devices 102-103), the synchronization policy may specify that synchronization should occur more frequently (e.g., once an hour). If a user is associated with multiple electronic devices and has set time-based limits on usage time, the synchronization policy may specify that synchronization should occur more frequently (e.g., once every 30 minutes). Additionally, if the user's usage time approaches the time-based limit (e.g., the difference between the aggregate usage time and the time-based quota falls below a default value), the synchronization policy may specify that synchronization should occur even more frequently (e.g., once every 10 minutes). Additionally, if the user is determined to be accessing the user interface(s) provided by the personal usage viewer 316 and / or personal configuration editor 318 (e.g., indicating that the user is viewing usage and / or adjusting time-based limits), the synchronization policy may specify that an immediate synchronization should occur or otherwise synchronize as soon as the device(s) become available to synchronize.
[0062] As described above, synchronization of usage time among a user's multiple devices can be achieved by storing encrypted data representing usage time on a server, with the multiple devices having respective keys for accessing the encrypted data, and the respective keys not being accessible to the server. Alternatively or additionally, synchronization policies in some cases can specify inter-device synchronization among multiple devices.
[0063] For example, if a user's usage time approaches a time-based limit (e.g., based on meeting a predetermined difference between two values), the synchronization policy may specify to perform inter-device synchronization with any nearby, already-awake devices (e.g., electronic device 103). For example, the inter-device synchronization may be performed using protocols for nearby communication, including, but not limited to, Bluetooth, near field communication (NFC), Wi-Fi, etc. However, the synchronization policy may not necessarily provide for waking up nearby devices that are not awake.
[0064] On the other hand, if the user is accessing the user interface(s) provided by the personal usage viewer 316 and / or personal configuration editor 318 on the electronic device 102 (as determined, for example, to indicate that the user is currently viewing usage and / or adjusting time-based limits), the synchronization policy may specify to wake up all nearby devices associated with the user and perform an inter-device synchronization with those devices. In one or more implementations, inter-device synchronization may be associated with lower power usage and / or lower latency relative to server-based synchronization. Additionally, even if inter-device synchronization is performed (e.g., every 10 minutes), the synchronization policy may still specify a corresponding server-based synchronization to be performed (e.g., every hour).
[0065] With respect to monitoring user usage time, the device management module 330 can provide usage time-related status, event, or message data to the configuration source module 304 (e.g., associated with a registered user account). The configuration source module 304 may pass this data to the client conduit 306, the internal transporter 308, the server conduit 310, and the usage data persistence module 314. The usage data persistence module 314 can store data record(s) indicating the user's respective usage time(s) for applications, websites, categories, and / or device-level features and store these records in the usage database 322. In this manner, usage data can be maintained across a user's multiple devices. The user can view usage time information, for example, by invoking interface(s) provided by the personal organization controller 302 and the personal configuration editor 318.
[0066] In one or more implementations, client conduit 306, internal forwarder 308, and server conduit 310 can be configured to handle different sources of usage data (e.g., personal usage as described with respect to architecture 300, another user's data as described below with respect to FIGS. 4-5, and / or enterprise usage data as described below with respect to FIG. 6). For example, client conduit 306, internal forwarder 308, and server conduit 310 can provide scaling and flexibility with respect to different sources of usage data. Different sources of data are further described below with respect to FIG. 7.
[0067] Additionally, the device management module 330, in cooperation with the usage tracking module 332, may be configured to detect when a violation of a time-based restriction occurs. As described above, the device management module 330 and the usage tracking module 332 may have access to aggregated (deduplicated) usage data for a user's multiple devices and may also have access to time-based restrictions (e.g., received from the configuration source module 304). The device management module 330 and the usage tracking module 332 are configured to apply time-based restrictions based on aggregated usage time to detect when a violation of a time-based restriction occurs taking into account the aggregated usage time. For example, a violation may be detected if the usage time exceeds a quota or if the usage time is not within a time limit. If a violation is detected, the device management module 330 may facilitate providing notification of the violation and / or prohibit further use of the application, website, category, or device-level feature.
[0068] With regard to notifications, the device management module 330 may provide the electronic device 102 with a display notification indicating that the personal usage time for the respective application, website, or category has been reached. The notification may include an interface element to direct the user to a user interface provided by the personal configuration editor 318. In this manner, the user can modify the time-based limit in response to the notification, for example, by increasing the quota or adjusting the time range of the time limit.
[0069] In response to a violation, the device management module 330 can further prevent the user from accessing the respective application (or extension application), website, category, and / or device-level function. For example, the device management module 330 can block access to the corresponding application (or extension), website, or device-level function. In doing so, the device management module 330 can display an icon (e.g., an overlay such as a shield icon) that visually indicates that access is not permitted. In one or more implementations, the block and / or icon may be implemented for multiple entry points to the application or website (e.g., a shield overlay on an application launch interface, a URL launch interface, an extension launch interface). In this manner, the icon (e.g., a shield) can track the application, website, category, and / or device-level function across the operating systems of the user's multiple devices. In one or more implementations, the icon may be displayed along with a user interface element for unblocking the application, website, category, and / or device-level function (e.g., by directing the user to a user interface provided by the personal configuration editor 318).
[0070] In one or more implementations, exceptions to blocking may apply to a default set of applications, websites, and / or time-based restrictions, even if they violate the time-based restrictions. For example, if a user specifies a time-based restriction on overall device usage, applications in the default set (e.g., system applications such as phone, alarm clock, maps, etc.) may remain available to the user and not be blocked. The default set of applications may be user-selectable, allowing the user to specify which applications (e.g., associated with a category), websites, and / or device-level functions should not be blocked, even if the time of use violates the corresponding time-based restriction.
[0071] In one or more implementations, the usage monitoring module 334 can detect user deletion of an application. The electronic device 102 can remove local data identifying the application (e.g., remove application ID, trigger event information, etc.). However, the personal organization controller 302 may modify or otherwise maintain a record of usage time (e.g., interval / duration) for categories corresponding to the application.
[0072] Alternatively or additionally, the usage monitoring module 334 may detect a user deletion of browser history corresponding to a website. The electronic device 102 may remove local data identifying the browser history corresponding to the website (e.g., remove domain name data). However, the personal organization controller 302 may revise or otherwise maintain a record of usage times (e.g., intervals / durations) of categories corresponding to the website.
[0073] In one or more implementations, a particular device can be associated with multiple users. For example, an electronic device 104 (e.g., exemplified as a laptop) may be shared by multiple users, each with their own user account (e.g., a cloud-based service provider account that manages usage). Thus, when a first user logs into their respective cloud-based account using the electronic device 104, the architecture 300 can manage personal device usage time for the first user. Furthermore, when a second user subsequently logs into their cloud-based account using the electronic device 104, the architecture 300 can manage personal device usage time for the second user.
[0074] Alternatively or additionally, the electronic device 104 may perform local management of personal device usage time, for example, when a user does not use the electronic device 104 to log in to their cloud-based account. For example, the electronic device 104 may implement software configured to manage one or more local user accounts for local management of personal usage time. Thus, when a third user simply uses the device (e.g., by logging in to their cloud-based account rather than just logging in to the device), local limits may be set for the device. For example, limits may be set for applications, application categories, device-level features, and general web browser usage for local usage on the electronic device 104 (e.g., not across multiple devices and / or specific online usage). In one or more implementations, the software for local usage management allows parents to set limits for their children based on user accounts / profiles local to the electronic device 104 (e.g., when a child logs in to the device but not their cloud-based account). Usage data may be tracked locally for local limits. Additionally, corresponding notifications, usage statistics, interfaces, application blocking, category and / or device level features, budget increase requests, etc. may apply as described herein, but may be limited to local device usage.
[0075] In one or more implementations, one or more of the components 302-334 of the architecture 300 are implemented via software instructions stored in memory 204 that, when executed by the host processor 202, cause the host processor 202 to perform a particular function(s).
[0076] In one or more implementations, one or more of the components 302-334 of architecture 300 may be implemented in software (e.g., subroutines and code), hardware (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gate logic, discrete hardware components, or any other suitable devices), and / or a combination of both. In one or more implementations, some or all of the illustrated components may share hardware and / or circuitry, and / or one or more of the illustrated components may utilize dedicated hardware and / or circuitry. This disclosure further describes additional features and functionality of these modules in accordance with various aspects of the subject technology.
[0077] FIG. 4 illustrates an exemplary architecture of a system for managing device usage time of another user, according to one or more implementations. For example, architecture 400, including its various components 402-430, can be implemented by one or more software modules executing on host processor 202 of electronic device 104 to manage device usage time of another user for electronic devices 102-103. In another example, architecture 400 can be implemented by one or more software modules implemented by custom hardware (e.g., one or more coprocessors). However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.
[0078] In one or more implementations, at least a portion of architecture 400 may be implemented on a parent electronic device 104 to manage device usage of a child electronic device 102-103. Architecture 400 is not limited to child usage of a parent-managed device and may be applied to other scenarios in which a user manages device usage of another user. Thus, although architecture 400 is described with respect to a "parent" user (e.g., of electronic device 104) and a "child" user (e.g., of electronic device 102-103), the architecture may generally apply to any two users.
[0079] In one or more implementations, the parent-child relationship may be predefined, for example, by a system that defines the roles of the parent(s) and child(ren). The roles may be defined based on configuration data set by a parent user. For example, the parent and child roles may be defined by the registered user accounts of the parent(s) and child(ren), each user account indicating a parent-child relationship. In this regard, devices associated with the registered accounts of the parent(s) and / or child(ren) (e.g., based on logins to the registered accounts) may be grouped and determined as a family unit (e.g., as part of a circle of trust or a trusted group of devices). As described herein, devices may have access to encrypted usage data and / or time-based restriction data via keys accessible only by trusted devices. In one or more implementations, if a trusted device is removed from the group, the key(s) may be regenerated for the remaining trusted devices.
[0080] The architecture 400 includes a database 422 having a usage database 424 and a configuration database 428. The usage database 424 may store usage data corresponding to usage time by child users of the electronic devices 102-103 for applications, websites, categories of applications and / or websites, and / or device-level features. Additionally, the configuration database 428 may store time-based restrictions (e.g., quotas and / or time limits) set by a parent user of the electronic device 104. The time-based restrictions apply to child users of the electronic devices 102-103 for each application, website, category of application and / or website, and / or device-level feature. In one or more implementations, the database 422 includes a cloud mirroring component 426 that may be used in synchronizing usage time and time-based restrictions across multiple devices associated with both parent and child (e.g., the electronic devices 102-104).
[0081] The family configuration editor 420 may provide a user interface for setting and / or adjusting time-based restrictions. The user interface provided by the family configuration editor 420 may include user interface elements for setting each (e.g., different) time-based restriction. The time-based restriction may correspond to, for example, quota(s) or time limit(s), as described above with respect to FIG. 3 , but for child users. In addition, the family configuration editor 420 may provide other types of restrictions (e.g., time-, quantity-, geographic-location-, device environment / condition-, contact-based restrictions), as well as combined restrictions, as described above with respect to FIG. 3 , but for child users. In addition, the family configuration editor 420 may include user interface elements for setting (e.g., time-based) restrictions on user-selected applications, websites, categories (e.g., of applications and / or websites), and / or device-level features, as described above with respect to FIG. 3 , but for child users. In one or more implementations, the user interface provided by the family configuration editor 420 may include user interface elements for setting goals that are aligned with time-based restrictions, such that a child user may be required to complete a first time-based goal (e.g., one hour of educational reading on the device) before being allowed to access other applications, websites, categories, and / or device-level features.
[0082] The architecture 400 further includes an other usage viewer 418 that communicates with the usage management module 430 and may provide a user interface for a parent to view usage time by a child user. For example, the user interface provided by the other usage viewer 418 may show overall device usage time, respective usage time for one or more of application(s) (e.g., per application), website (e.g., per website), device-level feature (e.g., per feature), and / or application / website category (e.g., per category), as described above with respect to FIG. 3, but for the child user. In addition, the user interface provided by the other usage viewer 418 may display usage against respective time-based limits (e.g., based on the configuration database 428), as described above with respect to FIG. 3, but for the child user.
[0083] Architecture 400 further includes a family organization controller 402, which includes a server conduit 404, a message (“MSG”) system transfer module 408, a cloud channel 410, a configuration data persistence module 412, and a usage data persistence module 406. The configuration data persistence module 412 can access a configuration database 428 to obtain configuration data corresponding to time-based restrictions, for example, as described above with respect to FIG. 3. The usage data persistence module 406 can store data record(s) indicating a child's respective usage time(s) for applications, websites, categories, and / or device-level features, and store those records in a usage database 424, for example, as described above with respect to FIG. 3.
[0084] The MSG system transfer module 408 may correspond to a transfer module configured to communicate usage via messages (e.g., device-to-device messages). Thus, the MSG system transfer module 408 can synchronize child usage data associated with the electronic devices 102-103 and enable parent access via the electronic device 104. Thus, if there are changes in usage time based on usage activity by the child, the MSG system transfer module 408, in conjunction with the child module 416, synchronizes those changes to the parent device (e.g., the electronic device 104). In one or more implementations, the MSG system transfer module 408, in conjunction with the MSG system transfer module 508 (as discussed below with respect to FIG. 5), can send end-to-end encrypted messages between the parent device and the child device.
[0085] Additionally, the MSG system transfer module 408 can coordinate with other parent modules 414 to synchronize those changes to the second parent's other electronic device(s) (not shown). In one or more implementations, the architecture 400 may also be implemented on the second parent's electronic device(s), thereby enabling the second parent to view the child's screen time and make changes to the time-based restrictions for the child. The other parent modules 414 are configured to synchronize changes regarding the child's screen time and / or time-based restrictions (e.g., as set by either parent).
[0086] In one or more implementations, one or more of the components 402-430 of the architecture 400 are implemented via software instructions stored in memory 204 that, when executed by the host processor 202, cause the host processor 202 to perform a particular function(s).
[0087] In one or more implementations, one or more of the components 402-430 of the architecture 400 may be implemented in software (e.g., subroutines and code), and / or hardware (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gate logic, discrete hardware components, or any other suitable devices), and / or a combination of both. In one or more implementations, some or all of the illustrated components may share hardware and / or circuitry, and / or one or more of the illustrated components may utilize dedicated hardware and / or circuitry. This disclosure further describes additional features and functionality of these modules in accordance with various aspects of the subject technology.
[0088] FIG. 5 illustrates an exemplary architecture of a system for managing personal device usage time based on time-based limits set by another user, according to one or more implementations. For example, architecture 500, including its various components 502-544, can be implemented by one or more software modules executing on host processor 202 of electronic device 102 (e.g., or electronic device 103). In another example, architecture 500 can be implemented by one or more software modules implemented by custom hardware (e.g., one or more coprocessors). However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.
[0089] In one or more implementations, at least a portion of architecture 500 may be implemented on a child's electronic device 102 to personally manage device usage time, taking into account any time-based limits set by a parent via electronic device 104, as described above with respect to FIG. 4. However, architecture 500 is not limited to child device usage and may be applied to other scenarios in which a user's usage time is managed by another user. Thus, although architecture 500 is described with respect to a "child" user (e.g., of electronic device 102-103) and a "parent" user (e.g., of electronic device 104), the architecture may be generally applied to any two users.
[0090] The architecture 500 includes a database 530 having a usage database 532 and a configuration database 536. The usage database 532 may store usage data corresponding to usage time by child users of the electronic devices 102-103 for applications, websites, categories of applications and / or websites, and / or device-level features. Additionally, the configuration database 536 may store time-based restrictions (e.g., quotas and / or time limits) set by a parent user of the electronic device 102. The time-based restrictions apply to child users of the electronic devices 102-103 for each application, website, category of application and / or website, and / or device-level feature. In one or more implementations, the database 530 includes a cloud mirroring component 534 that can be used in synchronizing usage time and time-based restrictions across multiple devices (e.g., electronic devices 102-104) associated with both parent and child devices.
[0091] The personal configuration editor 514 may provide a user interface for setting and / or adjusting time-based limits. The user interface provided by the personal configuration editor 514 may include user interface elements for setting each (e.g., different) time-based limit. The time-based limit may correspond to setting a personal quota(s) or time limit(s), for example, as described above with respect to FIG. 3. In addition, the personal configuration editor 514 may provide other types of limits (e.g., limits based on time, amount, geographic location, device environment / condition, contacts), as well as composite limits, for example, as described above with respect to FIG. 3. In addition, the personal configuration editor 514 may include user interface elements for setting personal (e.g., time-based) limits for selected applications, websites, categories (e.g., of applications and / or websites), and / or device-level features, for example, as described above with respect to FIG. 3.
[0092] In this regard, the personal configuration editor 514 may be used by a child user to take into account time-based limits set by a parent user via the electronic device 104. For example, the user interface provided by the personal configuration editor 514 may display the current time-based limits (e.g., set by the parent) and allow the child user to make those time-based limits more restrictive. For example, if the parent sets a two-hour time-based quota for an application, website, and / or category, the child user may view the time-based limits via the user interface provided by the personal configuration editor 514. The child may modify the time-based limits to be more restrictive via the user interface provided by the personal configuration editor 514, for example, by changing the two-hour quota to one hour. Such changes are reflected in the configuration database 536 and synchronized with the parent's electronic device 104 (e.g., via the MSG forwarding system 508 and the parent module 510, as described below). However, the time-based limits set by the parent may be less restrictive than the time-based limit(s) set by the child. In other words, the parent's limit(s) can override the child's limit(s) if the child attempts to set the limit(s) less restrictively.
[0093] The architecture 500 further includes a personal usage viewer 512 that can provide a user interface for viewing personal usage time. For example, the user interface provided by the personal usage viewer 512 can show overall device usage time, respective usage time for one or more of application(s) (e.g., per application), website (e.g., per website), device-level function (e.g., per function), and / or application / website category (e.g., per category), as described above with respect to FIG. 3. Additionally, the user interface provided by the personal usage viewer 512 can display usage against respective time-based limits (e.g., based on the configuration database 536), as described above with respect to FIG.
[0094] Architecture 500 further includes a personal organization controller 516 that includes a configuration data persistence module 526, a usage data persistence module 528, a server conduit 524, an internal forwarding module 518, a client conduit 520, and a configuration source 522. Configuration data persistence module 526 can access a configuration database 536 to obtain configuration data corresponding to time-based restrictions, for example, as described above with respect to FIGURE 3. Usage data persistence module 528 can store data record(s) indicative of respective usage time(s) by a child for applications, websites, categories, and / or device-level features, and store those records in a usage database 532, for example, as described above with respect to FIGURE 3.
[0095] The configuration data persistence module 526 may pass configuration data (e.g., corresponding to time-based restrictions set by the parent and / or child) via the server conduit 524, the internal transfer module 518, the client conduit 520, the configuration source 522, the usage management module 538, and the device management module 540, for example, as described above with respect to FIG. 3. Additionally, the device management module 540, in conjunction with the usage tracking module 542 and the usage monitoring module 544, as described above with respect to FIG. 3, can access and aggregate (deduplicate) usage data for applications, websites, categories, and / or device-level features across a user's multiple devices, maintain user privacy across the user's multiple devices (e.g., electronic devices 102-103), aggregate usage data, synchronize data across multiple devices based on synchronization policies (e.g., using cloud-based synchronization and / or cross-device synchronization), detect time-based violations, notify and / or block (e.g., using predefined exceptions) respective applications, websites, categories, and / or device-level features, and remove applications and / or websites (e.g., by removing identifying data while maintaining an extracted record of usage data).
[0096] Additionally, the architecture 500 includes a family organization controller 502 that includes a MSG system transfer module 508, a client conduit 504, and a configuration source module 506. The MSG system transfer module 508 synchronizes child usage data associated with the electronic devices 102-103 for access by the parent on the electronic device 102 via a parent module 510. Thus, if there are changes in usage time based on usage activity by the child, the MSG system transfer module 508 synchronizes those changes to the parent's device (e.g., the electronic device 102) via the parent module 510 and in conjunction with the MSG system transfer module 408.
[0097] The MSG system transfer module 508, in conjunction with the MSG system transfer module 408, can send end-to-end encrypted messages between the parent's device and the child's device, the messages indicating time-based restrictions and / or usage times associated with the child. Further, in response to the device management module 540 (in conjunction with the usage tracking module 542 and the usage monitoring module 544) detecting a violation of a time-based restriction, the child's device can notify the parent of the violation via the MSG system transfer module 508.
[0098] As described above, a parent may set a time-based goal for a child (e.g., one hour of reading is required before other device activity), and the device management module 540 may therefore be configured to detect when the time-based goal has been reached before allowing the child to use other applications, websites, categories, and / or device-level features.
[0099] In one or more implementations, aspects of the above synchronization policies described above with respect to FIG. 3 may also apply to synchronization between a child's device and a parent's device. For example, synchronization frequency may be increased if a child has multiple electronic devices instead of a single device, the child is subject to time-based restrictions (e.g., quotas), the child's usage time approaches a time-based restriction (e.g., quota), and / or user interaction is detected regarding viewing usage time and / or adjusting time-based restrictions. The type of synchronization may be based on message forwarding (e.g., via MSG system forwarding module 508). Alternatively or additionally, synchronization between a child's device and a parent's device may be server-based.
[0100] In this regard, a server (e.g., server 108) can store restriction data and / or usage data in an encrypted manner, with parent and child devices provided with access to the data based on respective keys that are not accessible to the server. Additionally, the server can store usage data related to a domain hosting a website (e.g., the domain “xyz.com”) rather than a specific website and / or its corresponding web page (e.g., xyz.com / 123). In an exemplary implementation, the server-based sharing mechanism may be implemented by one or more encrypted data containers accessible only by the child devices (e.g., electronic devices 102-103) and the parent device (e.g., electronic device 104). For example, the encrypted data containers may be logical containers for storing encrypted data corresponding to different user accounts (e.g., one or more logical containers associated with the parent and / or child user accounts). Access to the logical containers is restricted (e.g., with respect to restriction and / or usage data) to devices registered to the parent and / or child and accessible via respective keys stored on the registered devices. In this regard, the server 108 may not have access to the encrypted data (e.g., for usage and / or time-based restrictions) stored on the container. Storing the encrypted data on the server allows the child device to access the time-based restrictions even if the parent device(s) are offline. In addition, the parent device may be used to set restrictions when the child device is offline. Furthermore, although the message forwarding system may implement a time-to-live (TTL) for messages related to usage time and / or time-based restrictions, the TTL may not be applied in a server-based implementation.
[0101] In one or more implementations, a child user can request a budget increase from a parent for a time-based limit. If the time-based limit corresponds to a quota, the child's device can present a user interface for requesting an increase in the quota. If the time-based limit corresponds to a time limit, the child's device can present a user interface for requesting an extension of the time range of usage. These interfaces for requesting an increased budget may be invoked by the child user via an interface provided by the personal configuration editor 514. Alternatively or additionally, the interface for requesting a budget increase may be invoked automatically (e.g., by the device management module 540 and the usage tracking module 542) upon detecting that a time-based violation has occurred. The interface may also be invoked upon detecting that a time-based violation is about to occur, for example, if the usage time is approaching a time-based limit.
[0102] In response to the child requesting a budget increase, the parent's device may be provided with a corresponding request to increase the budget. In response, the parent user can increase the child's budget (e.g., via a user interface provided by family configuration editor 420). Alternatively or additionally, the child's budget can be increased directly on the child's device itself (e.g., electronic device 102-103) by entering a restriction code that allows the user (e.g., parent) to increase the budget.
[0103] In one or more implementations, an application that is subject to a time-based limit on a child's device may not exist (e.g., not be installed) on a parent's device. To provide visual context for such an application, the parent device may be configured to retrieve an icon representing the application from a public data source, such as a public endpoint associated with an online application store. Thus, the parent's device (e.g., electronic device 104) need not provide any identifying information to retrieve the icon. For example, electronic device 104 can access an application catalog associated with a public data source to retrieve the application's name and / or icon without providing identifying information. In this manner, the privacy of the parent and / or child's device is protected, for example, because information about the child's identity or the parent's identity is not revealed. The icon may be displayed, for example, in a user interface provided by family configuration editor 420, in notifications provided to a parent user when a time-based violation occurs, and in notification requests from the child's device to increase the budget for a time-based violation.
[0104] In one or more implementations, one or more of the components 502-544 of the architecture 500 are implemented via software instructions stored in memory 204 that, when executed by the host processor 202, cause the host processor 202 to perform a particular function(s).
[0105] In one or more implementations, one or more of the components 502-544 of architecture 500 may be implemented in software (e.g., subroutines and code), and / or hardware (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gate logic, discrete hardware components, or any other suitable devices), and / or a combination of both. In one or more implementations, some or all of the illustrated components may share hardware and / or circuitry, and / or one or more of the illustrated components may utilize dedicated hardware and / or circuitry. This disclosure further describes additional features and functionality of these modules in accordance with various aspects of the subject technology.
[0106] FIG. 6 illustrates an exemplary architecture for a system for managing device usage time in an enterprise setting, according to one or more implementations. For example, architecture 600 may be implemented by one or more software modules executing on the host processor 202 of any of electronic devices 102-104. In another example, architecture 600 may be implemented by one or more software modules implemented by custom hardware (e.g., one or more coprocessors). However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.
[0107] The architecture 600 includes an enterprise organization controller 602 that includes a client conduit 604, a configuration source module 606, and a hypertext transfer protocol (HTTP) transport module 608. The architecture 600 further includes a device management module 612, a usage tracking module 614, and a usage monitoring module 616. The components 602-616 may implement similar functionality as described above with respect to FIGS. 3-5, but within the context of an enterprise. Examples of enterprises include, but are not limited to, businesses, schools, entrepreneurship, social enterprises, and / or other types of organizations. In this regard, the enterprise organization controller 602 may be configured to manage restrictions placed on devices within the enterprise via the HTTP transport module 608 and the server module 610 (e.g., based on time, quantity, geographic location, device environment / condition, contact, and / or combined restrictions).
[0108] In one or more implementations, one or more of the components 602-616 of the architecture 600 are implemented via software instructions stored in memory 204 that, when executed by the host processor 202, cause the host processor 202 to perform a particular function(s).
[0109] In one or more implementations, one or more of the components 602-616 of the architecture 600 may be implemented in software (e.g., subroutines and code), and / or hardware (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gate logic, discrete hardware components, or any other suitable devices), and / or a combination of both. In one or more implementations, some or all of the illustrated components may share hardware and / or circuitry, and / or one or more of the illustrated components may utilize dedicated hardware and / or circuitry. This disclosure further describes additional features and functionality of these modules in accordance with various aspects of the subject technology.
[0110] FIG. 7 illustrates an exemplary architecture of a system for remote management of components for managing device time usage, according to one or more implementations. For example, the remote management architecture 700 can be implemented by one or more software modules executing on the host processor 202 of any of the electronic devices 102-104. In another example, the architecture 700 can be implemented by one or more software modules implemented by custom hardware (e.g., one or more coprocessors). However, not all of the depicted components may be used in all implementations, and one or more implementations may include additional or different components than those shown in the figures. Variations in the arrangement and type of components may be made without departing from the spirit or scope of the claims set forth herein. Additional, different, or fewer components may be provided.
[0111] 7 illustrates that device management (e.g., time-based limits on usage time) may be implemented for different sources on the same device (e.g., electronic device 102). Remote management architecture 700 is described herein with respect to a child. However, remote management architecture 700 is not limited to a child and may instead apply to a parent or any other user.
[0112] In this regard, a child's device (e.g., any of electronic devices 102-103) may include a personal organization controller 702 corresponding to personal organization controller 516, a family organization controller 714 corresponding to family organization controller 502, and (e.g., if the child is a student and a school enterprise sets time-based restrictions on the student's device) a corporate organization controller 728 corresponding to corporate organization controller 602.
[0113] In this regard, the personal organization controller 702 may include a configuration source module 704, a server conduit 706, a client conduit 708, a configuration data persistence module 710, and a usage data persistence module 712 that generally correspond to components of the personal organization controller 516. Additionally, the family organization controller 714 may include a configuration source module 716, a server conduit 718, a client conduit 720, a MSG system transport 722, a configuration data persistence module 724, and a usage data persistence module 726 that generally correspond to components of the family organization controller 502. Furthermore, the enterprise organization controller 728 may include a configuration source module 730, a server conduit 732, a client conduit 734, and an HTTP transport module 736 that generally correspond to components of the enterprise organization controller 602.
[0114] Remote management architecture 700 may further include a personal usage viewer 738, a personal configuration editor 740, a family usage viewer 742, and a family configuration editor 744 that generally correspond to components of architecture 500. In addition, remote management architecture 700 may include a database 746, usage databases 748 and 750, configuration databases 752 and 754, and a cloud mirroring module 756 that generally correspond to components of architecture 500.
[0115] Thus, each of the personal organization controller 702, family organization controller 714, and enterprise organization controller 728 may represent data originating from a different source (e.g., individual, family, enterprise). Each conduit (e.g., 706-708, 718-720, and 732-734) may facilitate controlling general data flow, e.g., with respect to inbound / outbound usage data and / or time-based restrictions. Additionally, each persistence module (e.g., 710-712, 724-726) may provide data persistence. In the enterprise case, the persistence layer is not present, and time-based restrictions may be transmitted via the HTTP transport module 736.
[0116] In one or more implementations, one or more of the components 702-756 of the remote management architecture 700 are implemented via software instructions stored in memory 204 that, when executed by the host processor 202, cause the host processor 202 to perform a particular function(s).
[0117] In one or more implementations, one or more of the components 702-756 of the remote management architecture 700 may be implemented in software (e.g., subroutines and code), and / or hardware (e.g., application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), controllers, state machines, gate logic, discrete hardware components, or any other suitable devices), and / or a combination of both. In one or more implementations, some or all of the illustrated components may share hardware and / or circuitry, and / or one or more of the illustrated components may utilize dedicated hardware and / or circuitry. This disclosure further describes additional features and functionality of these modules in accordance with various aspects of the subject technology.
[0118] FIG. 8 illustrates an exemplary process for managing device usage time, according to one or more implementations. For purposes of explanation, process 800 is described herein primarily with reference to electronic devices 102-104 and server 108 of FIG. 1 . However, process 800 is not limited to electronic devices 102-104 and server 108 of FIG. 1 . Moreover, one or more blocks (or operations) of process 800 may be performed by one or more other components of server 108 and / or by other suitable devices. Moreover, for purposes of explanation, the blocks of process 800 are described herein as occurring sequentially or linearly. However, multiple blocks of process 800 may occur in parallel. Additionally, the blocks of process 800 need not be performed in the order illustrated, and / or one or more blocks of process 800 need not be performed and / or may be replaced by other operations.
[0119] An electronic device 102 (e.g., a first device) receives a time-based quota for usage by a first user for a category of applications, websites, or device-level features 802. The category may be based on a particular topic and may include a predefined set of one or more applications, websites, or device-level features corresponding to the particular topic.
[0120] The time-based quota may be set by the first user. Alternatively or additionally, the time-based quota may be set by a second user (e.g., a parent of the first user) associated with a third device (e.g., electronic device 104).
[0121] If a second user (e.g., a parent) sets the time-based quota, receiving the time-based quota may include receiving encrypted data indicative of the time-based quota, access of which is restricted to the electronic device 102-104. The encrypted data indicative of the time-based quota may be received from the electronic device 104 via a message forwarding system. Alternatively or additionally, the encrypted data indicative of the time-based quota may be stored on the server 108, and the electronic device 102 may store a key for accessing the encrypted data indicative of the time-based quota from the server 108.
[0122] The electronic device 104 may be configured to retrieve, from a public data source (e.g., a public endpoint associated with an online application store), graphical icons representing applications associated with the aggregated usage and that are not installed on the electronic device 104. For example, the graphical icons may provide context within a user interface showing the usage of a parent user of the electronic device 104 (e.g., provided by the other usage viewer 418).
[0123] The electronic device 102 receives (804) encrypted data indicative of usage by the first user on the electronic device 103 (e.g., a second device of the first user) of applications, websites, or device-level features within the category. The encrypted data indicative of usage may be end-to-end encrypted between the electronic device 102 and the electronic device 103. For example, access to the encrypted data indicative of usage may be restricted to the electronic devices 102-103 and / or the electronic device 104 (e.g., if the second user sets time-based restrictions).
[0124] Encrypted data indicative of use by the first user on electronic device 103 may be stored on server 108, and electronic device 102 may store a key for accessing the encrypted data indicative of use from server 108. For example, encrypted data indicative of use by the first user on electronic device 103 may be stored on server 108 in association with at least one encrypted data container corresponding to use by the first user across multiple devices (e.g., electronic devices 102-103). Alternatively or additionally, electronic device 102 can receive encrypted data from electronic device 103 via a device-to-device communication protocol.
[0125] Receiving encrypted data indicative of usage may be performed in association with a synchronization policy that indicates when to synchronize usage between electronic device 102 and electronic device 103. For example, the synchronization policy may indicate one or more of: synchronizing usage more frequently when a first user is associated with multiple devices rather than a single device; synchronizing usage more frequently as aggregate usage approaches a time-based quota; and / or synchronizing at the current time (e.g., immediately or as soon as possible based on device availability) when user interaction is detected with respect to a user interface associated with a time-based quota for usage.
[0126] The electronic device 102 determines (806) aggregated usage based on usage by the first user on the electronic device 103 and usage by the first user on the electronic device 102 for applications, websites, or device-level functions within the category. Determining aggregated usage may include de-duplicating concurrent usage by the first user on the electronic device 102 and the electronic device 103 corresponding to the same application, website, or device-level function within the category.
[0127] If a second user (e.g., a parent) sets a time-based quota (e.g., via the electronic device 104), the electronic device 102 can provide encrypted data indicative of the aggregated usage to the electronic device 104 so that access to the aggregated usage is restricted to the electronic devices 102-104. The encrypted data indicative of the aggregated usage may be provided to the electronic device 104 via a message forwarding system. Alternatively or additionally, the encrypted data indicative of the aggregated usage may be stored on the server 108, and the electronic device 104 may store a key for accessing the encrypted data indicative of the aggregated usage from the server 108.
[0128] The electronic device 102 determines that the aggregated usage has reached the time-based quota for the category (808). If a second user (e.g., a parent) sets the time-based quota (e.g., via the electronic device 104), the electronic device 102 may receive an indication of authorization by the second user to adjust the time-based quota, e.g., in response to the first user's request to increase the time-based quota. In response to receiving the indication, the electronic device 102 may adjust the time-based quota. The electronic device 102 may receive the indication of authorization locally as an authenticating user input (e.g., entered by a parent on the child's electronic device 102) to permit the adjustment of the time-based quota. For example, the authentication may correspond to entering an enrollment code or other credential, such as biometric authentication (e.g., fingerprint scan, facial recognition). Alternatively or additionally, the electronic device 102 may receive from the electronic device 104 an indication of authorization by the second user (e.g., a parent) to adjust the time-based quota.
[0129] In response to determining that the aggregated usage has reached the time-based quota, the electronic device 102 provides a notification that the first user has reached the time-based quota for the category (810). The electronic device 102 may also prevent the first user from accessing applications, websites, or device-level features in the category.
[0130] In one or more implementations, the electronic device 102 may detect the removal of an application in a category. In response to detecting the removal, the electronic device 102 may remove data on the electronic device 102 that identifies the application and maintain a record of usage for the category corresponding to the application. Alternatively, or additionally, the electronic device 102 may detect the removal of browser history corresponding to a website in the category. In response to detecting the removal, the electronic device 102 may remove data on the electronic device 102 that identifies the browser history corresponding to the website and maintains a record of usage for the category corresponding to the browser history corresponding to the website.
[0131] FIG. 9 shows another exemplary process for managing device usage time, according to one or more implementations. For purposes of explanation, process 900 is described herein primarily with reference to electronic devices 102-104 and server 108 of FIG. 1 . However, process 900 is not limited to electronic devices 102-104 and server 108 of FIG. 1 . Moreover, one or more blocks (or acts) of process 900 may be performed by one or more other components of server 108 and / or by other suitable devices. Moreover, for purposes of explanation, the blocks of process 900 are described herein as occurring sequentially or linearly. However, multiple blocks of process 900 may occur in parallel. Additionally, the blocks of process 900 need not be performed in the order illustrated, and / or one or more blocks of process 900 need not be performed and / or may be replaced by other acts.
[0132] An electronic device 102 (e.g., a first device) receives (902) time-based restrictions on a first user's use of an application, website, or device-level feature. The time-based restrictions may be set by the first user. Alternatively or additionally, the time-based restrictions may be set by a second user (e.g., a parent of the first user) associated with a third device (e.g., the electronic device 104).
[0133] If a second user (e.g., a parent) sets time-based restrictions, receiving the time-based restrictions may include receiving encrypted data indicating the time-based restrictions, access of which is restricted to the electronic device 102-104. The encrypted data indicating the time-based restrictions may be received from the electronic device 104 via a message forwarding system. Alternatively or additionally, the encrypted data indicating the time-based restrictions may be stored on the server 108, and the electronic device 102 may store a key for accessing the encrypted data indicating the time-based restrictions from the server 108.
[0134] The electronic device 102 receives (904) encrypted data indicative of usage by the first user on the electronic device 103 (e.g., the first user's second device) of an application, website, or device-level feature. The encrypted data indicative of usage may be end-to-end encrypted between the electronic device 102 and the electronic device 103. For example, access to the encrypted data indicative of usage may be restricted to the electronic devices 102-103 and / or the electronic device 104 (e.g., if the second user sets time-based restrictions).
[0135] Encrypted data indicative of use by the first user on electronic device 103 may be stored on server 108, and electronic device 102 may store a key for accessing the encrypted data indicative of use from server 108. For example, encrypted data indicative of use by the first user on electronic device 103 may be stored on server 108 in association with at least one encrypted data container corresponding to use by the first user across multiple devices (e.g., electronic devices 102-103). Alternatively or additionally, electronic device 102 can receive encrypted data from electronic device 103 via a device-to-device communication protocol.
[0136] Receiving encrypted data indicative of usage may be performed in association with a synchronization policy that indicates when to synchronize usage between electronic device 102 and electronic device 104. For example, the synchronization policy may indicate one or more of: synchronizing usage more frequently when a first user is associated with multiple devices rather than a single device; synchronizing usage more frequently as usage (e.g., aggregated usage) approaches a time-based limit (e.g., a quota); and / or synchronizing at the current time when user interaction is detected with a user interface associated with a time-based limit on usage.
[0137] The electronic device 102 determines (906) that at least one of the first user's use on the electronic device 103 or the first user's use on the electronic device 102 of an application, website, or device-level function violated a time-based restriction. In this regard, the time-based restriction may correspond to a time limit (e.g., a time frame during which usage is limited), and usage by the first user on either the first device or the second device during the time frame may violate the time limit. Alternatively or additionally, the time-based restriction may correspond to a budget (e.g., a total amount of usage allowed), and usage may violate the budget if the aggregated time on the first and second devices exceeds the budget. Determining aggregated usage may include deduplicating simultaneous usage by the first user on the electronic device 102 and the electronic device 103 corresponding to the same application, website, or device-level function within a category.
[0138] If a second user (e.g., a parent) sets a time-based restriction (e.g., via the electronic device 104), the electronic device 102 can provide encrypted data indicative of usage to the electronic device 104 so that access to usage is restricted to the electronic devices 102-104. The encrypted data indicative of usage may be provided to the electronic device 104 via a message forwarding system. Alternatively or additionally, the encrypted data indicative of usage may be stored on the server 108, and the electronic device 104 may store a key to access the encrypted data indicative of aggregated usage from the server 108.
[0139] If a second user (e.g., a parent) sets the time-based limit (e.g., via the electronic device 104), the electronic device 102 may receive an indication of authorization by the second user to adjust the time-based limit, e.g., in response to a request by the first user to increase the time-based limit. In response to receiving the indication, the electronic device 102 may adjust the time-based limit. The electronic device 102 may receive the indication of authorization as an authenticating user input (e.g., a registration code or biometric entered by the parent on the child's electronic device 102) to permit the adjustment of the time-based limit. Alternatively or additionally, the electronic device 102 may receive from the electronic device 104 the indication of authorization by the second user (e.g., a parent) to adjust the time-based limit.
[0140] Upon detecting a violation, the electronic device 102 provides a notification that the first user is violating a time-based restriction (908). The electronic device 102 may further prevent the first user from accessing an application, website, or device-level function.
[0141] In one or more implementations, the electronic device 102 may detect the removal of an application in a category. In response to detecting the removal, the electronic device 102 may remove data on the electronic device 102 that identifies the application and maintain a record of usage for the category corresponding to the application. Alternatively, or additionally, the electronic device 102 may detect the removal of browser history corresponding to a website in the category. In response to detecting the removal, the electronic device 102 may remove data on the electronic device 102 that identifies the browser history corresponding to the website and maintains a record of usage for the category corresponding to the browser history corresponding to the website.
[0142] As mentioned above, one aspect of the present technology is the collection and use of available data from specific legitimate sources, for example, to manage device usage. The present disclosure contemplates that, in some cases, this collected data may include personal information data that uniquely identifies or can be used to identify a particular person. Such personal information data may include demographic data, location-based data, online identifiers, phone numbers, email addresses, home addresses, data or records regarding a user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), date of birth, or any other personal information.
[0143] This disclosure recognizes that the use of such personal information data in the present technology may be for the benefit of the user. Moreover, other uses of personal information data that benefit the user are also contemplated by this disclosure. For example, health and fitness data may be used to provide insight into general wellness, or as positive feedback to individuals using the technology in pursuit of wellness goals, according to user preferences.
[0144] This disclosure intends that those entities involved in the collection, analysis, disclosure, transmission, storage, or other use of such personal information data will adhere to robust privacy policies and / or privacy practices. Specifically, such entities would be expected to implement and consistently apply privacy practices generally recognized as meeting or exceeding industry or government requirements for maintaining user privacy. Such information regarding the use of personal data should be prominently and easily accessible by users and updated as data collection and / or use changes. Personal information from users should be collected only for legitimate uses. Furthermore, such collection / sharing should occur after receiving the user's consent or based on other legitimate grounds specified in applicable law. Furthermore, such entities should consider taking all necessary measures to protect and secure access to such personal information data and to ensure that others with access to that personal information data comply with their privacy policies and procedures. Furthermore, such entities may be able to undergo third-party assessments to demonstrate their adherence to widely accepted privacy policies and practices. Additionally, policies and practices should be tailored to the specific types of personal information data collected and / or accessed, and should comply with applicable laws and standards, including jurisdiction-specific considerations that may serve to impose higher standards. For example, in the United States, the collection of or access to certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA), while health data in other countries may be subject to other regulations and policies and should be addressed accordingly.
[0145] Notwithstanding the foregoing, the present disclosure also contemplates embodiments in which a user selectively blocks use of or access to personal information data. That is, the present disclosure contemplates that hardware and / or software elements may be provided to prevent or block access to such personal information data. The present technology may be configured to allow a user to select "opt-in" or "opt-out" of participating in the collection of personal information data during service registration or at any time thereafter. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notice regarding the access or use of personal information. For example, the user may be notified upon downloading an app that will access the user's personal information data, and then again immediately before the app accesses the user's personal information data.
[0146] Furthermore, it is the intent of this disclosure that personal information data should be managed and processed in a manner that minimizes the risk of unintentional or unauthorized access or use. Risk can be minimized by limiting data collection and deleting data when it is no longer needed. Furthermore, where applicable, de-identification of data can be used to protect user privacy in certain health-related applications. De-identification may be facilitated by removing identifiers, where appropriate, controlling the amount or specificity of data stored (e.g., collecting location data at the city level rather than the address level), controlling how data is stored (e.g., aggregating data across users), and / or other methods such as differential privacy.
[0147] Thus, while this disclosure broadly encompasses the use of personal information data to implement one or more various disclosed embodiments, this disclosure also contemplates that the various embodiments may be implemented without requiring access to such personal information data. That is, various embodiments of the present technology are not rendered inoperable by the absence of all or part of such personal information data. For example, managing device usage may be based on aggregated non-personal information data, such as content available only on the user's device, or other available non-personal information, or minimal bare personal information.
[0148] 10 illustrates an electronic system 1000 in which one or more implementations of the subject technology may be implemented. The electronic system 1000 may be and / or may be part of one or more of the electronic devices 102-104 and / or one or more servers 108 shown in FIG. 1. The electronic system 1000 may include various types of computer-readable media and interfaces for other types of computer-readable media. The electronic system 1000 includes a bus 1008, one or more processing unit(s) 1012, a system memory 1004 (and / or buffers), a ROM 1010, a permanent storage device 1002, an input device interface 1014, an output device interface 1006, and one or more network interfaces 1016, or a subset or variation thereof.
[0149] The bus 1008 collectively represents all system, peripheral, and chipset buses that communicatively connect the various internal devices of the electronic system 1000. In one or more implementations, the bus 1008 communicatively connects one or more processing unit(s) 1012 with the ROM 1010, the system memory 1004, and the permanent storage device 1002. From these various memory units, the one or more processing unit(s) 1012 retrieve instructions to execute and data to process in order to perform the processes of the subject disclosure. The one or more processing units 1012 can be single processors or multi-core processors in different implementations.
[0150] The ROM 1010 stores static data and instructions needed by one or more processing units 1012 and other modules of the electronic system 1000. The permanent storage device 1002, on the other hand, may be a read-and-write memory device. The permanent storage device 1002 may be a non-volatile memory unit that stores instructions and data even when the electronic system 1000 is turned off. In one or more implementations, a mass storage device (such as a magnetic or optical disk and its corresponding disk drive) may be used as the permanent storage device 1002.
[0151] In one or more implementations, the permanent storage device 1002 may be a removable storage device (such as a floppy disk, flash drive, and its corresponding disk drive). Like the permanent storage device 1002, the system memory 1004 may be a read-and-write memory device. However, unlike the permanent storage device 1002, the system memory 1004 may be a volatile read-and-write memory, such as a random access memory. The system memory 1004 may store any instructions and data that the one or more processing units 1012 may need during execution. In one or more implementations, the processes of the present disclosure are stored in the system memory 1004, the permanent storage device 1002, and / or the ROM 1010. From these various memory units, the one or more processing units 1012 retrieve instructions to execute and data to process in order to execute the processes of one or more implementations.
[0152] The bus 1008 also connects to an input device interface 1014 and an output device interface 1006. The input device interface 1014 enables a user to communicate information and select commands to the electronic system 1000. Input devices that may be used with the input device interface 1014 may include, for example, an alphanumeric keyboard and a pointing device (also referred to as a "cursor control device"). The output device interface 1006 may, for example, enable the display of files generated by the electronic system 1000. Output devices that may be used with the output device interface 1006 may include, for example, a printer and a display device such as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light emitting diode (OLED) display, a flexible display, a flat panel display, a solid-state display, a projector, or any other device for outputting information. One or more implementations may include a device that functions as both an input and an output device, such as a touch screen. In these implementations, the feedback provided to the user can be any form of sensory feedback, such as visual feedback, auditory feedback, tactile feedback, etc., and the input from the user can be received in any form, including acoustic input, speech input, or tactile input.
[0153] 10, bus 1008 also couples electronic system 1000 to one or more networks and / or one or more network nodes, such as server 108 shown in FIG. 1, through one or more network interface(s) 1016. In this manner, electronic system 1000 can be a network of computers (such as a LAN or wide area network ("WAN")), or an intranet, or a network of multiple networks, such as the Internet. Any or all components of electronic system 1000 can be used in conjunction with the subject disclosure.
[0154] Implementations within the scope of this disclosure may be realized partially or entirely using a tangible computer-readable storage medium (or one or more types of tangible computer-readable storage media) encoding one or more instructions. The tangible computer-readable storage medium may also be non-transitory in nature.
[0155] A computer-readable storage medium may be any storage medium that can be read, written, or otherwise accessed by a general-purpose or special-purpose computing device, including any processing electronics and / or processing circuitry capable of executing instructions. For example, but not limited to, a computer-readable medium may include any volatile semiconductor memory such as RAM, DRAM, SRAM, T-RAM, Z-RAM, and TTRAM. A computer-readable medium may also include any non-volatile semiconductor memory such as ROM, PROM, EPROM, EEPROM, NVRAM, flash, nvSRAM, FeRAM, FeTRAM, MRAM, PRAM, CBRAM, SONOS, RRAM, NRAM, Racetrack memory, FJG, and Millipede memory.
[0156] Additionally, the computer-readable storage medium may include any non-semiconductor memory, such as optical disk storage, magnetic disk storage, magnetic tape, other magnetic storage devices, or any other medium capable of storing one or more instructions. In one or more implementations, the tangible computer-readable storage medium may be directly coupled to a computing device, while in other implementations, the tangible computer-readable storage medium may be indirectly coupled to a computing device, for example, via one or more wired connections, one or more wireless connections, or any combination thereof.
[0157] The instructions may be directly executable or may be used to develop executable instructions. For example, the instructions may be implemented as executable or non-executable machine code, or as instructions in a high-level language that may be compiled to generate executable or non-executable machine code. Furthermore, instructions may also be embodied as or include data. Computer-executable instructions may also be structured in any format, including routines, subroutines, programs, data structures, objects, modules, applications, applets, functions, etc. As will be recognized by those skilled in the art, details including, but not limited to, the number, structure, order, and structure of instructions may vary considerably without changing the underlying logic, function, processing, and output.
[0158] Although the above discussion primarily refers to microprocessors or multi-core processors executing software, one or more implementations are performed by one or more integrated circuits, such as an ASIC or FPGA(s), which execute instructions stored on the circuit itself.
[0159] Those skilled in the art will understand that the various illustrative blocks, modules, elements, components, methods, and algorithms described herein can be implemented as electronic hardware, computer software, or a combination of both. To illustrate this interchangeability of hardware and software, the various illustrative blocks, modules, elements, components, methods, and algorithms have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the particular application and design constraints imposed on the overall system. Those skilled in the art will be able to implement the described functionality in a variety of ways for each particular application. The various components and blocks may be arranged differently (e.g., arranged in a different order or divided in a different way) without departing from the scope of the subject technology.
[0160] It will be understood that any specific order or hierarchy of blocks in the disclosed processes is an example of an example approach. Based on design preferences, it will be understood that the specific order or hierarchy of blocks in the processes may be rearranged, or that the illustrated blocks may all be performed. Any blocks may be performed simultaneously. In one or more implementations, multitasking and parallel processing may be advantageous. Furthermore, the separation of various system components in the above-described implementations should not be understood as requiring such separation in all implementations. It should be understood that the described program components and systems may be integrated into a single software product or packaged into multiple software products.
[0161] As used herein and in any claims of this application, the terms "base station," "receiver," "computer," "server," "processor," and "memory" all refer to electronic or other technological devices. These terms exclude people or groups of people. For purposes of this specification, the terms "display" or "displaying" mean displaying on an electronic device.
[0162] As used herein, the phrase "at least one" preceding a list of items, with the term "and" or "or" separating any of the items, modifies the list as a whole and not each member (i.e., each item) of the list. The phrase "at least one" does not require the selection of at least one of each listed item; rather, the phrase allows for the inclusion of at least one of any one of the items, and / or at least one of any combination of the items, and / or at least one of each of the items. By way of example, the phrases "at least one of A, B, and C" or "at least one of A, B, or C" refer to A only, B only, or C only, any combination of A, B, and C, and / or at least one of each of A, B, and C, respectively.
[0163] The terms "configured to," "operable to," and "programmed to" do not imply any specific tangible or intangible modification of the subject matter, but rather are intended to be used interchangeably. In one or more implementations, a processor configured to monitor and control operations or components can also mean that the processor is programmed to monitor and control operations or that the processor is operable to monitor and control operations. Similarly, a processor configured to execute code can be interpreted as a processor programmed to execute code or operable to execute code.
[0164] The use of phrases such as "one aspect," "that aspect," "another aspect," "some aspects," "one or more aspects," "one implementation," "that implementation," "another implementation," "some implementations," "one or more implementations," "one embodiment," "that embodiment," "another embodiment," "some embodiments," "one or more embodiments," "one configuration," "that configuration," "another configuration," "some configurations," "one or more configurations," the subject technology, the disclosure, the present disclosure, other variations thereof, and similar phrases is for convenience and does not imply that the disclosure of such phrase(s) is essential to the subject technology or that such disclosure applies to all configurations of the subject technology. The disclosure of such phrase(s) may apply to all configurations or one or more configurations. The disclosure of such phrase(s) may provide one or more examples. Phrases such as "aspect" or "some aspects" can refer to one or more aspects, and vice versa, as with the other aforementioned phrases.
[0165] The word "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment described herein as "exemplary" or "example" is not necessarily to be construed as preferred or advantageous over other embodiments. Furthermore, to the extent that terms such as "including," "having," and the like are used in the specification or claims, such terms are intended to be inclusive in the same manner as the term "comprising," as "comprising" is interpreted when used as a transitional term in the claims.
[0166] All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later become known to those skilled in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Furthermore, nothing disclosed herein is made public, regardless of whether such disclosure is expressly recited in a claim. No claim element is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase "means for," or, in the case of a method claim, the element is recited using the phrase "step for."
[0167] The foregoing description is provided to enable those skilled in the art to practice the various embodiments described herein. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the claims are not intended to be limited to the embodiments set forth herein but are to be accorded the full scope consistent with the claims literal meaning. References to elements in the singular are not intended to mean "one and only one" unless specifically stated otherwise, but rather "one or more." The term "some" refers to one or more unless otherwise specified. Pronouns in the masculine (e.g., he) include the feminine and neuter genders (e.g., she and its), and vice versa. Headings and subheadings, if any, are used for convenience only and are not intended to limit the disclosure herein.
Claims
1. A device, at least one processor; and a memory containing instructions that, when executed by the at least one processor, cause the at least one processor to: receiving a time-based quota for use by the first user for a category of application, website, or device-level feature; receiving encrypted data indicative of usage by the first user on a second device of the application, the website, or the device-level feature within the category; determining aggregate usage based on the usage by the first user on the second device and the usage by the first user on the device of the application, the website, or the device-level feature within the category; determining that the aggregated usage has reached the time-based quota for the category; causing a device to provide notification that the first user has reached the time-based quota for the category.
2. 2. The device of claim 1, wherein the encrypted data indicative of usage is end-to-end encrypted between the device and the second device such that access to the encrypted data indicative of usage is restricted to the device and the second device.
3. the encrypted data indicative of the use by the first user on the second device is stored on a server; The device of claim 1 , wherein the device stores a key for accessing the encrypted data indicative of the usage from the server.
4. 4. The device of claim 3, wherein the encrypted data indicating the use by the first user on the second device is stored on the server in association with at least one encrypted data container corresponding to use by the first user across multiple devices.
5. The device of claim 1 , wherein the device receives the encrypted data indicative of the usage from the second device via a device-to-device communication protocol.
6. the time-based quota is set by a second user associated with a third device; 10. The device of claim 1, wherein receiving the time-based quota includes receiving encrypted data indicative of the time-based quota, access of which is restricted to the device, the second device, and the third device.
7. The device of claim 6 , wherein the encrypted data indicative of the time-based quota is received from the third device via a message transfer system.
8. 7. The device of claim 6, wherein the encrypted data indicating the time-based quota is stored on a server, and the device stores a key for accessing the encrypted data indicating the time-based quota from the server.
9. The instructions further cause the at least one processor to:
7. The device of claim 6, further comprising: causing the third device to provide encrypted data indicative of the aggregated usage such that access to the aggregated usage is restricted to the device, the second device, and the third device.
10. The device of claim 9 , wherein the encrypted data indicative of the aggregated usage is provided to the third device via a message forwarding system.
11. 10. The device of claim 9, wherein the encrypted data indicative of the aggregated usage is stored on a server, and the third device stores a key for accessing the encrypted data indicative of the aggregated usage from the server.
12. 10. The device of claim 9, wherein the third device is configured to retrieve, from a public data source, graphical icons representing applications associated with the aggregated usage and not installed on the third device.
13. The instructions further cause the at least one processor to: receiving an indication of authorization by the second user to adjust the time-based quota; The device of claim 6 , wherein the device adjusts the time-based allocation in response to receiving the indication.
14. Receiving the instruction includes: The device of claim 13 , including receiving, at the device, an authentication user input to authorize adjustment of the time-based quota.
15. Receiving the instruction includes: The device of claim 13 , further comprising receiving, from the third device, the indication of authorization by the second user to adjust the time-based quota.
16. The device of claim 1 , wherein the categories are based on a particular topic, and the categories include a predefined set of one or more applications, websites, or device-level features that correspond to the particular topic.
17. The instructions further cause the at least one processor to:
10. The device of claim 1, wherein in response to determining that the aggregated usage has reached the time-based quota for the category, the first user is prevented from accessing the application or website in the category.
18. The device of claim 1 , wherein receiving the encrypted data indicative of the usage is performed in association with a synchronization policy that indicates when to synchronize the usage between the device and the second device.
19. 20. The device of claim 18, wherein the synchronization policy indicates to synchronize the usage more frequently if the first user is associated with multiple devices rather than a single device.
20. 20. The device of claim 18, wherein the synchronization policy indicates to synchronize the usage more frequently as the aggregated usage approaches the time-based quota.
21. 20. The device of claim 18, wherein the synchronization policy indicates to synchronize with the current time when user interaction is detected with a user interface associated with the time-based quota for usage.
22. The instructions further cause the at least one processor to: detecting the deletion of applications in said category; In response to detecting the deletion, removing data on the device that identifies the application; The device of claim 1 , further comprising: a device configured to maintain a record of usage for the category corresponding to the application.
23. The instructions further cause the at least one processor to: detecting deletion of browser history corresponding to websites within said category; In response to detecting the deletion, removing data on the device that identifies the browser history corresponding to the website; The device of claim 1 , further comprising: a browser history associated with the website; a browser history associated with the category associated with the website;
24. 10. The device of claim 1, wherein determining the aggregated usage includes deduplicating concurrent usage by the first user on the device and the second device corresponding to the same application, the same website, or the same device-level function within the category.
25. 1. A computer program product comprising code stored on a tangible computer-readable storage medium, said code comprising: code for receiving, at the first device, time-based restrictions on use by the first user of an application, website, or device-level feature; code for receiving encrypted data indicative of use by the first user on a second device of the application, the website, or the device-level feature; code for determining that at least one of the use by the first user on the second device or the use by the first user on the first device of the application, the website, or the device-level feature violated the time-based restriction; code for, in response to the determining, providing a notification that the first user is violating the time-based restriction.
26. receiving, by the first device, time-based restrictions on usage by the first user for a category of applications, websites, or device-level features; receiving encrypted data indicative of usage by the first user on a second device of the application, website, or device-level feature within the category; determining that at least one of the use by the first user on the second device or the use by the first user on the first device of the application, the website, or the device-level feature in the category violated the time-based restriction; In response to the determining, providing a notification that the first user is violating the time-based restriction; A method comprising:
27. receiving, by the first device, a time-based restriction on usage by the first user of the device-level feature; receiving encrypted data indicative of use by the first user on a second device of the device-level feature; determining that at least one of the use by the first user on the second device or the use by the first user on the first device of the device-level feature violated the time-based restriction; In response to the determining, providing a notification that the first user is violating the time-based restriction; A method comprising:
28. The method of claim 27 , wherein the device-level functionality corresponds to overall device usage.
29. 28. The method of claim 27, wherein the device-level functionality corresponds to a display, audio, sensor functionality, accessories, or resources of the device.
30. 28. The method of claim 27, wherein the time-based restriction corresponds to a time-based quota for usage corresponding to the device-level feature.
31. 28. The method of claim 27, wherein the time-based restriction corresponds to a number-based quota that limits a number of uses corresponding to the device-level feature.
32. and restricting use of said device-level function in response to said determination of said violation.
28. The method of claim 27, further comprising:
33. 33. The method of claim 32, wherein the restricting disables use of the device-level feature.
34. 33. The method of claim 32, wherein said limiting limits an output level for said device-level function.