[go: up one dir, main page]

HK1164013A - Location and contextual-based mobile application promotion and delivery - Google Patents

Location and contextual-based mobile application promotion and delivery Download PDF

Info

Publication number
HK1164013A
HK1164013A HK12104096.1A HK12104096A HK1164013A HK 1164013 A HK1164013 A HK 1164013A HK 12104096 A HK12104096 A HK 12104096A HK 1164013 A HK1164013 A HK 1164013A
Authority
HK
Hong Kong
Prior art keywords
application
data
mobile device
applications
metadata
Prior art date
Application number
HK12104096.1A
Other languages
Chinese (zh)
Inventor
J.K.Y.劳
J.P.小布鲁诺
Original Assignee
微软技术许可有限责任公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 微软技术许可有限责任公司 filed Critical 微软技术许可有限责任公司
Publication of HK1164013A publication Critical patent/HK1164013A/en

Links

Description

Location and context based mobile application promotion and delivery
Technical Field
The present invention relates to an apparatus and method for discovering new mobile device applications based on the current context of the mobile device.
Background
With the increasing popularity of mobile computing platforms that have access to hundreds or thousands of applications, including cellular telephone devices, handheld computers, smart phones, and PDAs, there is a need to improve the user experience by allowing easy discovery of the most relevant applications without having to browse through thousands of unrelated applications, or indeed being limited to the most popular applications.
Discovering device applications based on the potentially large number of applications that a user must browse or search through before discovering applications that a user wishes to download can be cumbersome. Furthermore, it can be difficult to find applications that are relevant to the user's current environment, especially for locations that are infrequently visited. Because of these difficulties, many applications desired by mobile device users have never been discovered, thereby limiting the availability and use of highly relevant, but undiscovered mobile computing applications.
Accordingly, there is a substantial opportunity for improvement in techniques for facilitating discovery of applications for mobile devices using contextual information based on the current environment of the mobile device.
Disclosure of Invention
Apparatus, computer-readable storage media, and methods are disclosed for allowing a mobile device user to discover applications for the mobile device using context information describing the current environment of the mobile device including location, time, and user data (e.g., user calendar information).
Current models for applications for mobile devices are not found to be scalable. For example, apple's application store includes over 150,000 applications, and it is becoming increasingly difficult for mobile device users to discover related applications. In fact, when most mobile device users travel to an application store, they miss the discovery of a wide variety of applications available to various mobile devices by looking at "what new content" or a list of the top 25 applications, rather than screening or searching thousands of applications.
Furthermore, there are many mobile device applications that are considered very relevant based on the user's current environment, but are difficult to discover under traditional application storage models. For example, Woodland park in seattle provides an application that allows users to track their location on the park floor, access additional information about the animals, and view a schedule of zoo activity. However, it is difficult for a user to find such an application because the application is less popular than other applications that attract more viewers. In this way, the context-based application classification and discovery service allows the global application distribution and monetization model to be extended to more granular, targeted, and possibly more relevant audiences. As described further below, location-based and other environment-based promotions for applications not only address discovery problems in large, diverse application catalogs, but also give developers and businesses the ability to use their application content to more accurately reach targeted audiences.
One exemplary embodiment disclosed herein is a method that includes transmitting context data based at least in part on a current environment of a mobile device, and automatically receiving application data for a first application executable on the mobile device, wherein the first application is selected based on the transmitted context data and application metadata associated with the first application, and the application metadata represents a relevance of one or more applications to the environment-based conditions of the mobile device.
In some examples, the application data includes computer readable instructions for a first application executable on the mobile device. In some examples, the first application is a web application and the application data includes an address associated with the first application. In some examples, the first application is installed on the mobile device prior to the acts of sending the context data and receiving the application data. In some examples, the method further includes generating an output of the mobile device for notifying a mobile device user of availability of the computer-readable instructions for the first application. In some examples, the application data includes an address for remotely retrieving computer-readable instructions executable on the mobile device.
In some examples, the method further includes sending second context data representing a second current mobile device environment after moving the mobile device to the second environment, automatically receiving computer readable instructions for a second different application executable on the mobile device, selecting the second application based on the sent second context data.
Another exemplary embodiment disclosed herein is a method comprising receiving context data from a remote device, the context data based at least in part on a current location of the remote device, receiving application metadata associated with one or more applications executable by the remote device, the application metadata including data representing a relevance of the applications to the one or more locations, selecting one or more of the applications based at least in part on the context data and the application metadata, and transmitting data for the selected applications to the remote device.
In some examples, the method further comprises sending computer readable instructions for the selected application to a remote device, wherein the computer readable instructions, when executed, cause the remote device to perform the method associated with the selected application. In some examples, the application metadata includes previously used data based on at least one of the applications on the mobile device when the mobile device is at or near a current location. In some examples, the data for the selected application includes one or more network addresses associated with the selected application. In some examples, the data for the one or more selected applications includes audio data, video data, or both audio data and video data.
Yet another exemplary embodiment disclosed herein is a method of delivering applications to a mobile device, including associating metadata with one or more applications that are downloadable and executable on the mobile device, automatically receiving context data from the mobile device including data representative of a current geographic location, searching the metadata based on the context data to determine which applications are likely to be of interest based on the current geographic location, and sending notification data to the mobile device indicating the determined applications.
In some examples, the method further includes selecting one of the applications, transmitting the selected application to the mobile device, and executing the selected application on the mobile device. In some examples, the application program is an executable program. In some examples, the metadata includes criteria that, if satisfied, result in a determination of an application of interest. In some examples, the method further includes automatically installing the determined applications and automatically removing one or more of the determined applications if they are not accepted by the user of the mobile device.
In other exemplary embodiments, a computer-readable storage medium or mobile device apparatus stores computer-readable instructions that, when executed by a computer, cause the computer to perform some or all of the methods described herein.
The described techniques and tools for a solution to improve mobile device experience and performance may be implemented separately or in various combinations with each other. As will be described more fully below, the described techniques and tools may be implemented on hardware that includes access to: geospatial data for the device, data about other devices or nearby objects (e.g., data required using short-range wireless technology), data such as weather or time, data captured using an image capture device (e.g., a camera), or user-specific data such as calendar appointment data or vacation data. One of ordinary skill in the art will readily appreciate that the disclosed techniques may be implemented using a variety of mobile computing platforms coupled with a web server or computing cloud that provides access to applications for the various mobile device platforms, including but not limited to cellular phones, smart phones, PDAs, handheld devices, handheld computers, PDAs, touch screen tablet devices, tablet computers, and laptop computers.
The foregoing and other objects, features and advantages of the invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings.
Drawings
Fig. 1 is a system diagram depicting an exemplary mobile device, including various optional hardware and software components.
FIG. 2 is a general example of a suitable computing environment in which the described embodiments, techniques, and technologies may be implemented.
Fig. 3 is a flow diagram outlining an exemplary implementation of the disclosed technology, including sending context data.
FIG. 4 is a flow diagram further detailing the exemplary implementation shown in FIG. 3.
FIG. 5 is a flow diagram outlining another exemplary implementation of the disclosed technology including generating a list of relevant applications using application data based on context data received from a mobile device.
FIG. 6 is a flow diagram further detailing the exemplary implementation shown in FIG. 5.
FIG. 7 is a flow diagram outlining another exemplary implementation of the disclosed technology including generating application metadata for an application.
FIG. 8 is a diagram illustrating a map of locations associated with several mobile device applications.
FIG. 9 is a list of XML code suitable for describing the geographic region associated with a mobile device application.
10A and 10B illustrate a mobile device user interface for automatically discovering applications using context data.
FIG. 11 illustrates a mobile device screen display including a display of a plurality of applications that have been discovered using context data.
FIG. 12 illustrates a general example of a suitable computing environment in which the described embodiments, techniques, and technologies may be implemented.
FIG. 13 illustrates a general example of a suitable implementation environment for a mobile device connected to a computing cloud.
Detailed Description
The present invention is set forth in the context of representative embodiments, which are not intended to be limiting in any way.
As used in this application and the appended claims, the singular forms "a", "an", and "the" include plural referents unless the context clearly dictates otherwise. In addition, the term "comprising" means "openly including". Furthermore, the term "coupled" encompasses mechanical, electrical, magnetic, optical, and other practical ways of coupling or linking objects together, and does not exclude the presence of intermediate elements between the coupled objects.
The articles and methods described herein should not be considered as limiting in any way. Rather, the invention is directed to all novel and non-obvious features and aspects of the various disclosed embodiments, alone and in various combinations and subcombinations with one another. The disclosed systems, methods, and apparatus are not limited to any specific aspect or feature or combination thereof, nor do the disclosed things and methods require that any one or more specific advantages be present or problems be solved.
Although the operations of some of the disclosed methods are described in a particular, sequential order for convenient presentation, it should be understood that this manner of description encompasses rearrangement, unless a particular ordering is required by specific language set forth below. For example, in some cases, operations described sequentially may be rearranged, omitted, or performed concurrently. Moreover, for the sake of brevity, the attached figures do not show the various ways in which the disclosed things and methods can be used in conjunction with other things and methods. Moreover, the specification sometimes uses terms like "produce," "generate," "select," "capture," and "provide" to describe the disclosed methods. These terms are high-level abstractions of the actual operations that are performed. The actual operations that correspond to these terms may vary depending on the particular implementation and are readily discernible by one of ordinary skill in the art.
Any of the disclosed methods may be implemented as computer-executable instructions stored on one or more computer-readable media (e.g., non-transitory computer-readable media, such as one or more volatile memory components (such as DRAM or SRAM), or non-volatile memory components (such as hard drives)) and executed on a computer (e.g., any commercially available computer, including smart phones or other mobile devices that include computing hardware). Any of the computer-executable instructions for implementing the disclosed techniques, as well as any data created and used during implementation of the disclosed embodiments, can be stored on one or more computer-readable media (e.g., non-transitory computer-readable media). The computer-executable instructions may be, for example, a dedicated software application or a portion of a software application that is accessed or downloaded via a web browser or other software application, such as a remote computing application. Such software can be executed, for example, on a single local computer (e.g., any suitable commercially available computer) or in a network environment (e.g., via the internet, a wide area network, a local area network, a client-server network (such as a cloud computing network), or other such network) using one or more network computers.
For clarity, only certain selected aspects of the software-based implementation are described. Other details known in the art are omitted. For example, it should be understood that the disclosed technology is not limited to any particular computer language or program. For example, the disclosed techniques may be implemented by software written in C + +, Java, Perl, JavaScript, HTML5, or any other suitable programming language. Also, the disclosed techniques are not limited to any particular computer or type of hardware. Certain details of suitable computers and hardware are well known and need not be set forth in detail in this disclosure.
Further, any of the software-based embodiments (including, for example, computer-executable instructions for causing a computer to perform any of the disclosed methods) may be uploaded, downloaded, or accessed remotely via suitable communication means. Such suitable communication means include, for example, the internet, the world wide web, an intranet, software applications, electrical cables (including fiber optic cables), magnetic communications, electromagnetic communications (including RF, microwave, and infrared communications), electronic communications, or other such communication means.
Theories of operation, scientific principles, or other theoretical descriptions presented herein with reference to the apparatus or methods of the present invention have been provided for the purpose of better understanding and are not intended to be limiting in scope. The apparatus and methods of the appended claims are not limited to those apparatus and methods that function in the manner described by such theories of operation.
In the following description, certain terms such as "upper," "lower," "horizontal," "vertical," "left," "right," "above," "near," and the like may be used. These terms, where applicable, are used to provide some clarity of description in dealing with relative relationships. However, these terms are not intended to imply absolute relationships, positions, and/or orientations.
As used in the present invention, "automatically" means that the action is performed after the previous action, without receiving additional user input before initiating execution of the action.
As used in this disclosure, "application" includes programs implemented using computer-executable instructions executable by a mobile device as well as programs (e.g., web applications or web applications) that access some or all of the application functionality over a network.
I.Example Mobile device
Fig. 1 is a system diagram depicting an exemplary mobile device 100, which includes various optional hardware and software components, and is shown generally at 102. Any component 102 in the mobile device may communicate with any other component, but not all connections are shown for ease of illustration. The mobile device may be any of a variety of computing devices (e.g., a cellular telephone, a smart phone, a handheld computer, or a Personal Digital Assistant (PDA)) and may allow wireless two-way communication with one or more mobile communication networks 104, such as a cellular or satellite network.
The illustrated mobile device 100 may include a controller or processor 110 (e.g., signal processor, microprocessor, ASIC, or other control and processing logic circuitry) for performing tasks such as signal coding, data processing, input/output processing, power control, and/or other functions. The operating system 112 can control the allocation and usage of the components 102 and provide support for one or more discovered applications 114. Discovered applications 114 may be discovered using the techniques and apparatus described herein and automatically downloaded and installed on mobile device 100 or accessed using a computer network. The discovered applications 114 may include public mobile computing applications (e.g., image capture applications, email applications, calendars, contact managers, web browsers, messaging applications), or any other computing application.
The illustrated mobile device 100 may include memory 120. Memory 120 may include non-removable memory 122 and/or removable memory 124. The non-removable memory 122 may include RAM, ROM, flash memory, a hard disk, or other well-known memory storage technologies. The removable memory 124 may include flash memory or a Subscriber Identity Module (SIM) card, which is well known in GSM communication systems, or other well known memory storage technologies, such as "smart cards. The memory 120 may be used to store data and/or code for running the operating system 112 and discovered applications 114. Example data may include web pages, text, images, sound files, video data, or other data sets sent to and/or received from one or more network servers or other devices via one or more wired or wireless networks. The memory 120 can be used to store a subscriber identifier, such as an International Mobile Subscriber Identity (IMSI), and an equipment identifier, such as an International Mobile Equipment Identifier (IMEI). These identifiers may be transmitted to a network server to identify the user and the device.
The mobile device 100 may support one or more input devices 130, such as a touch screen 132, a microphone 134, a camera 136, a physical keyboard 138, a trackball 140, a compass 142, an accelerometer 146, and/or a gyroscope 148, and one or more output devices 150, such as a speaker 152 and one or more displays 154. Other possible output devices (not shown) may include piezoelectric or tactile output devices. Some devices may provide more than one input/output function. For example, the touch screen 132 and the display 154 may be combined in a single input/output device.
The wireless modem 160 may be coupled to an antenna (not shown) and may support bi-directional communication between the processor 110 and external devices, as is well understood in the art. The modem 160 is shown generically and may include a cellular modem for communicating with the mobile communications network 104 and/or other radio-based modems (e.g., bluetooth 164 or Wi-Fi 162). The wireless modem 160 is typically configured for communication with one or more cellular networks, such as a GSM network for data and voice communications within a single cellular network, between cellular networks, or between a mobile device and a Public Switched Telephone Network (PSTN).
The mobile device 100 may further include at least one input/output port 180, a power supply 182, a satellite navigation system receiver 184, such as a Global Positioning System (GPS) receiver, and/or a physical connector 190, which may be a USB port, an IEEE 1394 (firewire) port, and/or an RS-232 port. The illustrated components 102 are not required or all-inclusive, as any components can be deleted and other components can be added.
The mobile device 100 may use multiple input sources for determining the geospatial location, speed or direction of the mobile device. For example, the GPS receiver 184 may be used to determine geospatial coordinates by receiving signals transmitted from global positioning satellites. Alternatively, signals received from one or more mobile communication networks 104 (e.g., terrestrial communication networks) may be used to determine geospatial coordinates. In some examples, the data received by the GPS receiver 184 and one or more mobile communication networks 104 may be used in combination to provide a more accurate geospatial location or direction and in a faster manner. Further, the mobile device 100 may use data from one or more compasses 142, accelerometers 146, and/or gyroscopes 148 to calculate a direction, velocity, and/or orientation of the mobile device. In some examples, an image capture device, such as a camera 136, may be used with the pattern recognition software to determine current context data of the mobile device 100. For example, images of famous landmarks (e.g., the eiffel tower, Space Needle tower (Space Needle), or Taj Mahal), billboards, or merchant logos (e.g., logos displayed outside a starbucks store or mcdonald restaurant) may be used to determine the location or context of the mobile device.
II.Exemplary implementation Environment
FIG. 2 depicts an example computing environment 200 suitable for implementing the described embodiments, techniques, and technologies disclosed herein. As shown, a user 205 is carrying a smartphone 210. In some examples, other platforms may be used, including but not limited to cellular phones, smart phones, PDAs, handheld devices, handheld computers, PDAs, touch screen tablet devices, tablet computers, and laptop computers.
As shown, the smartphone 210 may receive global positioning data signals from one or more satellites 220. Other location data from one or more cellular phone towers 222, Wi-Fi access points 224 (e.g., 802.11b or 802.11n access points), or bluetooth beacons 226 may also be received or determined. This location data may include, for example, a Service Set Identifier (SSID), a Media Access Control (MAC) address, a bluetooth device address, or other data that may be used to determine location data for Wi-Fi or bluetooth access points. Cellular telephone technologies that may be used to determine location data include cellular identification, enhanced cellular identification, U-TDOA, TOA, AOA, E-OTD, or assisted GPS, and in some examples, the smartphone 210 may determine or enhance location data using a combination of two or more of the location determination technologies with one another. Location data may also be received or determined from other mobile device users, such as user 215 using bluetooth enabled cellular telephone 216.
The smartphone 210 may also acquire the image 230 using, for example, a camera and submit the captured image to an image recognition service. The image recognition service may use the image 220 to determine the location of the smartphone 210. For example, the smartphone 210 may capture an image of a landmark, billboard, logo, or barcode proximate to the mobile device and submit the image to a service provider 270 (described below) that may then estimate the user's current location. The smart phone 210 is depicted in fig. 2 as capturing an image of a museum of the luo-palace. Based on the determination that the captured image is relevant to the museum of the lulo, an application associated with the lulo may be automatically downloaded and executed using the smartphone 210 (providing the image, background information, and location on the map for display).
The smartphone 210 may also communicate with one or more servers located in the computing cloud 240. The computing cloud 240 stores and reads data by accessing an application database 250 that stores application metadata, including computer-readable instructions and/or addresses for applications, audio data and video data that may be executed or played back by the smartphone 210, and context data that determines the relevance of the application metadata given the current context of the mobile device. The location data may also be stored in the application database 250. The mobile device environment and context are "current" in that they include dynamically updated data reflecting the state of the object and the nearby environment. For example, an application for providing information about an animal may be associated with application metadata that describes a location within a zoo boundary. The data cloud 240 may communicate with the mobile device 210, the application developer 260, and/or the service provider 270 using the internet, a cellular network, or other suitable communication network.
The data cloud 240 can receive application metadata from one or more application developers 260 that describes the relevance of mobile device applications in a given mobile device environment. For example, a developer of a particular application, such as a museum guide for a museum in the Luo-Pougua or zoo guide for a Woodland park, may generate application metadata describing the geographic location where the particular application is more relevant and upload the application metadata along with the application itself to an application store or other application discovery service. The application metadata may also describe other relevant data for the current mobile device environment. For example, application metadata for a mountain vacation address may describe ski-related applications as more relevant during the winter months and bike-related applications as more relevant during the summer months.
As shown, the computing environment 200 may include one or more service providers 270 that provide service components for generating application metadata. For example, the first service component collects data based on location-based information and associates the location data with an application or other content. The second service component is used with the mobile device to provide content to the mobile device user based on their current geographic location and other contextual data including traffic conditions, weather, season, time or event (e.g., promotions, concerts, or festivals) that describes their current environment. A third service component can be employed to aggregate geography data based on known points of interest (e.g., retailer locations such as starbucks or mcdonald's) to provide location information in a more popular form.
III.Example of providing applications to a Mobile device
FIG. 3 is a flowchart 300 outlining an exemplary method for sending data and receiving applications based on determined relevance using context data and application metadata of applications that may be used with certain embodiments of the disclosed technology.
At process block 310, context data describing the current environment of the mobile device is sent (e.g., to a remote server or computing cloud). The context data may include data describing the physical spatial location of the user or mobile device; data describing identification information of the access point, such as data from a cellular telephone transmitter; a Bluetooth device address; WiFi information such as node name, network address, MAC address, and/or SSID; sensor data from a compass, accelerometer, and/or gyroscope; other identification information; or user-specific data such as calendar data describing an event or location.
At process block 320, application data is received, using, for example, a computer network, that describes one or more applications selected based on the transmitted context data. In some examples, the application data includes computer readable instructions executable by the mobile device for executing one or more of the selected applications. In some examples, the application metadata includes a reference describing a network location from which the application was accessed from a remote location (e.g., a network address or web address associated with the application). In some examples, the application metadata includes data such as audio, video, or image data determined to be relevant to the given context data. In some examples, the application data may point to an application that has been installed on the mobile device. In some examples, application data is deleted from the device if the user does not use or select an application based on some criteria, such as a time period, while in other examples, application data for an unused application remains on the device for an indeterminate period of time.
IV.Examples of providing context data
Fig. 4 is a flow chart 400 further detailing the method shown in fig. 3. At process block 410, context data, such as location data, device function data, or user data (e.g., calendar data), is obtained.
At process block 420, the context data is analyzed to determine if a change in context has occurred. For example, the location data may be analyzed to determine whether the location has become sufficient to affect a change in context. If a context change is detected, the method continues to process block 430. Otherwise, the method continues back to process block 410.
At process block 430, some or all of the context data is sent to a server at a remote location (e.g., a server hosting an application store) or a server in a computing cloud. The server or computing cloud analyzes the context data and application metadata associated with the mobile device applications to determine one or more applications that are most relevant to a particular context. This analysis is further described below in fig. 5 and 6 and related text. In some examples, the determination of the change in the context data is performed by the server or the computing cloud, rather than relying on the mobile device determining the change in the context data in process block 420.
At process block 435, the transmitted context data is evaluated and one or more applications are identified as more relevant to the current device environment based on the transmitted context data and application metadata associated with the applications of the mobile device. For example, one or more applications associated with a predefined physical location are identified as relevant based on context data describing the current location of the mobile device within the location. Additional examples of generating application metadata are described below, e.g., in fig. 5-6 and the accompanying text.
At process block 440, a list of one or more identified applications determined to be more relevant at process block 430 is received. In some examples, the mobile device user is also notified of the availability of new applications using sound playback, vibration, or other feedback. In some examples, the mobile device waits for user input before launching the application, while in other examples, the application may be automatically launched.
At process block 450, one or more of the applications from the list are automatically installed onto the mobile device. Because the application is automatically installed, the user does not need to provide input to discover or install the application. However, in some examples, the user is queried before installing or activating the discovered application. For example, the mobile device may query the user before activating an application that requires payment for use. In some examples, a limited functionality demonstration version of an application is installed and automatically available, while a full feature version may be installed after payment is received.
At process block 460, the user is notified of the availability of one or more newly available applications on the mobile device. In some examples, the notification includes an audible tone or tactile feedback. In other examples, portions of the touch screen display indicate the presence of a new application. For example, fig. 10A and 10B and accompanying text below illustrate examples of user notifications using a touch screen display.
At process block 470, a check is made to determine if the downloaded application should be retained. For example, if it is determined that the mobile device has left the designated context area without using the downloaded application, the application is not retained. In other examples, rather than monitoring the specified context region, a timer is used to determine when an application is removed (e.g., one hour, twenty-four hours, or other time period). In some examples, the user may "lock" the application, indicating a desire to retain the downloaded application using the user interface, rather than being required to invoke the application in order to retain it. If it is determined that the application should be retained, the method proceeds to process block 480, but if it is determined that the application should not be retained, the method proceeds to process block 490.
At process block 480, the application is retained on the mobile device by, for example, designating the application as a permanently installed user application. In some examples, the application is not downloaded onto the mobile device until the user attempts to invoke the application, and the download is combined with process block 480 to retain the application. In some examples, the save application creates additional context data that indicates that the downloaded application is more relevant to the user or context area. In some examples, saving the application creates additional application metadata that indicates the popularity of the application or the relevance of the application to the context in which the application was downloaded.
At process block 490, the application is deleted from the mobile device. In some examples, the application has not been downloaded, but other entries of application metadata, such as URLs, are removed from the list of currently installed applications. In some examples, the deletion of the application is recorded for future use in processing context data or for providing additional application metadata. For example, a user who deletes an application and then re-enters the context area will not be presented with the deleted application again. In other examples, the records deleted by the application may be used to adjust the relevance determinations for the application, or for related applications.
In some examples, some process blocks are omitted or performed in a different order. For example, after process block 440 receives the list of applications, the alternative method checks to determine if one or more of the listed applications are already available on the mobile device (e.g., if computer-executable instructions or network addresses associated with the applications are available on the device prior to process blocks 435 or 440), and if so, omits process block 450 for one or more of the applications that are already available.
V.Example of processing context data
Fig. 5 is a flowchart 500 outlining an exemplary method that may be used in some embodiments of the disclosed technology, receiving context data from a mobile device, receiving application metadata associated with a mobile device application, and selecting an application based on a determined correlation between the context data and the application metadata.
At process block 510, contextual data is received from a mobile device, such as a smart phone or PDA. As noted above, the context data need not be limited to location data, but may include data describing user-specific information, such as information from a calendar application (including vacation or meeting data) or information describing devices proximate to the mobile device (e.g., a television or home entertainment system). In some examples, the mobile device detects a change in the current context and sends context data based on the determination. In other examples, the mobile device sends data representing its current context, which is received and used to determine whether a change in context has occurred.
At process block 520, application metadata for an application executable using the mobile device is received. For example, application metadata may include geographic information describing a point using longitude, latitude, and altitude, or describe a polygon containing several points. For example, metadata for an application associated with a museum of the luo palace may include a definition of a polygon that encompasses the physical location of the museum. In some embodiments, multiple locations may be used. For example, starbucks coffee may define separate geographic points for each of thousands of stores, with metadata associating each of those points with the same application. In some examples, the metadata includes data describing criteria that describe which applications should be advertised to the mobile device under conditions that are based on the environment (e.g., based on payments made by application publishers) and may include value ranges and logical functions.
At process block 530, application suggestions are generated for the mobile device using the context data received from the mobile device and application metadata associated with the one or more applications. For example, if the context data indicates that the current location of the mobile device is within a predetermined distance of a geographic point associated with a starbucks store, the starbucks application may be one of the suggested applications. As such, an application store implemented using a server or data cloud may reward a list of applications that match the conditions described in the application data based on the context data received at process block 510.
Cloud-based access can be utilized to associate rich geographic or environment-based metadata with mobile applications to promote and deliver them in the context of a user context. In some examples, the user context includes location data regarding a physical location relative to a geographic area, a defined area, a nearby object, or a particular physical location. The location data includes a location identifier, but may also include information associated with the user's environment including traffic conditions, weather, seasons, nearby features, and nearby events. This allows not only automatic notification of applications that have been associated with the current location, but also notification based on proximity to a particular device (e.g., a television, car, projector, or personal computer). For example, if it is determined that the mobile device is proximate to a particular television set and a remote control application that can be used to control the television set is available to the mobile device, the remote control application can be automatically downloaded and the user notified of the most recently downloaded application.
At process block 540, data for one or more applications is sent to the mobile device. In some examples, this includes computer readable instructions executable by a mobile device. In other examples, a URL or network address is sent to indicate where the application code is located and is retrievable by the mobile device.
VI.Example use of application metadata and context data
Fig. 6 is a flow chart 600 further detailing the method shown in fig. 5.
At process block 610, application metadata describing context conditions for advertising an application is received. The metadata may include location data such as polygons or points as described above with respect to fig. 5 and the associated text. The metadata may also include additional data, such as payments made to promote a particular application. The application metadata may also include non-geographic conditions such as time of day, date, or season.
At process block 620, usage data is received that associates usage data for the application with usage of the application by other users. This usage data may be used to generate additional application metadata that describes more likely relevant contexts and allow discovery of applications that do not already have application metadata explicitly generated by the application provider. For example, usage data showing that applications for zoos are frequently used within a particular geographic location may be used to generate application metadata that improves the relevance of the application to the geographic location.
At process block 630, context data including, for example, location data, device functions, or user data (e.g., calendar data) is obtained.
At process block 640, the context data and application metadata are analyzed and the application list and relevance scores for those applications are generated using the application metadata, usage data, and context data received at process blocks 610, 620, and 630. The list of applications may be arranged using the generated relevance scores.
At process block 650, the list of applications generated at process block 640 is sent to the mobile device. The relevance scores may also be sent to allow the mobile device user to ignore applications with fewer relevance scores, or to initiate sorting, display, or other operations on a list of applications on the mobile device.
At process block 660, a request to download one or more of the applications from the list is received. The requested application may differ from the list of applications originally sent to the mobile device in several ways. For example, the mobile device may check to see if any of the listed applications have been installed on the mobile device, and do not request downloads for those applications. In other examples, the application is not requested due to parental control over the mobile device, or because the user of the device has previously indicated that a particular application should not be downloaded. In some examples, the request to download is also accompanied by account information or payment information.
At process block 670, the one or more applications requested at process block 660 are sent to the mobile device. As discussed above, in some examples instructions executable by the mobile device are sent, while in other examples a URL or network address for accessing the application is sent.
At process block 680, application metadata including application usage data can be updated to reflect the download or subsequent invocation of the application on the mobile device.
VII.Example of providing application metadata
Fig. 7 is a flow diagram 700 outlining an exemplary method that may be used in certain embodiments of the disclosed technology, generating application metadata for an application, and sending the metadata and the application to a server or computing cloud.
At process block 710, given context data describing the mobile device environment, application metadata is generated for determining relevance of the application. In some examples, the metadata includes location data describing a physical location. In some examples, non-location data describing the environment may be included with the metadata, including traffic conditions, weather, seasons, nearby features, and nearby events. The application metadata may describe the environment as a simple binary relevant/irrelevant condition, or more complex conditions, for example by including more discrete levels of relevance (e.g., based on distance from a point), or a logical function based on one or more contextual data parameters.
At process block 720, the application metadata generated at process block 710 is sent to one or more servers where it is stored for later comparison with current mobile device context data. In some examples, the server is an application store or a component that can also distribute applications to a "marketplace" of mobile devices using user-initiated download techniques (e.g., the same application store provides applications to the mobile devices as the users browse and manually download the applications, as well as providing automatic downloads based on the mobile device context). The application store may also process other details associated with distributing mobile device applications, such as processing payment systems or providing software updates.
At process block 730, the application data associated with the application metadata is sent to the server. In some examples, the application data describes, for example, the location of the web application using a URL. In some examples, application data includes data, such as audio or video data, for processing by another application. In some examples, the application data includes computer readable instructions that when executed by the mobile device or computer implement all or part of the application functionality.
VIII.Example techniques for application metadata
FIG. 8 is a diagram 800 of a street map 810 overlaid with a representation of a map area described by application metadata of an application. For example, two rectangular areas 820 and 830 are associated with fast food restaurants and coffee shops, respectively, and applications associated with those shops may be automatically discovered when the mobile device is determined to be located within the areas. The area associated with the Woodland park zoo is associated with the polygon 840 and may be associated with applications specifically related to the Woodland park zoo. This area may also be associated with other applications frequently used in the zoo based on the popularity of the applications inside the polygon 840 (e.g., determined by the frequency of downloading or invoking a given application). As shown in the map 810, another polygon 850 is associated with a highway thoroughfare and an application for providing a map or traffic report is described in the application metadata as being highly relevant to the mobile device context inside the polygon 850. Similar to the zoo application, the application publisher may explicitly associate the application with the polygon 850, or automatically associate the application with the polygon based on a user's previous usage or popularity of the application when its location is inside or near the polygon.
Finally, it is not necessary to describe the region by a polygon or a rectangle, but a point may also be used to describe the region. For example, point 860 indicates the location of a coffee shop. Dashed circles 865 indicate those portions of the map currently specified within the region for use by applications associated with the coffee shop. The radius of the circle can vary depending on, for example, the server providing the application metadata, or the set of user preferences using the mobile device to expand or contract the radius of the dashed circle 865 enclosing the area.
FIG. 9 is exemplary XML code 900 for describing regions in an example of the disclosed technology written in GeoRSS. GeoRSS is an example format for exchanging geographic data, but other suitable formats for describing geographic data may be used. The XML code 900 includes an entry for a Woodland park zoo application, including a polygon description of the associated area 840 (as shown in fig. 8) ("< georss: polygon > 47.663696.") and a URL for downloading a zoo application ("http:// example. org/2010/zoodlandpakkoogenide/"). Also shown is an entry for a coffee shop described using a point ("< georss: point >47.679863-122.325608</georss: point >") instead of a polygon or rectangle, and the entry also includes a URL ("http:// example. org/2010/starbruckscoffeeguide") for downloading an application associated with the point.
IX.Example user interface for application discovery
Fig. 10A depicts a mobile device 1000 with a touch screen display 1010. The touch screen display 1010 is shown displaying several buttons 1020-1024, which are designated areas of the touch screen display for receiving the associated function of the touch input selection. As shown, buttons 1020-1024 include buttons for selecting instant messaging, email, calendar, web browser, and game functions, respectively. In addition, an additional application discovery button 1030 is shown. The application discovery button 1030 is highlighted by the device to inform the user that a new application (represented by the icon displayed on the button) is installed on the mobile device and is immediately available for use. In this way, the user can press button 1030 to invoke a new application on the mobile device without having to manually perform the actions of discovering, downloading, and installing the application.
FIG. 10B depicts the mobile device 1050 in a first context state 1050 where no discoverable applications are available, and the same mobile device 1060 in a second context state where discoverable applications are available. As shown, when in the first context state 1050, an area of the screen for displaying the button 1055 is reserved. When no discoverable applications are available, the user can press button 1055 to manually point to an application store to manually discover and download applications for the mobile device. After changing to the second context state (at 1060) (e.g., by moving the device to a new location, or another change in context such as a different time of day or calendar event), the button 1065 changes to display the most relevant application for the current context state.
FIG. 11 depicts a mobile device screen 1100 displaying a plurality of auto-discovered applications, associated friends, and events. As shown, the screen 1100 does not immediately fit within a mobile device touchscreen display, but instead only displays the portion of the screen inside the dashed line 1105 to the user. The user may scroll the screen to the right, showing the discoverable application, by swiping finger 1120 across the surface of the touch screen display, in the direction indicated by arrow 1125. Available applications 1110-. Each of these applications is automatically downloaded and discovered by the user, not based on the current geographic location (e.g., the determined longitude and latitude of the mobile device), but based on a nearby discovery device, using, for example, a bluetooth transmitter or a WiFi connection coupled to the device. For example, upon detecting presence music streaming hardware associated with music streaming application 1110, an application associated with the music streaming hardware (e.g., an application for controlling playback using the music streaming hardware) is automatically downloaded to the mobile device.
X.Example computing Environment
FIG. 12 illustrates a general example of a suitable computing environment 1200 in which the described embodiments, techniques, and technologies may be implemented. For example, the computing environment 1200 may implement functionality for generating and transmitting context data, application metadata, network addresses, and computer-executable instructions for applications as described herein.
The computing environment 1200 is not intended to suggest any limitation as to the scope of use or functionality of the technology, as the technology may be implemented in diverse general-purpose or special-purpose computing environments. For example, the disclosed technology may be implemented with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The disclosed technology may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules or instructions may be located in both local and remote memory storage devices.
Referring to fig. 12, the computing environment 1200 includes at least one central processing unit 1210 and memory 1220. In fig. 12, this most basic configuration 1230 is included within a dashed line. The central processing unit 1210 executes computer-executable instructions and may be a real or virtual processor. In a multi-processing system, multiple processing units execute computer-executable instructions to increase processing power, and thus, multiple processors may run concurrently. The memory 1220 may be volatile memory (e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM, flash memory, etc.), or some combination of the two. The memory 1220 stores software 1280 that may, for example, implement the techniques described herein. The computing environment may have additional features. For example, the computing environment 1200 includes storage 1240, one or more input devices 1250, one or more output devices 1260, one or more communication connections 1270, and one or more touch screens 1290. An interconnection mechanism (not shown) such as a bus, controller, or network interconnects the components of the computing environment 1200. Typically, operating system software (not shown) provides an operating environment for other software executing in the computing environment 1200 and coordinates activities of the components of the computing environment 1200.
Storage 1240 may be removable or non-removable, and includes magnetic disks, magnetic tapes or cassettes, flash memory, CD-ROM, CD-RW, DVD, or any other non-transitory storage medium which can be used to store information and which can be accessed within the computing environment 1200. Storage 1240 stores instructions for software 1280 that may implement the techniques described herein. Additional software 1285 for selecting applications using data including context data, application data, and application metadata may be located in the computing cloud 1287.
Input device 1250 may be a touch input device such as a keyboard, keypad, mouse, pen, or trackball, a voice input device, a scanning device, a proximity sensor, an image capture device, or another device that may provide input to computing environment 1200. For audio, the input device 1250 may be a sound card or similar device that accepts audio input in analog or digital form, or a CD-ROM reader that provides audio samples to the computing environment 1200. The output device 1260 may be a display, printer, speaker, CD-writer, or another device that provides output from the computing environment 1200. The touch screen 1290 can be used as an input device (e.g., by receiving touch screen input) and as an output device (e.g., by displaying a list of downloaded applications to notify a user).
Communication connection 1270 allows communication over a communication medium (e.g., a connection network) to another computing entity. The communication medium conveys information such as computer-executable instructions, compressed graphics information, or other data in a modulated data signal.
Computer readable media can be any available media that can be accessed within the computing environment 1200. By way of example, and not limitation, for the computing environment 1200, computer-readable media include memory 1220 and/or storage 1240. It should be readily understood that the term computer-readable storage medium includes non-transitory storage media for data storage such as memory 1220 and storage 1240 and does not include transmission media such as modulated data signals.
XI.Example implementation Environment
FIG. 13 illustrates a general example of a suitable implementation environment 1300 in which the described embodiments, techniques, and technologies may be implemented.
In the example environment 1300, various types of services (e.g., computing services) are provided by the computing cloud 1310. For example, the computing cloud 1310 may include a collection of computing devices, which may be centrally located or distributed, that provide cloud-based services to various types of users and devices connected via a network, such as the internet. The implementation environment 1300 may be used to implement computing tasks in different ways. For example, some tasks (e.g., processing user input and presenting a user interface) may be performed on local computing devices (e.g., connected devices 1330, 1340, 1350), while other tasks (e.g., storing data to be used in subsequent processing) may be performed in the cloud 1310.
In the example environment 1300, the cloud 1310 provides services to connected devices 1330, 1340, and 1350 that have various screen capabilities. Connected device 1330 represents a device having a computer screen 1335 (e.g., a mid-sized screen). For example, connected device 1330 may be a personal computer, such as a desktop computer, laptop computer, notebook, netbook, and so forth. Connected device 1340 represents a device having a mobile device screen 1345 (e.g., a small screen). For example, connected device 1340 may be a mobile phone, a smart phone, a personal digital assistant, a tablet computer, and so on. Connected device 1350 represents a device with a large screen 1355. For example, connected device 1350 may be a television screen (e.g., a smart television) or another device connected to a television (e.g., a set-top box or game console), and so on. One or more of the connected devices 1330, 1340, 1350 may include touch screen capabilities. Touch screens can accept input in different ways. For example, capacitive touch screens detect touch input when an object (e.g., a fingertip or stylus) deforms or interrupts a current flowing through the surface. As another example, a touch screen may use an optical sensor that detects a touch input when a light beam from the optical sensor is interrupted. Physical contact with the screen surface is not required to cause input to be detected by some touch screens. Devices without screen capabilities may also be used in the example environment 1300. For example, the cloud 1310 may provide services to one or more computers (e.g., server computers) that do not have displays.
The services may be provided by the cloud 1310 through a service provider 1320, or through other providers of online services (not depicted). For example, the cloud service may be customized to the screen size, display capability, and/or touch screen capability of a particular connected device (e.g., connected devices 1330, 1340, 1350).
In the example environment 1300, the cloud 1310 uses, at least in part, a service provider 1320 to provide the techniques and solutions described herein to various connected devices 1330. For example, the service provider 1320 may provide a centralized solution for various cloud-based services. The service provider 1320 may manage service subscriptions for users and/or devices (e.g., connected devices 1330, 1340, 1350, and/or their respective users). Further, data identifying one or more of the connected devices 1330, 1340, 1350 may be used as context data to select applications related to the respective connected devices.
The disclosed methods, apparatus, and systems should not be considered limiting in any way. Rather, the invention is directed to all novel and non-obvious features and aspects of the various disclosed embodiments, alone or in various combinations and subcombinations with one another. The disclosed methods, apparatus, and systems are not limited to any specific aspect or feature or combination thereof, nor do the disclosed embodiments require that any one or more specific advantages be present or problems be solved. The techniques and solutions described in this application may be used to provide various combinations of better user experiences for mobile devices, including mobile devices such as smart phones.
Any of the methods described herein can be performed via one or more computer-readable media (e.g., storage or other tangible media) that include (e.g., have or store) computer-executable instructions for performing (e.g., causing a computing device to perform) the methods. The operation may be fully automatic, semi-automatic or involve human intervention.
Having described and illustrated the principles of the present invention in the detailed description and the accompanying drawings, it will be recognized that the various embodiments can be modified in arrangement and detail without departing from such principles. It should be understood that the programs, processes, or methods described herein are not related or limited to any particular type of computing environment unless specifically stated otherwise. Various types of general purpose or specialized computing environments may be used or operations may be performed in accordance with the principles described herein. Elements of embodiments shown in software may be implemented in hardware and vice versa.
In view of the many possible embodiments to which the principles of the disclosed invention may be applied, it should be recognized that the illustrated embodiments are only preferred examples of the invention and should not be taken as limiting the scope of the invention.

Claims (15)

1. A method of discovering applications (114) for a mobile device (210), the method comprising:
transmitting context data based at least in part on a current environment of the mobile device (310); and
automatically receiving application data (320) for a first application executable on the mobile device, wherein the first application is selected based on the transmitted context data and application metadata associated with the first application, the application metadata representing a relevance of one or more applications to an environment-based condition of the mobile device.
2. The method of claim 1, wherein:
the application data comprises computer readable instructions for the first application; and
the instructions are executable on the mobile device.
3. The method of claim 1, wherein:
the first application is a web application; and
the application data includes an address associated with the first application.
4. The method of claim 1, wherein:
the application data includes an address for remotely retrieving computer readable instructions; and
wherein the computer readable instructions are executable on the mobile device.
5. The method of any of claims 1-4, wherein the first application is installed on the mobile device prior to the acts of sending the context data and receiving the application data.
6. The method of any of claims 1-4, further comprising generating an output (460) of the mobile device for notifying a mobile device user of the availability of computer-readable instructions for the first application.
7. The method of any of claims 1-4, wherein the application metadata is selected based at least in part on one or more of: a user rating of the first application, a number of users of the first application, a feature of a nearby device in a current mobile device environment, a market payment for the first application, or a popularity of the first application.
8. The method of any one of claims 1-4, further comprising:
after moving the mobile device to a second current mobile device environment, sending second context data representative of the second current mobile device environment; and
automatically receiving computer readable instructions for a second application, wherein:
the computer readable instructions are executable on the mobile device,
selecting the second application based on the transmitted second context data, an
The second application is a different application than the first application.
9. A method, comprising:
receiving context data (510) from a remote device, the context data based at least in part on a current location of the remote device;
receiving application metadata (520) associated with one or more applications executable by the remote device, the application metadata including data representing a relevance of the application to one or more locations;
selecting one or more of the applications based at least in part on the context data and the application metadata (530); and
data for the selected application is sent to the remote device (540).
10. The method of claim 9, further comprising sending computer readable instructions for the selected application to the remote device, wherein the computer readable instructions, when executed by the remote device, cause the remote device to perform a method associated with the selected application.
11. The method of claim 9 or 10, wherein the application metadata comprises previously used data based on at least one of the applications on the mobile device when the mobile device is at or near the current location.
12. The method of claim 9 or 10, wherein the data for the one or more selected applications comprises one or more network addresses, audio data, video data, or audio data and video data associated with the selected applications.
13. A method of delivering an application to a mobile device, the method comprising:
associating the metadata with one or more applications that are downloadable to and executable on the mobile phone;
automatically receiving context data from the mobile phone (630), the context data including data representative of a current geographic location;
based on the context data, searching the metadata to determine which applications are likely to be of interest based on the current geographic location; and
notification data indicating the determined application is sent to the mobile phone (650).
14. The method of claim 13, further comprising:
selecting one of the applications;
sending (670) the selected application to the mobile phone; and
executing the selected application on the mobile phone.
15. The method of claim 13 or 14, further comprising:
automatically installing the determined application; and
automatically removing one or more of the determined applications if they are not accepted by the user of the mobile phone.
HK12104096.1A 2010-08-10 2012-04-25 Location and contextual-based mobile application promotion and delivery HK1164013A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US12/854,157 2010-08-10

Publications (1)

Publication Number Publication Date
HK1164013A true HK1164013A (en) 2012-09-14

Family

ID=

Similar Documents

Publication Publication Date Title
US10440538B2 (en) Location and contextual-based mobile application promotion and delivery
US11665665B2 (en) Location-aware mobile device
US20250022018A1 (en) Location Triggered Processes
US20220272143A1 (en) Computer application promotion
US20200356530A1 (en) Associating a captured screenshot with application-specific metadata that defines a session state of an application contributing image data to the captured screenshot
US8694026B2 (en) Location based services
US9092473B2 (en) Journaling on mobile devices
US10680925B2 (en) System and method for determining website popularity by location
US9613455B1 (en) Local georeferenced data
US20160094946A1 (en) Content Discovery Using Beacons
KR20120023777A (en) Space and time based device customization
CN102257493A (en) Geocoding personal information
US20140297672A1 (en) Content service method and system
TW201305985A (en) Method of providing contents for mobile computing device
CN110942078A (en) Method, device, media file server, and storage medium for aggregating point-of-interest data
CN111131467A (en) Method, system and medium for recommending life style based on picture and vehicle-mounted terminal
HK1164013A (en) Location and contextual-based mobile application promotion and delivery
US9654578B2 (en) Method and apparatus for tagging multimedia data
JP2024004338A (en) Notification server, notification method, stamp rally terminal and method for acquiring geofence information, and relating computer software
JP2014192780A (en) Portable terminal device, notification method for specific position environment, and program