1. Technical Field
This application relates to electronic devices and, more particularly, to a connection status based application launch system for an electronic device.
2. Related Art
Electronic devices may include an input element that allows a user to selectively launch software applications. As one example, a mobile phone may include a quick launch button or convenience key that is associated with an application chosen by the user. By allowing the user to choose the application that is associated with the quick launch button, the device provides quick and convenient access to the user's chosen application. For example, the user may access the chosen application with a single button press without needing to traverse through a series of menus displayed on the device to find the application.
Although quick launch buttons are convenient for the user, the number of quick launch buttons included on a device is limited. Some devices may only include one quick launch button. In an implementation with only one quick launch button, the user may be forced to select only one application that can be launched quickly. This can be problematic when the user desires quick access to different applications in different situations yet only has a limited number of quick launch buttons.
The system may be better understood with reference to the following drawings and description. The components in the figures are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the disclosure. Moreover, in the figures, like reference numerals designate corresponding parts throughout the different views.
An electronic device is often loaded with several different software applications. The electronic device may also have an application launch input element, such as a quick launch button, that a user may customize to be associated with a specific application. When the user triggers the input element (e.g., presses or actuates the quick launch button), the electronic device activates the application that is associated with the input element. Some users desire quick access to a greater number of applications than allowed by the number of available application launch input elements on the device. Additionally, some applications require a fast activation in order to be useful. For example, some photography opportunities pass before the user can activate the camera application, especially if the camera application is not quickly accessible via a quick launch button. However, when a device has only one quick launch button (or a limited number of quick launch buttons), some users may prefer to have the quick launch button associated with an application that is used more often than the camera application, such as a messaging application or an Internet browser application.
To address these issues, more than one application may be associated with an application launch input element by distinguishing between different active connection states of the device. In one implementation, several applications may be associated with a single application launch input element by associating a first application with a connection state where the device has no active connections, a second application with a connection state where the device has an active Wi-Fi connection, a third application with a connection state where the device has an active Bluetooth connection, a fourth application with a connection state where the device has an active headphone connection, and a fifth application with a connection state where the device has an active Universal Serial Bus (“USB”) connection. When the user triggers the input element (e.g., presses or actuates the quick launch button), the electronic device identifies the current active device connection and launches the application associated with that connection.
The application selection unit 106 may include a computer or signal processor that executes computer-readable instructions retained in a local or distributed memory to identify which available application should be launched in response to the user triggering the application launch input element. The application selection unit 106 may activate a different application when the connection status determination unit 104 determines that the one or more connection interfaces of the device reflect a first active connection state for the electronic device when the application launch input element is triggered than when the connection status determination unit 104 determines that the one or more connection interfaces reflect a second active connection state for the electronic device when the application launch input element is triggered. For example, the application selection unit 106 may activate a different application when a first connection type is active than when a second connection type is active. In one implementation, the processor of the connection status determination unit 104 may be the same processor that is used in the application selection unit 106. In another implementation, the processor of the connection status determination unit 104 may be different than the processor used in the application selection unit 106.
The connection interfaces 204, 206, and 208 may be physical equipment or software programs designed to communicate information from one system of an electronic device or program to another electronic device or program. As one example, the connection interface 204 may be a wireless connectivity interface, such as a Wi-Fi or Bluetooth interface that allows connection between the electronic device 102 and another electronic device. As another example, the connection interface 206 may be a headphone jack that connects an audio listening device with the electronic device 102. As yet another example, the connection interface 208 may be a wired physical connection port, such as a USB interface that allows connection between the electronic device 102 and another electronic device.
The display device 210 may render a graphical user interface that displays content to the user. For example, one or more of the applications 322, 324, and 326, when activated, may produce visual content that is displayed to the user on the display device 210. The user input device 212 (e.g., keypad, touch screen, etc.) allows the user to input requests or other information to the electronic device. The application launch button 202 may be a standalone physical button or key (e.g., a convenience key) extending out from a housing of the electronic device. Alternatively, the application launch button 202 may be part of the user input device 212 that includes other input elements. In another implementation, the application launch button 202 is a virtual button visually depicted on the display device 210.
In response to a trigger of the application launch button 202 (e.g., a when a user presses or actuates the application launch button), the processor 304 identifies the active connections of the electronic device 102. At any given time the electronic device 102 may have zero, one, two, or more active connections. For example, the processor 304 may determine which zero or more connection interfaces of the electronic device 102 are being actively used by the electronic device to couple the electronic device 102 with other devices or programs. The processor 304 may select one or more of the available applications 322, 324, and 326 for activation in response to the trigger of the application launch button 202. The processor 304 may activate different applications when the electronic device 102 has different active connections. For example, the processor 304 may select and activate the application 322 when a first connection interface of the electronic device is active when the application launch button 202 is triggered. When a second connection interface of the electronic device is active when the application launch button 202 is triggered, the processor 304 may select and activate a different application, such as the application 324.
The connection status based application launch system of
The processor 304 may execute a number of different programs or applications during the connection status based application selection process. In one implementation, the processor 304 executes the button monitor program 316 to detect when the application launch button 202 is triggered. In response to a detected trigger of the application launch button 202, the processor 304 may activate (e.g., launch) the application selection program 318 before launching the user's desired application. In this manner, the application selection program 318 may serve as an intermediary between the button press and the user's desired application.
After the application selection program 318 is activated, the system determines the status of the available connection interfaces of the electronic device when the application launch button 202 was triggered. In one implementation, the connection monitor program 320 monitors the connection interface 312 and one or more additional connection interfaces of the device to determine the connection status of the device. The determined connection status may indicate that zero external connections are active, one external connection is active, two external connections are active, or more than two external connections are active.
The connection monitor program 320 may interpret connection status data received from the connection interface 312 and other connection interfaces to identify which connection interfaces are active. The connection monitor program 320 may output an indication of the active connections to the application selection program 318. In one implementation, the connection monitor program 320 outputs a binary representation of a number that corresponds to the connection state of the device. For example, the connection monitor program 320 may output the number 0 when no connection interfaces are active, the number 1 when a first designated connection interface (e.g., Wi-Fi, etc.) is active, the number 2 when a second designated connection interface (e.g., Bluetooth, etc.) is active, the number 3 when a third designated connection interface (e.g., headphone, etc.) is active, and other numbers to indicate other connections states. In another implementation, the connection monitor program 320 outputs the name of the one or more active connection interfaces. The application selection program 318 uses the received connection status information to cause the processor 304 to activate a predetermined application of the plurality of applications 322, 324, and 326. For example, if the output from the connection monitor program 320 indicates that the device has an active Wi-Fi connection, then the application selection program 318 accesses a collection of predetermined links between connection states and applications, and causes the processor 304 to activate the application linked with the Wi-Fi connection that is active.
The collection of predetermined links accessible by the application selection program 318 may include a first predetermined link between a first connection type and a first application 322, and a second predetermined link between a second connection type and a second application 324. The links may be default system links or may be established by the user. The application selection program 318 may cause the processor 304 to activate the first application 322 based on the first predetermined link when the first connection type is active when the application launch button 202 is triggered. Similarly, the application selection program 318 may cause the processor 304 to activate the second application 324 based on the second predetermined link when the second connection type is active and the application launch button 202 is triggered.
At act 408, the application selection program determines the connection state of the electronic device. For example, the application selection program may obtain data from one or more connection interfaces of the electronic device to determine which connection interfaces, if any, are active. In one implementation, the connection state indicates which types of connection interfaces are active. In another implementation, the connection state indicates the names of specific connections within one type of connection interface.
At act 410, an application is selected from the multiple available applications based on the determined connection state of the electronic device. To select the appropriate application based on the connection state of the device, the application selection program may access a collection of one or more default or user-defined links between specific applications and corresponding connection states.
If the application selection program determines that the electronic device is in a first active connection state, then the first application that is linked with the first active connection state is launched at act 412. If the application selection program determines that the electronic device is in a second active connection state, then the second application that is linked with the second active connection state is launched at act 414. If the application selection program determines the electronic device is in an Nth (e.g., third, fourth, fifth, sixth, etc.) active connection state, then the Nth application that is linked with the Nth active connection state is launched at act 416.
At act 410, an application is selected from multiple available applications. The selection may be based on a lack of any active connections, may be based on a single active connection, or may be based on multiple active connections. For example, the electronic device may be in the first active connection state (which leads to the launch of the first application at act 412) when none of the connection interfaces of the electronic device are active. The electronic device may be in the second active connection state (which leads to the launch of the second application at act 414) when a first connection interface of the electronic device is active. As another example, the electronic device may be in the Nth active connection state (which leads to the launch of the Nth application at act 416) when a second connection interface of the electronic device is active.
The method may distinguish between active connection states at acts 408 and 410 by identifying one primary active connection interface. For example, when both a headphone connection and a Wi-Fi connection are active, the method may identify one of the connections as the primary active connection interface and launch the corresponding application in response to a trigger of the application launch input element of the electronic device. Alternatively, the method may distinguish between active connection states at act 410 by identifying multiple active connection interfaces. For example, in one implementation, the electronic device may be in the first active connection state when both a first connection interface (e.g., headphones) and a second connection interface (e.g., Wi-Fi) are active, but may be in the second active connection state when the first connection interface (e.g., headphones) is active and the second connection interface (e.g., Wi-Fi) is not active. In this implementation, the method could launch a different application in response to the trigger of the application launch input element based on a group of active connections. In the example above, the method may launch an Internet based streaming music service when both the headphones and Wi-Fi connections are active, but may launch a local media application when the headphones are active but the Wi-Fi connection is not.
The enablement element 506 allows the user to switch the system between an active state and a non-active state. The system enables connection status based application activation while the enablement element 506 is in the active state. The system also disables connection status based application activation while the enablement element 506 is in the non-active state. Because the user may switch between states (e.g., an active state and a non-active state, for example), the user can control when the system considers connection status information before launching an application in response to a trigger of the application selection input element. If the user switches the system into the non-active state, then the system may launch an associated application without considering the status of the connection interfaces of the device.
The application launch settings input element 504 includes one or more connection state designations 604, 606, and 608, and one or more user input fields 610, 612, and 614. The user input fields allow a user to choose specific applications to be associated with specific connection state designations. The user input fields 610, 612, and 614 are shown as drop down menus in the implementation of
The application launch settings input element 504 of the user interface 602 allows creation of links between connection states and applications. As one example, the user may select a camera application to be associated with a “no active connections” state by selecting the camera application from the input field 610. This association creates a link stored in computer memory between the “no active connections” state and the camera application. The system may later access this link to know to launch the camera application when the quick launch button is pressed while the device is in the “no active connections” state. As another example, the user may select an Internet browser application to be associated with an “active Wi-Fi” state by selecting the Internet browser application from the pull down menu 612. This association creates a link stored in computer memory between the “active Wi-Fi” state and the browser application. The system may later access this link to know to launch the browser application when the quick launch button is pressed while the device is in the “active Wi-Fi” state. As yet another example, the user may select a music or media application to be associated with an “active headphone” state by selecting the music or media application from the pull down menu 614. This association creates a link stored in computer memory between the “active headphone” state and the music or media application. The system may later access this link to know to launch the music or media application when the quick launch button is pressed while the device is in the “active headphone” state.
The implementation of the user interface 602 in
The application launch settings input element 504 of the user interface 602 may also include an indication of a current connection state of the electronic device while the user interface 602 is displayed in the display area of the electronic device. In the implementation of
In some implementations, the system launches different applications based on the status of different types of connection interfaces. The user interface 602 in the implementation of
In other implementations, the system launches different applications based on details of a single type of connection interface. For example, the user interfaces 702, 802, 902, 1002, and 1102 of
In the implementation of
In the implementation of
The user interface 802 also includes an input element, such as an “add new” button, that allows the user to define additional Bluetooth names so that additional application pairings between Bluetooth names and applications may be established. Other user interfaces, such as the interfaces 602, 702, 902, 1002, and 1102, may also be designed with a similar input element to create additional pairings between applications and connection states.
In the implementation of
Each of the processes described herein may be encoded in a computer-readable storage medium (e.g., a computer memory), programmed within a device (e.g., one or more circuits or processors), or may be processed by a controller or a computer. If the processes are performed by software, the software may reside in a local or distributed memory resident to or interfaced to a storage device, a communication interface, or non-volatile or volatile memory in communication with a transmitter. The memory may include an ordered listing of executable instructions for implementing logic. Logic or any system element described may be implemented through optic circuitry, digital circuitry, through source code, through analog circuitry, or through an analog source, such as through an electrical, audio, or video signal. The software may be embodied in any computer-readable or signal-bearing medium, for use by, or in connection with an instruction executable system, apparatus, or device. Such a system may include a computer-based system, a processor-containing system, or another system that may selectively fetch instructions from an instruction executable system, apparatus, or device that may also execute instructions.
A “computer-readable storage medium,” “machine-readable medium,” “propagated-signal” medium, and/or “signal-bearing medium” may comprise a medium (e.g., a non-transitory medium) that stores, communicates, propagates, or transports software or data for use by or in connection with an instruction executable system, apparatus, or device. The machine-readable medium may selectively be, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. A non-exhaustive list of examples of a machine-readable medium would include: an electrical connection having one or more wires, a portable magnetic or optical disk, a volatile memory, such as a Random Access Memory (RAM), a Read-Only Memory (ROM), an Erasable Programmable Read-Only Memory (EPROM or Flash memory), or an optical fiber. A machine-readable medium may also include a tangible medium, as the software may be electronically stored as an image or in another format (e.g., through an optical scan), then compiled, and/or interpreted or otherwise processed. The processed medium may then be stored in a computer and/or machine memory.
While various embodiments of the present system have been described, it will be apparent to those of ordinary skill in the art that many more embodiments and implementations are possible within the scope of the disclosure. Accordingly, the disclosure is not to be restricted except in light of the attached claims and their equivalents.