Selecting application that can handle data content

An apparatus, method, and computer readable medium for selecting and changing a default compatible application when opening data content not readable by the currently running application. The apparatus includes a memory and at least one processor. The at least one processor is coupled to the memory. The at least one processor configured to receive a request to handle data content. The at least one processor is also configured to determine a first application selected from a plurality of applications that can handle the data content. The at least one processor is further configured to launch the first application to handle the data content.

TECHNICAL FIELD

This disclosure relates generally to changing a default application while in the progress of activating. More specifically, this disclosure relates to a system and method for selecting and changing a default application for an application specific link or data.

BACKGROUND

Use of mobile electronic devices is pervasive. Users regularly rely on mobile devices to perform complicated tasks including using different types of data and links with various applications. Some applications cannot handle certain types of data or links

SUMMARY

This disclosure provides a system and method for selecting and changing a default application for an application specific link or data.

In a first embodiment, an apparatus is provided for selecting and changing a default application for an application specific link or data. The apparatus includes a memory and at least one processor. The at least one processor is coupled to the memory. The at least one processor is configured to receive a request to handle data content. The at least one processor is also configured to determine a first application selected from a plurality of applications that can handle the data content. The at least one processor is further configured to launch the first application to handle the data content.

In a second embodiment, a method for selecting and changing a default application for an application specific link or data. The method includes receiving a request to handle data content. The method also includes determining a first application selected from a plurality of applications that can handle the data content. The method further includes launching the first application to handle the data content.

In a third embodiment, a non-transitory medium embodying a computer program is provided for selecting and changing a default application for an application specific link or data. The non-transitory medium causes the computer program to receive a request to handle data content. The non-transitory medium also causes the computer program to determine a first application selected from a plurality of applications that can handle the data content. The non-transitory medium further causes the computer program to launch the first application to handle the data content.

DETAILED DESCRIPTION

One or more embodiments of the present disclosure recognize that when an application is launching another application to process the content, often time there are multiple application are registered to handle the type of data. Instead of prompting the user to select the application to launch, the one or more embodiments of the present disclosure use a method to intelligently select the application to be launched, and provides a way for the user to easily switch to other choices thereafter.

Many operating systems allow applications to register to be associated with specific file types, uniform resource identifier (URI) types, web links or some other IDs. For example, current operating systems prompt the user to select an application from a list and optionally provide a method for setting the application as a default. This solution requires the user to find the settings in the system configuration settings, which can be difficult to find or remember. Other operating systems require a selection for an application every time, without an option to remember the choice.

When the system needs to locate an application to be launched to open specific content, the system usually selects one of the applications among those registered for the specific data content, to open the content. The selection is either automatic by the system or manually by the end user. As an example, on the Android operating system, if the user selects to open a PDF file attachment on an email application, the system will choose an available PDF viewer or editor to open the attachment.

Requiring the user to make a selection every time when opening specific content does not provide an optimal user experience. Allowing the system to remember the selection improves the user experience.

FIG. 1illustrates an example communication system100in which various embodiments of the present disclosure may be implemented. The embodiment of the communication system100shown inFIG. 1is for illustration only. Other embodiments of the communication system100could be used without departing from the scope of this disclosure.

As shown inFIG. 1, the system100includes a network102, which facilitates communication between various components in the system100. For example, the network102may communicate Internet Protocol (IP) packets, frame relay frames, or other information between network addresses. The network102may include one or more local area networks (LANs); metropolitan area networks (MANs); wide area networks (WANs); all or a portion of a global network, such as the Internet; or any other communication system or systems at one or more locations.

The network102facilitates communications between various servers103and104and various client devices106-114. Each server104includes any suitable computing or processing device that can provide computing services for one or more client devices. Each server104could, for example, include one or more processors, one or more memories storing instructions and data, and one or more network interfaces facilitating communication over the network102.

Each client device106-114represents any suitable computing or communication device that interacts with at least one server or other computing device(s) over the network102. In this example, the client devices106-114include electronic devices, such as, for example, a desktop computer106, a mobile telephones or smartphones108, a personal digital assistant (PDA)110, a laptop computer112, a tablet computer114, a wearable device, smart watch, etc. However, any other or additional client devices could be used in the communication system100.

