Patent ID: 12242836

DESCRIPTION OF THE EXAMPLES

Reference will now be made in detail to the present examples, including examples illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

Systems and methods are described for a launcher on a user device that allow users to choose between multiple launcher modes. In an example, a user can log in to a management application on a user device that manages the user device. The management application can send credentials to a server. The server can verify the credentials and send a launcher profile associated with the user to the management application. The management application can check the launcher profile to determine whether the user is allowed to choose a launcher mode. If so, the management application can display the available launcher modes on the user device. The user can select a launcher mode, and the management application can install settings from the launcher profile corresponding to the selected mode. Settings for the remaining launcher modes can be retained on the user device. If the user chooses to change launcher modes, then the management application can uninstall the settings for the first launcher mode and install the settings for the newly selected launcher mode.

An admin interface can be provided that allows an admin user to modify launcher settings at user devices and in launcher profiles without pushing new launcher profiles. For example, the admin interface can allow an admin to toggle whether a user can choose a launcher mode or is restricted to an assigned mode. An admin can also add, remove, or modify launcher modes available on a user device or to a user. The modifications can be applied to user devices and existing launcher profiles.

FIG.1is an illustration of an example system for providing multiple modes for a launcher. The system can include a user device110that is enrolled in a system for managing a group of user devices, such as a UEM system. The user device110can be one or more processor-based devices, such as a personal computer, tablet, or cell phone. A management server120can be responsible for managing user devices enrolled in the UEM system. The management server120can be a single server or a group of servers, including multiple servers implemented virtually across multiple computing platforms. A management service122on the management server120can manage enrolled user devices110by sending management instructions to a management application112installed on the user devices110. The management application112can be a stand-alone application, part of an enterprise application, or part of an operating system (“OS”) of the enrolled devices110.

The management application112can be downloaded and installed at the user device110prior to, or as part of, the enrollment process. For example, a user can download the management application112using a URL that points to a content delivery server with an installation file for the management application112. The URL can be provided by the enterprise, for example. Alternatively, the user can download the management application112from an app store, such as APPLE's APP STORE or GOOGLE PLAY. When the user launches the management application112for the first time, the management application112can prompt the user to enter authentication credentials, such as a username and password or a one-time password (“OTP”) provided to the user by the enterprise. The management application112can send the user-provided credentials to the management server120in an encrypted format.

If the management server120can authenticate the credentials, then the management server120can begin provisioning the user device110for enterprise management. For example, the management server130can send a management profile to the management application112. The management profile can include compliance and security settings assigned to the user's profile and any user groups that the user is assigned to. The management server120can also send a security certificate associated with the user's profile that can be used at the user device110to access enterprise data and resources, including managed applications. A managed application can be an application that allows control of access and functionality by the UEM system. The management server120can provision managed applications assigned to the user or the management profile. For example, the management service server120can provide the management application112with installation files or URLs for retrieving the installation files for managed applications.

The management application112can configure the user device110using the management profile. For example, the management application112can install compliance and security settings from the management profile. As an example, the management application112can encrypt all or a portion of the user device's hard drive, apply virtual private network (“VPN”) settings for accessing UEM data and resources, and set device access controls (e.g., password or personal identification number (“PIN”) requirements). The management application112can also install and configure managed applications for the user device110.

After enrollment is complete, the UEM system can actively manage the user device110by sending, via the management server130or another server in the UEM system, management commands, including any updated compliance and security settings, to the management application112. The management application112can ensure that the user device110is up to date with the compliance and security settings prior to allowing access to enterprise data and resources. For example, the management application112can analyze the device state of the user device110using rules included in the management profile. The device state can include various aspects of the user device110, such as the device110manufacturer, model, and ID, a current battery charge level, whether the user device110is jailbroken, OS type and version, geographic location, a login status of the user, and an identification of the applications installed on the user device110. The user device110can provide periodic updates of its state information to the management server120. These updates can provide a full list of the various device aspects in one example, but in another example each update can identify changes from the previous device status update.

The management server120can send management commands to the management application112using any available communication protocol or channel. For example, the management server120can send management commands using an application programming interface (“API”), a notification system, a messaging system native to the user device110, or a command queue. In one example using a command queue, the management server120can store one or more commands in a queue that is available to the user device110over a network. The commands can encompass any management action, such as instructing the device110to download an application, report a device state, or apply a new profile. The management system can alert the user device110to a change in the command queue, such as by sending a notification to the user device110instructing the device to access the command queue. The notification can be sent through the management application112in some examples, but can also be sent as an OS-level notification or a message that utilizing an OS messaging scheme, such as a Short Message Service (“SMS”) message.

The management application112can control access and use of the user device110with a launcher114. The launcher114can be an application that modifies the design and features of the OS running on the user device110. For example, the launcher114can replace the stock OS interface for organizing a home screen and application icons. Some examples of launchers include AVIATE, EVERYTHINGME, and NOVA LAUNCHER. An organization can assign a launcher profile124to users for accessing user devices that utilize the launcher114. A launcher profile124can include launcher settings and permissions for a user when accessing the user device110. For example, the launcher profile124can designate what applications and other UEM resources the user can access on the user device110.

The launcher114can have different launcher modes, and the launcher profile124can designate a mode assigned to the user. One example of such a launcher114is WORKSPACE ONE LAUNCHER by VMWARE. A launcher mode can be a configuration in which the launcher114operates. For example, a Single App mode can allow a single designated application to run in the foreground and the rest of the user device110can be inaccessible to the user. A Multi-App mode can allow multiple whitelisted or designated applications while restricting operations outside of those applications. A Template mode can be a mode created from a template. For example, an admin can choose images, text, and applications in the launcher114. The admin can also provide instructions on how the user device110should be used and customize the design, such as by setting colors or adding a logo. The admin can also designate which applications should be accessible.

An admin can configure a template mode and assign launcher modes to users through an admin interface132. The admin interface132can be any interface that allows an admin to manage user accounts and configuration settings for an organization. The admin interface132can be accessed using an admin console130, which can be any user device, such as a computer, tablet, or phone, that displays the admin interface132and is in communication with the management server120.

The admin interface132can allow an admin to make multiple modes available to a user. This can allow a user to change modes on the user device110without the need for an admin to push the new mode to the user device110. For example, an admin can configure a user's launcher profile124to allow one or multiple modes. If a launcher profile124only allows for one mode, then, when the user logs in, the management application112can configure the launcher114in the designated mode. On the other hand, if a launcher profile124allows the user to choose a launcher mode, then the management application112can display launcher mode options in a GUI on the user device110. When the user selects a mode, the management application112can install the settings for selected launcher mode.

A user's launcher profile124can include settings for the launcher modes assigned to the launcher profile124. For example, if the launcher profile124is assigned a first and a second launcher mode, then the launcher profile124can include first mode settings126and second mode settings128for the first and second launcher modes, respectively. When a user logs in, the management service122can send the launcher profile124, including the first and second mode settings126,128to the management application112. The management service122can send the launcher profile124as one or more data files, such as a JavaScript Object Notation (“JSON”) file or Extensible Markup Language (“XML”) file. The management service122can send the data file using any kind of transmission protocol, such as a Hypertext Transfer Protocol (“HTTP”) call or an API call. The management application112can save the first and second mode settings126,128in memory116of the user device110. The memory116can be any storage component of the user device110, such as non-volatile random-access memory (“RAM”). After a user selects a launcher mode, the management application112can install the corresponding settings.

The launcher114can also allow a user to switch modes while using the user device110. For example, after launching in a first launcher mode, the launcher114can include an option for selecting a second available launcher mode. If the user does this, the management application112can uninstall the first mode settings126and install the second mode settings128from memory. The launcher114can then operate using the second mode settings128.

FIG.2is a flowchart of an example method for providing multiple modes in a launcher. At stage210, the management application112can request the launcher profile124from the management server120. For example, the user device110can be a multi-user device that is not assigned to a particular user. Users can log in to the user device110through the management application112, and the management application112can configure the launcher114according to the user's launcher profile124. The management application112can request the launcher profile124in response to a user login attempt. For example, the management application112can display a login screen on the user device110. When a user enters login credentials, the management application112can send the login credentials to the management server120. The login credentials can include an identifier (“ID”) that identifies the user's profile, such as a username or user ID.