In this example, some client devices108-114communicate indirectly with the network102. For example, the client devices108-110communicate via one or more base stations116, such as cellular base stations or eNodeBs. Also, the client devices112-114communicate via one or more wireless access points (APs)118, such as IEEE 802.11 wireless APs, Bluetooth, and Wifi direct. Note that these are for illustration only and that each client device could communicate directly with the network102or indirectly with the network102via any suitable intermediate device(s) or network(s).

As described in more detail below, when a current application contains data content not readable by the current application, the system launches a default application from a list of application compatible with the data content.

FIGS. 2 and 3illustrate example electronic devices in a communication system according to various embodiments of the present disclosure. In particular,FIG. 2illustrates an example server200, andFIG. 3illustrates an example electronic device300. The server200could represent the server104inFIG. 1, and the electronic device300could represent one or more of the client devices106-114inFIG. 1.

As shown inFIG. 2, the server200includes a bus system205, which supports communication between at least one processor210, at least one storage device215, at least one communications unit220, and at least one input/output (I/O) unit225.

The processor210executes instructions that may be loaded into a memory230. The processor210may include any suitable number(s) and type(s) of processors or other devices in any suitable arrangement. Example types of processor210include microprocessors, microcontrollers, digital signal processors, field programmable gate arrays, application specific integrated circuits, and discreet circuitry.

The memory230and a persistent storage235are examples of storage devices215, which represent any structure(s) capable of storing and facilitating retrieval of information (such as data, program code, and/or other suitable information on a temporary or permanent basis). The memory230may represent a random access memory or any other suitable volatile or non-volatile storage device(s). The persistent storage235may contain one or more components or devices supporting longer-term storage of data, such as a ready only memory, hard drive, Flash memory, or optical disc.

The communications unit220supports communications with other systems or devices. For example, the communications unit220could include a network interface card or a wireless transceiver facilitating communications over the network102. The communications unit220may support communications through any suitable physical or wireless communication link(s).

The I/O unit225allows for input and output of data. For example, the I/O unit225may provide a connection for user input through a keyboard, mouse, keypad, touchscreen, or other suitable input device. The I/O unit225may also send output to a display, printer, or other suitable output device.

Note that whileFIG. 2is described as representing the server104ofFIG. 1, the same or similar structure could be used in one or more of the client devices106-114. For example, a laptop or desktop computer could have the same or similar structure as that shown inFIG. 2.

As described in more detail below, when a current application contains data content not readable by the current application, the system launches a default application from a list of application compatible with the data content. For example, any one of the client devices108-114may identify and launch the default application from a list of application compatible with the data content.

As shown inFIG. 3, the electronic device300includes an antenna305, a radio frequency (RF) transceiver310, transmit (TX) processing circuitry315, a microphone320, and receive (RX) processing circuitry325. The electronic device300also includes a speaker330, a processor340, an input/output (I/O) interface (IF)345, an input350, a display355, and a memory360. The memory360includes an operating system (OS) program361and one or more applications362.

The processor340is also coupled to the input350and the display355. The operator of the electronic device300can use the input350(e.g., keypad, touchscreen, button etc.) to enter data into the electronic device300. The display355may be a liquid crystal display, a light-emitting diode (LED) display, an optical LED (OLED), an active matrix OLED (AMOLED), or other display capable of rendering text and/or at least limited graphics, such as from web sites.

As described in more detail below, when a current application (e.g., one of applications362) contains or attempts to access data content not readable by the current application, the electronic device300launches a default application (e.g., another one of applications362) from a list of application in applications362that are compatible with the data content.

AlthoughFIGS. 2 and 3illustrate examples of devices in a communication system, various changes may be made toFIGS. 2 and 3. For example, various components inFIGS. 2 and 3could be combined, further subdivided, or omitted and additional components could be added according to particular needs. As a particular example, the processor340could be divided into multiple processors, such as one or more central processing units (CPUs) and one or more graphics processing units (GPUs). Also, whileFIG. 3illustrates the electronic device300configured as a mobile telephone or smartphone, electronic devices could be configured to operate as other types of mobile or stationary devices. In addition, as with computing and communication networks, electronic devices and servers can come in a wide variety of configurations, andFIGS. 2 and 3do not limit this disclosure to any particular electronic device or server.