At stage220, the management application112can receive the launcher profile124from the management server120. For example, the management service122can authenticate the credentials sent by the management application112. If authentication is successful, the management service122can locate the user's launcher profile124using the credentials. The management service122can then send the user's launcher profile124to the management application112.

The launcher profile124can designate whether the user is restricted to one launcher mode or can select a launcher mode. The launcher profile124can include the launcher mode settings of any launcher modes that the user is authorized to use on the user device110. For example, if the user is only authorized to use the user device110with a first launcher mode, then the launcher profile124can include the first mode settings126. On the other hand, if the user is authorized to use a first or second launcher mode, then the launcher profiler124can include the first and second mode settings126,128. The launcher profile124can also include the launcher mode settings of any additional launcher modes that the user is authorized to use.

At stage230, the management application112can display options for selecting a launcher mode. For example, the launcher mode options can be displayed in a GUI as selection mechanisms, such as buttons. Although this stage is described as being performed by the management application112, it can alternatively be performed by the launcher114. For example, the management application112can install the launcher profile124without installing a launcher mode. This can include configuring the launcher114to present the launcher mode options in a GUI.

At stage240, the management application112can receive a selection of a launcher mode. For example, the user can simply select the desired launcher mode. If the launcher114present the launcher mode options at stage230, then the launcher114can receive the selection and inform the management application112.

At stage250, the management application112can install settings for the selected launcher mode on the user device110. For example, if the user selects a first launcher mode, then the management application112can install the first mode settings126, and if the user selects the second launcher mode, then the management application112can install the second mode settings128. Installing settings can include configuring which applications are accessible in the launcher114. Once the settings are installed, the launcher114can initiate in the selected launcher mode.

The launcher114can have an option for switching launcher modes. For example, while using the user device110in a first launcher mode, the user can choose to switch to a second launcher mode. When this happens, the management application112can uninstall the first mode settings126and install the second mode settings128. In one example, the second mode settings128, and the settings for any other launcher modes available to the user, can be retained in the memory116on the user device110. This can expedite launcher mode changes because the management application112does not have to retrieve the second mode settings128.

Although the launcher profile124is described above as being specific to a user, the launcher profile124can also be specific to the user device110. For example, the user device110can be configured with a launcher profile124that either allows or restricts launcher mode selection. Using the admin interface132, an admin can modify properties of the launcher profile124without needing to push an entirely new profile to the user device110. For example, the admin can change the launcher114from Single App mode to Multi App, change which application is available in Single App mode or applications in Multi App mode, add additional launcher modes, or configure the launcher144so that any user that logs in can select a launcher mode to use. The management server120can apply the changes made by the admin without the need to push new launcher profiles124out. For example, the management server120can apply new launcher mode settings or application files to the user devices.

In some examples, the launcher profile124can be dependent on the user and the user device110. For example, a first launcher profile124specific to the user device110can be installed on the user device110. The first launcher profile124can include launcher mode settings for launcher modes that can be used on the user device110. When a user logs in, the management application112can retrieve a second launcher profile specific to the user. The user launcher profile can indicate whether the user can choose a launcher mode. If so, the user launcher profile can designate which launcher modes the user is allowed to use. The user can then be presented with the allowed launcher mode options, and any other launcher modes in the device launcher profile can be hidden from the user. An admin can use the admin interface132to change whether a user can select a launcher mode, which launcher modes a user can access, and which launcher modes to retain on the user device110.

Using the admin interface132, an admin can simultaneously modify launcher settings of multiple user devices or users. For example, users and user devices can be assigned to groups within an organization, and the admin can select a group in the admin interface132when modifying launcher mode settings. As an example, a restaurant chain uses user devices110for facilitating customers paying for their meals. The user devices110are configured with the launcher112in a Single App mode that includes a payment application that patrons can use for providing payment. To expand the use of the user devices110, the restaurant chain decides to use a second application on the user devices110that allows employees to view table assignments for waiters. Instead of having to manually reconfigure the devices, an admin user can use the admin interface132to reconfigure the user devices110so that employees can switch between modes. For example, the user devices110can be reconfigured with two different Single App modes, one with the payment application and another with the waiter assignment application. The user devices110can be given to patrons in the payment application Single App mode so that they can pay without accessing any other part of the user devices110, but the employees can have access to switch launcher modes to the Single App mode with the waiter assignment application.