FIGS. 4A, 4B and 4Cillustrate example displays400,401and402activating a default application for opening application specific data content445according to this disclosure. The embodiment of the displays400,401and402illustrated inFIGS. 4A-4Cis for illustration only.FIGS. 4A-4Cdo not limit the scope of this disclosure to any particular implementation of an electronic device.FIG. 4Aillustrates a display400with a scrollable toolbar410.FIG. 4Billustrates a display401with an extended toolbar415.FIG. 4Cillustrates a collapsible toolbar420.

The display400,401,402includes a running application405. The running application405includes data content445, which can be, e.g., an application specific link or data, specific file types, uniform resource identifier (URI) types, web links or other IDs, which is not readable by the running application405. When the data content445is selected, the running application405passes the data content445to the system and asks the system to find a compatible application425. The system determines a list of compatible applications425for the application specific link or data. In certain embodiments, the system keeps a registry of data types that are manageable by the compatible applications425when an application is originally installed. These compatible applications425can be stored in a registry of the system. In other embodiments, the system can search through applications previously installed for compatible applications425, which can also be stored in a registry.

The system displays a scrollable toolbar410on the display400. The scrollable toolbar410also includes a scroll button435. The scroll button435allows the user to view the remaining compatible applications425over the amount available to display.

The display401illustrates an extended toolbar415. The extended toolbar415expands to display multiple rows of icons for compatible icons425. The extended toolbar415can be extended automatically by the system or by the user. When the user extends the toolbar, the icons of the compatible applications425change size based on the amount of compatible applications425and the size of the extended toolbar415. The size of the extended toolbar415can be reset to a default size each time the extend toolbar is open or the extended toolbar415can be the size the user adjusted side from the previous time the extended toolbar415was opened.

The display402illustrates a collapsible toolbar420. The collapsible toolbar420includes an extendable/collapsible button440. The extendable/collapsible button440extends or collapses the collapsible toolbar420. When the collapsible toolbar420is in the collapsed state, the default application430can still be visible in various embodiments. The collapsible toolbar440can start in a collapsed or expanded state. The collapsible toolbar440can be changed with the extendable/collapsible button420as well as with different user gestures.

The toolbar410,415,420can be displayed at a designated part of the display400,401,402. The toolbar410,415,420can also be displayed on a portion of the display400,401,402that does not obstruct parts of the running application405. The toolbar410,415,420can have the icons laid out in a linear progression, circular progression. When more compatible applications425are available to be shown in the designated area, a specific gesture can be made to the phone to navigate between the compatible applications425.

The toolbar410,415,420can display a number of icons for compatible application425. In certain embodiments, four icons for compatible applications425are displayed in the toolbar410,415,420. The toolbar410,415,420can indicate a default application430. The default application430can be indicated in a different color, change in size, first in order, or even a displayed outside the toolbar410,415,420. The compatible applications425can be order in the toolbar410,415,420in any manner, such as popularity, alphabetically, general usage of the compatible application, usage for the specific type of data content445, amount of memory required to open the data content445using the compatible application425, amount of time required to open the data content445using the compatible application425, amount of time since the compatible application425was run, the amount of time since the compatible application425was used to manage the data content445, based on reviews of the compatible applications425, relevancy upon the environment the compatible application425is launched in, or based on the content. The default application430can follow order used for the toolbar410,415,420or can be displayed in a primary position regardless of the ordering of the other compatible applications425.

FIG. 5illustrates an example process500for selecting and changing a default application for an application link or data according to this disclosure. For example, the process depicted inFIG. 5may be performed by electronic device300inFIG. 3; the process may also be implemented by client devices106-114inFIG. 1, referred to hereinafter collectively or individually, as “the system.”

In operation510, the system receives a request to open specific data content445. The request can be received through a selection of a link or selection of data. In certain embodiments, a running application405contains data content445that is not readable by the running application405.