FIG.3is a flowchart of example logic of the management application112when a user logs in to a user device110configured with a launcher114. At stage302, a user can log in to the management application112. For example, the user can boot up the user device110or turn the user device's display on when no one is logged in. When this happens, the management application112can display a login prompt, and the user can input login credentials, such as a username and password.

At stage304, the management application112can retrieve the user's launcher profile124. For example, the management application112can send the login credentials to the management server120where the credentials can be verified. If the credential verification fails, the user can be notified to reenter the log credentials. If the credential verification is successful, the management service122can retrieve the launcher profile124for the user. For example, launcher profiles124can be retained in a database, and the management service122can retrieve the launcher profile124associated with the login credentials and send that launcher profile124to the management application112.

At stage306, the management application112can determine whether the user can choose a launcher mode. For example, the launcher profile124can include a “user option” property that designates whether the user can choose a launcher mode. The management application112can check the user option property before installing any launcher mode settings.

If the user option property indicates that the user cannot choose a launcher mode, then the process can proceed to stage308where the management application112can configure the launcher for a designated mode. In one example, the launcher profile124can include a “designated mode” property that designates a launcher mode when the user is not permitted to choose. The management application112can install the settings of the designated launcher mode as indicated in the designated mode property. Alternatively, because only one mode is accessible to the user, the launcher profile124may only include settings for one launcher mode. If so, when the user option property indicates that the user cannot choose a launcher mode, the management application112can be configured to simply install the launcher mode settings included in the launcher profile124.

If the user option property does indicate that the user can choose a launcher mode, then, at stage310the management application112can determine whether the user has a default launcher mode enabled. For example, the launcher profile124can include a “default launcher mode” property that, when enabled, causes the management application112to install the launcher mode settings of a default launcher mode. The default launcher mode can also be identified in the launcher profile124. The management application112can install the launcher mode settings for the default launcher mode at stage312. The management application112can also save the launcher mode settings of the other available launcher modes in the user device's memory116.

The default launcher mode can be set by the user or an admin. For example, if the user typically uses a first launcher mode when using the user device110, then the user can designate the first launcher mode as the default mode. The default launcher mode can also be determined based on the launcher mode that user most often uses. For example, if a certain user logs into the user device110and initiates a certain Single App mode more frequently than any other available mode, then the management application112can automatically configure the launcher114for that Single App mode when the user logs in. The user can then have the option to choose a different mode. The default mode designation can be saved to the user's launcher profile124so that the management application112automatically configures the launcher114in the first launcher mode when the user logs in to the user device110. The user can then have the option to change launcher modes. As an example, if the first launcher mode is set as the default for the user, when the user logs in to the user device110, the management application112can install the first mode settings126and save the second mode settings128in the memory116. If the user chooses to change modes at stage320, then the management application112can uninstall the first mode settings126, save the first mode settings126in the memory116, and then proceed to stage318where the management application112can install the second mode settings128from the memory116.

If the user does not have a default mode, then the management application112can request that the user select a mode at stage314. For example, the management application112can display a list of available launcher modes in a GUI. At stage316, the user can select one of the available launcher modes. At stage318, the management application112can install the settings for the selected mode. The settings for unselected launcher modes can be retained in the memory116and retrieved if the user changes launcher modes.

Although the process above is described as being performed by the management application112, some of the stages can be performed by the launcher114. For example, when the user can choose a launcher mode, the management application112can provide information about the available launcher modes to the launcher114, and at stage314the launcher can display the launcher mode options in its GUI. At stage316, the launcher114can receive the user's selection and provide the selection to the management application112. The management application112can then install the corresponding launcher mode settings. The launcher114can then initiate using the installed settings. The launcher114can also receive a user selection for changing modes at stage320. The launcher114can provide the selection to the management application112, and the management application112can install the corresponding settings at stage318.