In operation520, the system determines a default application430selected from a plurality of compatible applications425that can handle the data content445. Handling the data content means, for example, accessing, opening, or reading the data content. The system can store a list of compatible applications425by a media type in a registry. When an application is installed on the system, the media types of data content445that are manageable by the application are recorded in the registry. In certain embodiments, the system can search through applications already installed to create a registry of media types of data content445that are manageable by each application.

In operation530, the system launches the default application430for opening the data content. The default applications430can be selected in any manner, such as most generally used compatible application425, most used compatible application425for the specific type of data content445, least amount of memory required to open the data content445of the compatible applications425, least amount of time required to open the data content445of the compatible applications425, most recent compatible application425that was run, most recent compatible application425used to manage the data content445, most popular compatible application425based on reviews of the compatible applications425, most appropriate application425to launch based upon the context or environment, or any other method of choosing a default application.

In operation540, the system displays a toolbar410,415,420with the plurality of compatible applications425including the default application430. The toolbar410,415,420can be displayed at a designated part of the display400. The toolbar410,415,420can also be displayed on a portion of the display400that does not obstruct parts of the running application405. The toolbar410,415,420can have the icons laid out in a linear progression, circular progression. When more compatible applications425are available to be shown in the designated area, a specific gesture can be made to the phone to navigate between the compatible applications425.

The toolbar410,415,420can display a number of icons for compatible application425. In certain embodiments, four icons for compatible applications425are displayed in the toolbar410,415,420. The toolbar410,415,420can indicate a default application430. The default application430can be indicated in a different color, change in size, first in order, or even a displayed outside the toolbar410,415,420. The compatible applications425can be order in the toolbar410,415,420in any manner, such as, popularity, alphabetically, general usage of the compatible application, usage for the specific type of data content445, amount of memory required to open the data content445using the compatible application425, amount of time required to open the data content445using the compatible application425, amount of time since the compatible application425was run, the amount of time since the compatible application425was used to manage the data content445, based on reviews of the compatible applications425, relevancy upon the environment the compatible application425is launched in, or based on the content. The default application430can follow order used for the toolbar410,415,420or can be displayed in a primary position regardless of the ordering of the other compatible applications425.

In operation550, the system receives a request to change the default application430. The request can be a user input selecting an icon of one of the compatible applications425including a click or other gesture. The system runs the alternate compatible application425that is selected by the user to manage the data content445. Based on the method of picking a default application430, the alternate compatible application425can be defined as the new default application430.

In certain embodiments, a combination of ordering methods can be used to determine the following default application430. For example, the first time a user attempts to open a specific type of data content445, the system might use the chosen ordering of the compatible applications425and the selection of the default application430. But a different method of ordering the compatible applications425is used on all subsequent attempts to open the same type of data content445. For example, the first time might order the compatible applications ordering by the application install date and every subsequent time the ordering could be based on amount of time since the compatible application425was last used to open the specific data content445. In certain embodiments, a multi-level ordering of the compatible applications425is used to determine ordering of applications with similar ordering values. For example, if the compatible applications are ordered based on the application rating from the application store, two compatible applications425with a similar rating could be further ordered based on amount of ratings or downloads of a particular compatible application425

In certain embodiments, the system does not receive a request to change the default program and runs the default program430. The system can delay or wait to start the default program430for a limited amount of time or receiving a gesture to indicate that the default program430is to be used. When the gesture indicating the default program430is to be used, the system removes the display of the toolbar and the icons.

In operation560, the system launches the changed default application430and stop displaying the toolbar410,415,420. The changed default application430is used to manage the data content445. The toolbar410,415,420may no longer displayed once the changed default application is opened to manage the data content445, or the toolbar410,415,420may continue to display allowing the repeated input to change the default application430, only to disappear after a specified period time period. When the toolbar410,415,420receives an input to change the default application430, the new default application430is highlighted or indicated as the default application430on the toolbar410,415,420. The toolbar410,415,420can be reordered accordingly whenever a new default application430is selected. The toolbar410,415,420disappears after a time period without receiving a new input to change the default application430.

AlthoughFIG. 5illustrate examples of processes for selecting and changing a default application for an application link or data, respectively, various changes could be made toFIG. 5. For example, while shown as a series of steps, various steps could overlap, occur in parallel, occur in a different order, or occur multiple times.