In an example, properties of a launcher profile,124such as the user option property, designated mode property, and default mode properties described above, can be modified by an admin using the admin interface132. This can allow an admin to modify a launcher profile124without having to push an entirely new profile to the user device110.

FIG.4is a sequence diagram of an example method for providing multiple modes in a launcher. The example method describes where a user can choose a launcher mode and switch launcher modes. At stage402, a user can log in to the management application112. For example, the user can boot up the user device110or turn the user device's display on when no one is logged in, or another user can log out from the user device110. When this happens, the management application112can display a login prompt, and the user can input login credentials, such as a username and password.

At stage404, the management application112can authenticate the user with the management server120. For example, the management application112can send the user credentials to the management server120, and the management server120can verify the credentials. If the credentials are successfully verified, then at stage406, the management server120can send the user's launcher profile124to the management application112. The management service122can send the launcher profile124as one or more data files, such as a JSON file or XML file.

The launcher profile124can include launcher mode settings for all launcher modes available to the user. For exemplary purposes, the user's launcher profile124in this example includes the first mode settings126for a first launcher mode and second mode settings128for a second launcher mode. This is not meant to be limiting in any way. For example, a launcher profile can include launcher mode settings for any number of modes that a user is authorized to use, such as one or more than two.

At stage408, the management application112can detect that the launcher profile124allows for the user to choose a launcher mode. For example, the launcher profile124can include a property field that indicates whether the user can choose a launcher mode, and the management application112can check this property field before installing any launcher mode settings.

At stage410, the management application112can display launcher mode options in a GUI. For example, the management application112can display names of the first and second launcher modes as an ordered list where the names are GUI selection mechanisms. In one example, the management application112can configure the launcher114to display the available launcher mode names to the user, and the launcher114can display the options.

At stage412, the user can select the first launcher mode. At stage414, the management application112can install the first mode settings126. Although the first launcher mode is installed, the second mode settings128can be retained in the memory116of the user device110in case the user switches launcher modes.

At stage416, the management application112can initiate the launcher114. The launcher114can initiate using the installed first mode settings126. As an example, the first launcher mode can be a Single App mode that allows access to a particular application associated with one role the user has with an organization. The management application112can load the settings for the application and configure the launcher114so that the rest of the user device110is inaccessible.

At stage418, the user can select to change to a second launcher mode. This can be an option provided in the launcher114. The user can select an option for changing launcher modes, and the launcher114can display a list of modes that the user can switch to based on the launcher profile124. In this example, the launcher114can display the name of the second launcher mode, which the user can select.

At stage420, the launcher114can request the second launcher mode from the management application112. At stage422, the management application112can uninstall the first mode settings126and, at stage424, the management application112can install the second mode settings128. As an example, the second launcher mode can be a Multi-App mode that includes applications associated with a second role the user has with an organization. The management application112can load the settings for the applications and configure the launcher114so that the rest of the user device110is inaccessible. This can include restricting access to the application from the first launcher mode. The management application112can also uninstall the first mode settings and retain the first mode settings126in the memory116in case the user switches modes again.

At stage426, the launcher114can launch in the second launch mode. For example, the launcher114can display icons corresponding to the applications loaded from the second mode settings128.

The ability to select launcher modes and switch between launcher modes can be particularly useful to users with multiple roles in an organization. For example, instead of requiring the user to carry multiple user devices, the user can access launcher modes for each role by simply selecting the appropriate launcher mode from a menu. The settings for that launcher mode can be installed on the user device110so that the user can use the user device110in the corresponding role. To switch roles, the user can simply switch launcher modes.

Other examples of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the examples disclosed herein. Though some of the described methods have been presented as a series of steps, it should be appreciated that one or more steps can occur simultaneously, in an overlapping fashion, or in a different order. The order of steps presented are only illustrative of the possibilities and those steps can be executed or performed in any suitable fashion. Moreover, the various features of the examples described here are not mutually exclusive. Rather any feature of any example described here can be incorporated into any other suitable example. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.