US20180279071A1 - Geographic Information for Wireless Networks - Google Patents
Geographic Information for Wireless Networks Download PDFInfo
- Publication number
- US20180279071A1 US20180279071A1 US15/995,583 US201815995583A US2018279071A1 US 20180279071 A1 US20180279071 A1 US 20180279071A1 US 201815995583 A US201815995583 A US 201815995583A US 2018279071 A1 US2018279071 A1 US 2018279071A1
- Authority
- US
- United States
- Prior art keywords
- position information
- network
- geographic position
- wireless network
- wireless
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/16—Discovering, processing access restriction or access information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/18—Selecting a network or a communication service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W52/00—Power management, e.g. TPC [Transmission Power Control], power saving or power classes
- H04W52/02—Power saving arrangements
- H04W52/0209—Power saving arrangements in terminal devices
- H04W52/0251—Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity
- H04W52/0254—Power saving arrangements in terminal devices using monitoring of local events, e.g. events related to user activity detecting a user operation or a tactile contact or a motion of the device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W64/00—Locating users or terminals or network equipment for network management purposes, e.g. mobility management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/005—Discovery of network devices, e.g. terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72448—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
- H04M1/72457—User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location
-
- H04M1/72572—
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
-
- Y02D70/00—
-
- Y02D70/1262—
-
- Y02D70/142—
-
- Y02D70/144—
-
- Y02D70/146—
-
- Y02D70/164—
-
- Y02D70/166—
-
- Y02D70/26—
Definitions
- Today's mobile devices provide users with a tremendous amount of portable functionality. For instance, smartphones, tablets, laptops, and so on, enable users to perform a variety of different tasks without being tied to a particular location. Since a user may move between locations, it can be useful to know where a user is located at a particular time, such as for providing location-specific content and services.
- a connectivity module on a mobile device receives geographic position information for a mobile device from another functionality of the mobile device and independent of a query by the connectivity module for the information.
- the connectivity module retrieves the geographic position information locally on the device, and utilizes the geographic position information to cause various actions to be performed. For instance, the connectivity module utilizes the geographic position information to identify a wireless network at a particular geographic region, and to cause a wireless scan to be initiated to detect the wireless network.
- FIG. 1 is an illustration of an environment in an example implementation that is operable to employ techniques discussed herein in accordance with one or more implementations.
- FIG. 2 illustrates an example network table in accordance with one or more implementations.
- FIG. 3 is a flow diagram that describes steps in a method for causing an action to be performed based on geographic position information in accordance with one or more implementations.
- FIG. 4 is a flow diagram that describes steps in a method for performing an action based on geographic position information in accordance with one or more implementations.
- FIG. 5 is a flow diagram that describes steps in a method for preparing for connection to a wireless network in accordance with one or more implementations.
- FIG. 6 is a flow diagram that describes steps in a method for selecting a wireless network in accordance with one or more implementations.
- FIG. 7 is a flow diagram that describes steps in a method for deleting stale network information in accordance with one or more implementations.
- FIG. 8 is a flow diagram that describes steps in a method for causing a wireless radio to transition to an inactive state in accordance with one or more implementations.
- FIG. 9 illustrates an example system and computing device as described with reference to FIG. 1 , which are configured to implement embodiments of techniques described herein.
- a connectivity module on a mobile device registers to receive a notification when geographical position information is available on the mobile device. For instance, the connectivity module registers to receive a wake event to wake the connectivity module from an inactive state when the geographic position information is available.
- the connectivity module represents a functionality that manages various wireless connectivity tasks for a mobile device.
- a connectivity module receives geographic position information for a mobile device independent of a query for the information. For instance, when another functionality of the mobile device (e.g., an application and/or service) retrieves geographic position information, the connectivity module is notified that the information is available locally on the device.
- the geographic position information corresponds to an estimated current location of the mobile device, and/or a projected future location estimated based on trajectory and velocity information for the mobile device.
- the connectivity module retrieves the geographic position information locally on the device, and utilizes the geographic position information to cause various actions to be performed.
- the connectivity module utilizes the geographic position information to identify and select a wireless network that is available at a location that corresponds to the geographic position information.
- the connectivity module causes a network scan to be performed to identify wireless signal from the wireless network.
- the connectivity module schedules a network scan to be performed to detect the wireless network.
- the connectivity module instructs a wireless functionality of a mobile device to activate its wireless radio and scan for the wireless network.
- a connectivity module of a mobile device is maintained in an inactive state until a wake event is received in response to geographic position information being available locally on the mobile device.
- a wireless functionality of a mobile device e.g., a wireless radio
- an inactive state e.g., off
- the connectivity module identifies an available wireless network at a particular location, and causes the wireless functionality to activate and scan for the wireless network.
- the wireless radio instead of causing a wireless radio to perform open scanning in an attempt to identify an available wireless network, the wireless radio is kept in an inactive state until geographical position information is received and correlated to a known available wireless network at a particular location. At such point, the wireless radio is activated to search for the known available wireless network.
- preparation for connectivity to a wireless network can occur ahead of time, such as prior to the wireless network being detected and/or prior to the wireless network being in-range.
- a network profile is loaded for a wireless network that is identified based on geographic position information and prior to the wireless network being detected.
- the network profile includes connectivity information such as a network identifier for the wireless network, authentication information for the wireless network, and so forth. Accordingly, the connectivity information is made available such that when the wireless network is detected (e.g., based on a wireless radio scan), the connectivity information is readily available. Thus, connection time and system resource usage are reduced for the connection process.
- Example Procedures describes some example procedures for geographic information for wireless networks in accordance with one or more embodiments.
- Example System and Device describes an example system and device that are operable to employ techniques discussed herein in accordance with one or more embodiments.
- FIG. 1 is an illustration of an environment 100 in an example implementation that is operable to employ techniques for geographic information for wireless networks in accordance with one or more implementations.
- Environment 100 includes a client device 102 which can be embodied as any suitable device such as, by way of example and not limitation, a smartphone, a wearable device, a tablet computer, a portable computer (e.g., a laptop), a desktop computer, and so forth.
- client device 102 can be embodied as any suitable device such as, by way of example and not limitation, a smartphone, a wearable device, a tablet computer, a portable computer (e.g., a laptop), a desktop computer, and so forth.
- a client device 102 is shown and described below in FIG. 9 .
- the wireless module 106 is representative of functionality to enable the client device 102 to communicate wirelessly with other devices and/or entities.
- the wireless module 106 can be configured to enable data communication via a variety of different wireless techniques and protocols. Examples of such techniques and/or protocols include cellular communications (e.g. 3G, 4G, Long Term Evolution (LTE), and so forth), near field communication (NFC), short-range wireless connections (e.g., Bluetooth), local area wireless networks (e.g., one or more standards in compliance with IEEE 802.11), wide area wireless networks (e.g., one or more standard in compliance with IEEE 802.16), wireless telephone networks, and so on.
- cellular communications e.g. 3G, 4G, Long Term Evolution (LTE), and so forth
- NFC near field communication
- short-range wireless connections e.g., Bluetooth
- local area wireless networks e.g., one or more standards in compliance with IEEE 802.11
- wide area wireless networks e.g., one or more standard in compliance with IEEE 802.16
- the wireless module 106 includes hardware and logic components that can be employed to enable the client device 102 to communicate wirelessly. Examples of such wireless hardware components include radio transmitters, radio receivers, various types and/or combinations of antennas, and so on.
- the client device 102 is a multi-radio device that can communicate via different wireless technologies and/or protocols.
- the wireless module 106 includes wireless radios 116 which are representative of hardware for transmitting and receiving wireless signals according to different wireless technologies and protocols.
- the client location module 108 is representative of functionality to enable the client device 102 to ascertain its location based on location information received from other devices.
- the client location module 108 can receive location information from position information systems 118 , and can process the location information in various ways to estimate a location of the client device 102 .
- position information include GPS coordinates, street addresses, network location, location with reference to a cell tower and/or set of cell towers, and so forth.
- the client device 102 communicates wireless via connectivity to one or more networks 120 .
- the networks 120 are representative of a combination of different interconnected networks.
- the networks 120 include different portions of the radio spectrum that may be leveraged for wireless communication.
- the networks 120 may include a cellular network, a wireless broadband network (e.g., WiFiTM), a satellite communication network, a short range wireless network (e.g., Bluetooth, near field communication (NFC), and so on), and so forth.
- the networks 120 may also represent a combination of wireless and wired networks and may be configured in a variety of ways, such as a wide area network (WAN), a local area network (LAN), the Internet, and so forth. Accordingly, communication between the client device 102 and other devices may be implemented via a variety of different technologies (wired and wireless), such as wireless broadband, Bluetooth, cellular, and so forth.
- the connectivity module 110 is representative of functionality to manage various wireless connectivity tasks for the client device 102 . As further detailed below, the connectivity module 110 can utilize position information detected by the client device 102 to perform different connectivity-related tasks. For instance, the connectivity module 110 performs various aspects of techniques for geographic information for wireless networks discussed herein.
- the network DB 112 is representative of functionality to retrieve and store network information about the different networks 120 .
- the network DB 112 stores network identifiers for individual networks 120 , such as service set identifiers (S SID) and other types of network identifiers.
- S SID service set identifiers
- the network DB 112 further correlates individual networks 120 with different location information, such as geographical locations at which the client device 102 may connect to the different networks 120 .
- the network DB 112 includes a connectivity range mapping that correlates individual networks 120 with particular geographical ranges in which a quality of wireless connectivity to the individual networks is acceptable, e.g., exceeds a threshold signal quality and/or signal strength.
- the applications 114 are generally representative of functionalities to perform various tasks via the client device 102 .
- the term “applications” can refer to applications that are run locally and/or in a distributed environment, as well as services such as local services, web services, cloud-based services, and so forth.
- Examples of the applications 114 include a word processing application, a web browser, an email client, a communication service, a spreadsheet application, a content editing application, a web-based service portal, a geographic location service, and so forth.
- information for the network DB 112 may be retrieved from a network information service 122 .
- the network information service 122 is representative of network-accessible resource for information for the networks 120 and may be implemented in various ways, such as a cloud service, a service implemented by a network service provider, a standalone service, and so forth.
- the network table 200 includes a network identifier (ID) column 202 , an authentication information column 204 , an authentication protocol column 206 , a geographic range column 208 , and a network preference column 210 .
- ID network identifier
- the network table 200 includes a network identifier (ID) column 202 , an authentication information column 204 , an authentication protocol column 206 , a geographic range column 208 , and a network preference column 210 .
- the different rows in the network table 200 represent network profiles for different wireless networks.
- a network profile 212 represents a network profile for a wireless Network ABC. Examples of information included in the different network profiles is now discussed.
- the authentication information column 204 includes authentication information for different networks, such as network keys, passwords, user names, and so forth.
- the authentication protocols column 206 identifies authentication protocols utilized by different networks, and whether particular networks utilize authentication. For instance, some networks are open and thus may not utilize an authentication protocol.
- the geographic range column 208 includes geographic information that identifies geographic regions for the different wireless networks.
- the range column 208 includes GPS coordinates and/or other geographic information that describes geographic regions in which connectivity to particular wireless networks is available.
- the “ABC_Geographic Coordinates” for the Network ABC may define boundaries of a geographic region within which connectivity to the Network ABC is available and/or is within acceptable signal strength and/or signal quality.
- the network preference column 210 identifies whether certain wireless networks are preferred over others. For instance, a particular geographic region may have multiple available wireless networks identified in the network table 200 . In such as case, an available network identified in the preference column 210 as being preferred is given preference for network connectivity for a device (e.g., the client device 102 ) over another available network that is not preferred.
- Network preference may be based on various factors, such as historic signal strength (e.g., a network with higher historic signal strength is preferred over a network with lower historic signal strength), historic signal quality (e.g., a network with higher historic signal quality is preferred over a network with lower historic signal quality), cost of connecting to the network (e.g., a network with lower connection cost (e.g., price/rate to connect) is preferred over a network with higher connection cost), whether a network is known to be secure (e.g., a more secure network is preferred over a less secure network), and so forth.
- historic signal strength e.g., a network with higher historic signal strength is preferred over a network with lower historic signal strength
- historic signal quality e.g., a network with higher historic signal quality is preferred over a network with lower historic signal quality
- cost of connecting to the network e.g., a network with lower connection cost (e.g., price/rate to connect) is preferred over a network with higher connection cost
- a network is
- network information stored in the network table 200 is retrieved from the network information service 122 .
- the client device 102 may query the network information service 122 for network information.
- the network information service 122 may push network information down to the client device, such as independent of a query by the client device 102 for the network information.
- the connectivity module 110 may purge old data (e.g., stale network information) from the network table 200 , and may update the network table 200 with current network information received from the network information service 122 .
- This section describes some example procedures for performing different aspects of techniques for geographic information for wireless networks discussed herein.
- the procedures described herein may be used separately or in combination with each other, in whole or in part. These procedures are shown as sets of operations (or acts) performed, such as through one or more entities or modules, and are not necessarily limited to the order shown for performing the operation.
- the example procedures may be employed in the environment 100 of FIG. 1 , the system 900 of FIG. 9 , and/or any other suitable environment. In at least some implementations, steps described for the various procedures are implemented automatically and independent of user interaction.
- FIG. 3 is a flow diagram that describes steps in a method for causing an action to be performed based on geographic position information in accordance with one or more implementations.
- the method is performed by the client device 102 , such as by the connectivity module 110 .
- Step 300 registers to receive a notification that geographic position information is available on a device.
- the connectivity module 110 registers with a functionality of the client device 102 (e.g., the operating system 104 ) to receive notifications when geographical position information is locally available on the client device 102 .
- the registering includes requesting that a wake event being communicated to the connectivity module 110 to wake the connectivity module 110 from an inactive state to an active state such that the connectivity module 110 can retrieve geographic position information and cause an action to be performed based on the geographic position information.
- the wake event may be configured as an indication that geographic position information is available locally on a device.
- Step 302 receives an indication that geographic position information is available on a device.
- the connectivity module 110 receives a notification from a functionality of the client device 102 (e.g., the operating system 104 ) that geographic position information for the client device 102 is available.
- the notification takes the form of a wake event that wakes the connectivity module 110 from an inactive state and notifies the connectivity module that the geographic position information is available.
- geographic position information is retrieved on the client device 102 based on a request from a functionality other than the connectivity module 110 .
- an application 114 may request location information to determine a geographic location of the client device 102 , a direction of movement of the client device 102 , a rate of movement of the client device 102 , and so forth.
- the client location module 108 queries a position information system 118 for geographic position information for the client device, such as GPS coordinates, a geographic place name, a physical address, and so forth.
- the position information system 118 returns the geographic position information to the client device 102 such that the geographic position information is available locally to different functionalities of the client device 102 , such as the connectivity module 110 .
- the connectivity module 110 does not initiate direct requests for geographic position information, but is configured to retrieve and utilize geographic position information that is retrieved and made locally available by other functionalities. For instance, the indication that the geographical position information is available is received by the connectivity module 110 independent of a query by the connectivity module 110 for geographical position information.
- Step 304 retrieves the geographic position information from a location that is local to the device.
- the connectivity module 110 receives the geographic position information from another functionality of the client device 102 , such as the client location module 108 , the operating system 104 , and so forth.
- Step 306 performs an action in response to retrieving the geographic position information.
- Various actions are performable in relation to the selected wireless network, examples of which are detailed in the following procedures.
- the procedure may return to step 302 when an indication of further geographical position information is received, such as a wake event communicated to the connectivity module 110 .
- step 402 ascertains whether a wireless network is available at a location identified by geographic position information.
- the geographic position information represents position information that is retrieved as described above with reference to FIG. 3 .
- the connectivity module 110 searches the network DB 112 with the geographic position information to ascertain whether a wireless network is available at a location (e.g., a geographic location) identified by the geographic position information.
- step 404 maintains a wireless radio of the device in an inactive state. For instance, one or more of the wireless radios 116 of the client device 102 are maintained in an inactive (e.g., off) state.
- the procedure may return to step 402 as new geographic position information is received to ascertain whether a wireless network is available. For instance, as the client device 102 is moving (e.g., with a user that is traveling), new geographic position information is received indicating different locations of the client device 102 .
- step 406 selects a wireless network that is available at the location identified by geographic position information.
- the connectivity module 110 searches the network DB 112 with the geographic position information to identify a wireless network that is available at a location (e.g., a geographic location) identified by the geographic position information.
- the connectivity module 110 queries the network information service 122 with the geographical position information, and the network information service 122 returns information identifying one or more available wireless networks, and attributes of the wireless networks.
- a network profile for the selected wireless network is loaded to enable connection to the wireless network.
- the connectivity module 110 retrieves a network profile from the network DB 112 , and provides information from the network profile to a functionality such as the wireless module 106 and/or the operating system 104 .
- the network profile includes various information about the selected network, such as a network ID, authentication information for connecting to the wireless network, and so forth.
- an entity involved in negotiating a connection to the wireless network utilizes information from the network profile to establish a connection to the wireless network.
- the network profile for the selected network is loaded by the connectivity module 110 prior to the network being detected and/or prior to the client device 102 being in connectivity range of the network.
- preparation for upcoming connectivity to a wireless network can occur to expedite the connectivity process.
- Step 408 schedules a network scan to detect the wireless network.
- the connectivity module 110 for example, notifies the wireless module 106 to initiate a network scan (e.g., via one or more of wireless radios 116 ) to detect the selected wireless network.
- the notification instructs the wireless module 106 to initiate the network scan immediately, or at a future time.
- the connectivity module 110 ascertains based on the geographic position information that the client device 102 is not currently in range of the wireless network. However, based on a current trajectory and speed of the user, the connectivity module 110 estimates that the client device 102 will likely be in range within a specific period of time. Accordingly, the connectivity module 110 schedules the network scan to be initiated after the specific period of time elapses and/or within a particular time interval. Battery power is thus conserved by delaying the network scan until the client device 102 is in range of a known wireless network. Accordingly, in at least some implementations, scheduling the network scan occurs while the network is not currently detected by the device, such as while a wireless radio of the device is in an inactive state.
- Step 412 retrieves authentication information for the wireless network.
- authentication information are detailed above, and generally include one or more authentication factors that may be used to authenticate the client device 102 for access to a particular wireless network.
- the authentication information for instance, is retrieved from the network table 200 and/or the network information service 122 .
- Step 414 communicates the authentication information to be used to connect to the wireless network.
- the connectivity module 110 communicates the authentication information to the wireless module 106 .
- the wireless module 106 then communicates the authentication information to the selected wireless network to authenticate and establish wireless connectivity with the selected wireless network.
- the wireless module performs a network association procedure to associate with the wireless network such that the client device 102 transmits and receives data wirelessly via the wireless network.
- step 416 ascertains whether the current wireless network is a preferred wireless network.
- the connectivity module 110 compares a network ID for the current wireless network to the network DB 112 to ascertain whether the current wireless network is identified as a preferred wireless network. If the current wireless network is a preferred wireless network (“Yes”), step 418 ascertains that the connection to the current wireless network is to be maintained.
- step 420 ascertains whether a preferred wireless network is available at a location identified by the geographic position information.
- the connectivity module 110 searches the network DB 112 and/or queries the network information service 122 with the geographic position information to ascertain whether a preferred wireless network is available at the location. If a preferred wireless network is not available at the location (“No”), the method returns to step 418 .
- FIG. 5 is a flow diagram that describes steps in a method for preparing for connection to a wireless network in accordance with one or more implementations.
- the method for instance, describes an example implementation of step 306 described above with reference to FIG. 3 .
- the method is performed by the client device 102 , such as by the connectivity module 110 .
- Step 500 identifies a wireless network based on geographic position information.
- the connectivity module 110 searches the network DB 112 with the geographic position information to identify a wireless network that is capable of providing wireless connectivity in a geographic region identified by the geographic position information.
- the connectivity module 110 queries the network information service 122 with the geographic position information and requests information for one or more wireless networks capable of providing wireless connectivity in a geographic region identified by the geographic position information.
- the wireless network is identified as a wireless network that is currently in-range of the client device 102 .
- the geographic position information corresponds to a current location of the client device 102 .
- the wireless network is identified as a wireless network that will be in-range of the client device 102 at a future time.
- the geographic information may include speed and trajectory information for the client device 102 which can be used to identify one or more wireless networks that are predicted to be in range at a future time. The future time may be measured in various units, such as seconds, minutes, and so forth.
- the connectivity module 110 provides the connectivity information to a functionality responsible for negotiating a connection to the wireless network, such as the wireless module 106 , the operating system 104 , and so forth.
- FIG. 6 is a flow diagram that describes steps in a method for selecting a wireless network in accordance with one or more implementations.
- the method describes an example extension of the methods described above with reference to FIGS. 3-5 .
- the method describes an implementation of step 406 of FIG. 4 and/or step 500 of FIG. 5 .
- the method is performed by the client device 102 , such as by the connectivity module 110 .
- Step 600 ascertains that multiple wireless networks are identified as being available at a particular location.
- the connectivity module 110 searches the network DB 112 and/or queries the network information service 122 with geographical position information, and ascertains that multiple wireless networks are available at a location identified by the geographical position information.
- Step 602 selects a network of the multiple wireless networks based on the network being a preferred network.
- a particular wireless network may be selected from the multiple wireless networks based on network preference, e.g., a preferred wireless network is selected over a non-preferred wireless network.
- Example factors considered in determining whether a wireless network is preferred are discussed above with reference to the network table 200 .
- FIG. 7 is a flow diagram that describes steps in a method for deleting stale network information in accordance with one or more implementations.
- the method for instance, describes an example extension of the methods described above with reference to FIGS. 3-6 .
- the method is performed by the client device 102 , such as by the connectivity module 110 .
- Step 700 ascertains that network information on a device is for one or more networks that are not available at a current location of the device.
- the connectivity module 110 ascertains that network information is stored on the client device 102 for one or more wireless networks that are not available at a current geographic location of the client device 102 .
- the network information corresponds to wireless networks that were available at one or more previous (e.g., historic) locations of the client device 102 .
- the network information may be considered “stale” in that it is not relevant to a current geographic location of the client device 102 .
- Step 702 deletes the network information from the device.
- the connectivity module 110 for instance, causes the stale network information to be deleted from the network DB 112 . Accordingly, data storage space of the client device 102 is conserved by freeing storage space occupied by stale network information.
- FIG. 8 is a flow diagram that describes steps in a method for causing a wireless radio to transition to an inactive state in accordance with one or more implementations.
- the method for instance, describes an example extension of the methods described above with reference to FIGS. 3-7 .
- the method is performed by the client device 102 , such as by the connectivity module 110 .
- Step 800 receives further geographic position information.
- the connectivity module 110 retrieves further geographic position information that is different than previously-received geographic position information.
- the geographic position information indicates that the client device 102 has moved from a previous geographic location to a different geographic location.
- Step 802 ascertains that a suitable wireless network is not available at a location identified by the further geographic position information.
- the connectivity module 110 searches the network DB 112 and/or queries the network information service 122 with the further geographic position information, and ascertains that a suitable wireless network is not available. In at least some implementations, this indicates that a wireless network is not available at the location.
- connectivity criteria include minimum network security procedures, minimum signal strength and/or signal quality, a maximum connectivity cost (e.g., a price for network connectivity), and so forth.
- a wireless network may be available, but may be determined to be unsuitable due to failure of the wireless network to meet one or more connectivity criteria.
- Step 804 causes a wireless radio to transition from an active state to an inactive state.
- the connectivity module 110 for instance, causes one or more of the wireless radios 116 to transition to an inactive state responsive to ascertaining that a suitable wireless network is not available.
- battery power is conserved by inactivating a wireless radio when suitable wireless networks are not available. Otherwise, a wireless radio may continually scan for wireless networks, which reduces battery life of a device.
- the procedure may return to step 302 of FIG. 3 responsive to receiving yet additional geographic position information. Should a suitable wireless network be identified based on the additional geographic position information, actions may be performed to establish connectivity to the suitable wireless network, such as activating a wireless radio as well as other actions detailed above.
- a functionality configured to manage wireless connectivity e.g., the connectivity module 110
- a scan for an available wireless network is scheduled based on knowledge of available wireless networks at a particular geographic location, thus preventing open scanning in locations where suitable wireless networks are not present.
- a device's wireless radio may be kept in an inactive state until the device is at a geographic location known to have one or more suitable wireless networks.
- FIG. 9 illustrates an example system generally at 900 that includes an example computing device 902 that is representative of one or more computing systems and/or devices that may implement various techniques described herein.
- the client device 102 discussed above with reference to FIG. 1 can be embodied as the computing device 902 .
- the computing device 902 may be, for example, a server of a service provider, a device associated with the client (e.g., a client device), an on-chip system, and/or any other suitable computing device or computing system.
- the example computing device 902 as illustrated includes a processing system 904 , one or more computer-readable media 906 , and one or more I/O Interfaces 908 that are communicatively coupled, one to another.
- the computing device 902 may further include a system bus or other data and command transfer system that couples the various components, one to another.
- a system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.
- a variety of other examples are also contemplated, such as control and data lines.
- the processing system 904 is representative of functionality to perform one or more operations using hardware. Accordingly, the processing system 904 is illustrated as including hardware element 910 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors.
- the hardware elements 190 are not limited by the materials from which they are formed or the processing mechanisms employed therein.
- processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)).
- processor-executable instructions may be electronically-executable instructions.
- the computer-readable media 906 is illustrated as including memory/storage 912 .
- the memory/storage 912 represents memory/storage capacity associated with one or more computer-readable media.
- the memory/storage 912 may include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth).
- RAM random access memory
- ROM read only memory
- Flash memory optical disks
- magnetic disks magnetic disks, and so forth
- the memory/storage 912 may include fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth).
- the computer-readable media 906 may be configured in a variety of other ways as further described below.
- Input/output interface(s) 908 are representative of functionality to allow a user to enter commands and information to computing device 902 , and also allow information to be presented to the user and/or other components or devices using various input/output devices.
- input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone (e.g., for implementing voice and/or spoken input), a scanner, touch functionality (e.g., capacitive or other sensors that are configured to detect physical touch), a camera (e.g., which may employ visible or non-visible wavelengths such as infrared frequencies to detect movement that does not involve touch as gestures), and so forth.
- Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, tactile-response device, and so forth.
- the computing device 902 may be configured in a variety of ways as further described below to support user interaction.
- modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types.
- module generally represent software, firmware, hardware, or a combination thereof.
- the features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
- Computer-readable media may include a variety of media that may be accessed by the computing device 902 .
- computer-readable media may include “computer-readable storage media” and “computer-readable signal media.”
- Computer-readable storage media may refer to media and/or devices that enable persistent storage of information in contrast to mere signal transmission, carrier waves, or signals per se. Computer-readable storage media do not include signals per se.
- the computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer readable instructions, data structures, program modules, logic elements/circuits, or other data.
- Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage device, tangible media, or article of manufacture suitable to store the desired information and which may be accessed by a computer.
- Computer-readable signal media may refer to a signal-bearing medium that is configured to transmit instructions to the hardware of the computing device 902 , such as via a network.
- Signal media typically may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier waves, data signals, or other transport mechanism.
- Signal media also include any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.
- hardware elements 910 and computer-readable media 906 are representative of instructions, modules, programmable device logic and/or fixed device logic implemented in a hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein.
- Hardware elements may include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware devices.
- ASIC application-specific integrated circuit
- FPGA field-programmable gate array
- CPLD complex programmable logic device
- a hardware element may operate as a processing device that performs program tasks defined by instructions, modules, and/or logic embodied by the hardware element as well as a hardware device utilized to store instructions for execution, e.g., the computer-readable storage media described previously.
- software, hardware, or program modules and other program modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or more hardware elements 910 .
- the computing device 902 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of modules as a module that is executable by the computing device 902 as software may be achieved at least partially in hardware, e.g., through use of computer-readable storage media and/or hardware elements 910 of the processing system.
- the instructions and/or functions may be executable/operable by one or more articles of manufacture (for example, one or more computing devices 902 and/or processing systems 904 ) to implement techniques, modules, and examples described herein.
- the example system 900 enables ubiquitous environments for a seamless user experience when running applications on a personal computer (PC), a television device, and/or a mobile device. Services and applications run substantially similarly in all three environments for a common user experience when transitioning from one device to the next while utilizing an application, playing a video game, watching a video, and so on.
- PC personal computer
- television device a television device
- mobile device a mobile device. Services and applications run substantially similarly in all three environments for a common user experience when transitioning from one device to the next while utilizing an application, playing a video game, watching a video, and so on.
- multiple devices are interconnected through a central computing device.
- the central computing device may be local to the multiple devices or may be located remotely from the multiple devices.
- the central computing device may be a cloud of one or more server computers that are connected to the multiple devices through a network, the Internet, or other data communication link.
- this interconnection architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to a user of the multiple devices.
- Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable the delivery of an experience to the device that is both tailored to the device and yet common to all devices.
- a class of target devices is created and experiences are tailored to the generic class of devices.
- a class of devices may be defined by physical features, types of usage, or other common characteristics of the devices.
- the computing device 902 may assume a variety of different configurations, such as for computer 914 , mobile 916 , and television 918 uses. Each of these configurations includes devices that may have generally different constructs and capabilities, and thus the computing device 902 may be configured according to one or more of the different device classes. For instance, the computing device 902 may be implemented as the computer 914 class of a device that includes a personal computer, desktop computer, a multi-screen computer, laptop computer, netbook, and so on.
- the computing device 902 may also be implemented as the mobile 916 class of device that includes mobile devices, such as a mobile phone, a wearable device, portable music player, portable gaming device, a tablet computer, a multi-screen computer, and so on.
- the computing device 902 may also be implemented as the television 918 class of device that includes devices having or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, gaming consoles, and so on.
- the techniques described herein may be supported by these various configurations of the computing device 902 and are not limited to the specific examples of the techniques described herein.
- functionalities discussed with reference to the client device 102 and/or the network information service 122 may be implemented all or in part through use of a distributed system, such as over a “cloud” 920 via a platform 922 as described below.
- the cloud 920 includes and/or is representative of a platform 922 for resources 924 .
- the platform 922 abstracts underlying functionality of hardware (e.g., servers) and software resources of the cloud 920 .
- the resources 924 may include applications and/or data that can be utilized while computer processing is executed on servers that are remote from the computing device 902 .
- Resources 924 can also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-FiTM network.
- the platform 922 may abstract resources and functions to connect the computing device 902 with other computing devices.
- the platform 922 may also serve to abstract scaling of resources to provide a corresponding level of scale to encountered demand for the resources 924 that are implemented via the platform 922 .
- implementation of functionality described herein may be distributed throughout the system 900 .
- the functionality may be implemented in part on the computing device 902 as well as via the platform 922 that abstracts the functionality of the cloud 920 .
- aspects of the methods may be implemented in hardware, firmware, or software, or a combination thereof.
- the methods are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. Further, an operation shown with respect to a particular method may be combined and/or interchanged with an operation of a different method in accordance with one or more implementations. Aspects of the methods can be implemented via interaction between various entities discussed above with reference to the environment 100 .
- a system as described in example 1, wherein the indication that geographic position information is available comprises a wake event for a functionality that performs the operations.
- scheduling the network scan comprises scheduling the network scan to occur at a future time.
- scheduling the network scan comprises causing a wireless radio of the device to transition from an inactive state to an active state, and to scan for the selected wireless network.
- a computer-implemented method comprising: receiving a wake event indicating that geographic position information is available on a device; retrieving the geographic position information in response to the wake event; performing one or more actions in response to retrieving the geographic position information, including: selecting a wireless network that is available at a location identified by the geographic position information; and causing a wireless radio of the device to transition from an inactive state to an active state to scan for the wireless network.
- One or more computer-readable storage media storing instructions that are executable by a computing device to perform operations comprising: retrieving geographic position information that is available locally on a device and independent of a query for the geographic position information; and performing an action in in response to retrieving the geographic position information, including at least one of: selecting a wireless network that is available at a location identified by the geographic position information; scheduling a network scan to detect the wireless network; or causing a wireless radio to transition from an inactive state to an active state to scan for the wireless network.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephone Function (AREA)
Abstract
Techniques for geographic information for wireless networks are described. According to various embodiments, a connectivity module on a mobile device receives geographic position information for a mobile device from another functionality of the mobile device and independent of a query by the connectivity module for the information. The connectivity module retrieves the geographic position information locally on the device, and utilizes the geographic position information to cause various actions to be performed. For instance, the connectivity module utilizes the geographic position information to identify a wireless network at a particular geographic region, and to cause a wireless scan to be initiated to detect the wireless network.
Description
- This application is a continuation of and claims priority to U.S. patent application Ser. No. 14/590,515, entitled “Geographic Information for Wireless Networks” and filed Jan. 6, 2015, the disclosure of which is incorporated by reference herein in its entirety.
- Today's mobile devices provide users with a tremendous amount of portable functionality. For instance, smartphones, tablets, laptops, and so on, enable users to perform a variety of different tasks without being tied to a particular location. Since a user may move between locations, it can be useful to know where a user is located at a particular time, such as for providing location-specific content and services.
- This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
- Techniques for geographic information for wireless networks are described. According to various embodiments, a connectivity module on a mobile device receives geographic position information for a mobile device from another functionality of the mobile device and independent of a query by the connectivity module for the information. The connectivity module retrieves the geographic position information locally on the device, and utilizes the geographic position information to cause various actions to be performed. For instance, the connectivity module utilizes the geographic position information to identify a wireless network at a particular geographic region, and to cause a wireless scan to be initiated to detect the wireless network.
- The detailed description is described with reference to the accompanying figures. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. The use of the same reference numbers in different instances in the description and the figures may indicate similar or identical items.
-
FIG. 1 is an illustration of an environment in an example implementation that is operable to employ techniques discussed herein in accordance with one or more implementations. -
FIG. 2 illustrates an example network table in accordance with one or more implementations. -
FIG. 3 is a flow diagram that describes steps in a method for causing an action to be performed based on geographic position information in accordance with one or more implementations. -
FIG. 4 is a flow diagram that describes steps in a method for performing an action based on geographic position information in accordance with one or more implementations. -
FIG. 5 is a flow diagram that describes steps in a method for preparing for connection to a wireless network in accordance with one or more implementations. -
FIG. 6 is a flow diagram that describes steps in a method for selecting a wireless network in accordance with one or more implementations. -
FIG. 7 is a flow diagram that describes steps in a method for deleting stale network information in accordance with one or more implementations. -
FIG. 8 is a flow diagram that describes steps in a method for causing a wireless radio to transition to an inactive state in accordance with one or more implementations. -
FIG. 9 illustrates an example system and computing device as described with reference toFIG. 1 , which are configured to implement embodiments of techniques described herein. - Overview
- Techniques for geographic information for wireless networks are described. According to various implementations, a connectivity module on a mobile device registers to receive a notification when geographical position information is available on the mobile device. For instance, the connectivity module registers to receive a wake event to wake the connectivity module from an inactive state when the geographic position information is available. Generally, the connectivity module represents a functionality that manages various wireless connectivity tasks for a mobile device.
- According to one or more implementations, a connectivity module receives geographic position information for a mobile device independent of a query for the information. For instance, when another functionality of the mobile device (e.g., an application and/or service) retrieves geographic position information, the connectivity module is notified that the information is available locally on the device. According to various implementations, the geographic position information corresponds to an estimated current location of the mobile device, and/or a projected future location estimated based on trajectory and velocity information for the mobile device. The connectivity module retrieves the geographic position information locally on the device, and utilizes the geographic position information to cause various actions to be performed.
- For instance, the connectivity module utilizes the geographic position information to identify and select a wireless network that is available at a location that corresponds to the geographic position information. The connectivity module causes a network scan to be performed to identify wireless signal from the wireless network. For instance, the connectivity module schedules a network scan to be performed to detect the wireless network. Alternatively or additionally, the connectivity module instructs a wireless functionality of a mobile device to activate its wireless radio and scan for the wireless network.
- According to various implementations, a connectivity module of a mobile device is maintained in an inactive state until a wake event is received in response to geographic position information being available locally on the mobile device. Further, a wireless functionality of a mobile device (e.g., a wireless radio) is maintained in an inactive state (e.g., off) until the connectivity module identifies an available wireless network at a particular location, and causes the wireless functionality to activate and scan for the wireless network. Thus, various resources of a mobile device are conserved, such as battery life, processing resources, wireless communication resources, and so forth.
- For instance, instead of causing a wireless radio to perform open scanning in an attempt to identify an available wireless network, the wireless radio is kept in an inactive state until geographical position information is received and correlated to a known available wireless network at a particular location. At such point, the wireless radio is activated to search for the known available wireless network. Various other details of the techniques discussed herein are provided below.
- According to various implementations, preparation for connectivity to a wireless network can occur ahead of time, such as prior to the wireless network being detected and/or prior to the wireless network being in-range. For instance, a network profile is loaded for a wireless network that is identified based on geographic position information and prior to the wireless network being detected. Generally, the network profile includes connectivity information such as a network identifier for the wireless network, authentication information for the wireless network, and so forth. Accordingly, the connectivity information is made available such that when the wireless network is detected (e.g., based on a wireless radio scan), the connectivity information is readily available. Thus, connection time and system resource usage are reduced for the connection process.
- In the following discussion, an example environment is first described that is operable to employ techniques described herein. Next, a section entitled “Example Procedures” describes some example procedures for geographic information for wireless networks in accordance with one or more embodiments. Finally, a section entitled “Example System and Device” describes an example system and device that are operable to employ techniques discussed herein in accordance with one or more embodiments.
- Example Environment
-
FIG. 1 is an illustration of anenvironment 100 in an example implementation that is operable to employ techniques for geographic information for wireless networks in accordance with one or more implementations.Environment 100 includes aclient device 102 which can be embodied as any suitable device such as, by way of example and not limitation, a smartphone, a wearable device, a tablet computer, a portable computer (e.g., a laptop), a desktop computer, and so forth. One of a variety of different examples of theclient device 102 is shown and described below inFIG. 9 . - The
client device 102 includes anoperating system 104, awireless module 106, a client location module 108, aconnectivity module 110, a network database (DB) 112, andapplications 114. Generally, theoperating system 104 is representative of functionality to manage resources of theclient device 102 and may be implemented using any suitable instruction format. According to various implementations, theoperating system 104 abstracts various resources of theclient device 102 to enable various entities to access and interact with the resources. - The
wireless module 106 is representative of functionality to enable theclient device 102 to communicate wirelessly with other devices and/or entities. Thewireless module 106 can be configured to enable data communication via a variety of different wireless techniques and protocols. Examples of such techniques and/or protocols include cellular communications (e.g. 3G, 4G, Long Term Evolution (LTE), and so forth), near field communication (NFC), short-range wireless connections (e.g., Bluetooth), local area wireless networks (e.g., one or more standards in compliance with IEEE 802.11), wide area wireless networks (e.g., one or more standard in compliance with IEEE 802.16), wireless telephone networks, and so on. - The
wireless module 106, for instance, includes hardware and logic components that can be employed to enable theclient device 102 to communicate wirelessly. Examples of such wireless hardware components include radio transmitters, radio receivers, various types and/or combinations of antennas, and so on. In at least some embodiments, theclient device 102 is a multi-radio device that can communicate via different wireless technologies and/or protocols. For example, thewireless module 106 includeswireless radios 116 which are representative of hardware for transmitting and receiving wireless signals according to different wireless technologies and protocols. - The client location module 108 is representative of functionality to enable the
client device 102 to ascertain its location based on location information received from other devices. The client location module 108, for instance, can receive location information fromposition information systems 118, and can process the location information in various ways to estimate a location of theclient device 102. Examples of position information include GPS coordinates, street addresses, network location, location with reference to a cell tower and/or set of cell towers, and so forth. - According to various implementations, the
client device 102 communicates wireless via connectivity to one ormore networks 120. Generally, thenetworks 120 are representative of a combination of different interconnected networks. In at least some implementations, thenetworks 120 include different portions of the radio spectrum that may be leveraged for wireless communication. Thenetworks 120, for instance, may include a cellular network, a wireless broadband network (e.g., WiFi™), a satellite communication network, a short range wireless network (e.g., Bluetooth, near field communication (NFC), and so on), and so forth. Thenetworks 120 may also represent a combination of wireless and wired networks and may be configured in a variety of ways, such as a wide area network (WAN), a local area network (LAN), the Internet, and so forth. Accordingly, communication between theclient device 102 and other devices may be implemented via a variety of different technologies (wired and wireless), such as wireless broadband, Bluetooth, cellular, and so forth. - The
connectivity module 110 is representative of functionality to manage various wireless connectivity tasks for theclient device 102. As further detailed below, theconnectivity module 110 can utilize position information detected by theclient device 102 to perform different connectivity-related tasks. For instance, theconnectivity module 110 performs various aspects of techniques for geographic information for wireless networks discussed herein. - According to various implementations, the
network DB 112 is representative of functionality to retrieve and store network information about thedifferent networks 120. Thenetwork DB 112, for instance, stores network identifiers forindividual networks 120, such as service set identifiers (S SID) and other types of network identifiers. - The
network DB 112 further correlatesindividual networks 120 with different location information, such as geographical locations at which theclient device 102 may connect to thedifferent networks 120. For example, thenetwork DB 112 includes a connectivity range mapping that correlatesindividual networks 120 with particular geographical ranges in which a quality of wireless connectivity to the individual networks is acceptable, e.g., exceeds a threshold signal quality and/or signal strength. - The
network DB 112 further stores authentication information for thedifferent networks 120. Examples of such authentication information include network keys, network passwords, usernames for network accounts, authentication protocols utilized by individual networks, and so forth. Generally, the authentication information enables connectivity to thevarious networks 120. - The
network DB 112 may store a variety of other information for thenetworks 120, such as network type, network service provider identifiers, historic network quality, and so forth. - The
applications 114 are generally representative of functionalities to perform various tasks via theclient device 102. As used herein, the term “applications” can refer to applications that are run locally and/or in a distributed environment, as well as services such as local services, web services, cloud-based services, and so forth. Examples of theapplications 114 include a word processing application, a web browser, an email client, a communication service, a spreadsheet application, a content editing application, a web-based service portal, a geographic location service, and so forth. - According to one or more implementations, information for the
network DB 112 may be retrieved from anetwork information service 122. Generally, thenetwork information service 122 is representative of network-accessible resource for information for thenetworks 120 and may be implemented in various ways, such as a cloud service, a service implemented by a network service provider, a standalone service, and so forth. - For purposes of discussion herein, various entities may be referred to in both plural and singular implementations. Accordingly, a reference to singular implementation refers to an instance of the plural implementation.
-
FIG. 2 illustrates an example network table 200 in accordance with one or more implementations. The network table 200, for instance, is implemented as part of thenetwork DB 112 to enable theconnectivity module 110 to leverage network information to perform various connectivity-related tasks for theclient device 102. - The network table 200 includes a network identifier (ID)
column 202, anauthentication information column 204, anauthentication protocol column 206, ageographic range column 208, and anetwork preference column 210. These examples of different network information are presented for purpose of example only, and it is to be appreciated that various other types of network information may be tracked and leveraged in accordance with the implementations disclosed herein. - Generally, the different rows in the network table 200 represent network profiles for different wireless networks. For instance, a
network profile 212 represents a network profile for a wireless Network ABC. Examples of information included in the different network profiles is now discussed. - The
network ID column 202 includes identifiers for different wireless networks, such as for thenetworks 120. Various types of identifiers may be employed, such as network names, network SSIDs, internet protocol (IP) addresses, and so forth. Generally, the individual rows of the network table 200 correspond to network profiles for different networks identified in thenetwork ID column 202. - The
authentication information column 204 includes authentication information for different networks, such as network keys, passwords, user names, and so forth. Theauthentication protocols column 206 identifies authentication protocols utilized by different networks, and whether particular networks utilize authentication. For instance, some networks are open and thus may not utilize an authentication protocol. - The
geographic range column 208 includes geographic information that identifies geographic regions for the different wireless networks. For instance, therange column 208 includes GPS coordinates and/or other geographic information that describes geographic regions in which connectivity to particular wireless networks is available. As an example, the “ABC_Geographic Coordinates” for the Network ABC may define boundaries of a geographic region within which connectivity to the Network ABC is available and/or is within acceptable signal strength and/or signal quality. - The
network preference column 210 identifies whether certain wireless networks are preferred over others. For instance, a particular geographic region may have multiple available wireless networks identified in the network table 200. In such as case, an available network identified in thepreference column 210 as being preferred is given preference for network connectivity for a device (e.g., the client device 102) over another available network that is not preferred. - Network preference may be based on various factors, such as historic signal strength (e.g., a network with higher historic signal strength is preferred over a network with lower historic signal strength), historic signal quality (e.g., a network with higher historic signal quality is preferred over a network with lower historic signal quality), cost of connecting to the network (e.g., a network with lower connection cost (e.g., price/rate to connect) is preferred over a network with higher connection cost), whether a network is known to be secure (e.g., a more secure network is preferred over a less secure network), and so forth.
- In at least some implementations, network information stored in the network table 200 is retrieved from the
network information service 122. For instance, theclient device 102 may query thenetwork information service 122 for network information. Alternatively or additionally, thenetwork information service 122 may push network information down to the client device, such as independent of a query by theclient device 102 for the network information. Accordingly, in at least some implementations, theconnectivity module 110 may purge old data (e.g., stale network information) from the network table 200, and may update the network table 200 with current network information received from thenetwork information service 122. - Having described an example environment in which the techniques described herein may operate, consider now some example procedures in accordance with one or more implementations.
- Example Procedures
- This section describes some example procedures for performing different aspects of techniques for geographic information for wireless networks discussed herein. The procedures described herein may be used separately or in combination with each other, in whole or in part. These procedures are shown as sets of operations (or acts) performed, such as through one or more entities or modules, and are not necessarily limited to the order shown for performing the operation. The example procedures may be employed in the
environment 100 ofFIG. 1 , thesystem 900 ofFIG. 9 , and/or any other suitable environment. In at least some implementations, steps described for the various procedures are implemented automatically and independent of user interaction. -
FIG. 3 is a flow diagram that describes steps in a method for causing an action to be performed based on geographic position information in accordance with one or more implementations. In at least some implementations, the method is performed by theclient device 102, such as by theconnectivity module 110. - Step 300 registers to receive a notification that geographic position information is available on a device. For instance, the
connectivity module 110 registers with a functionality of the client device 102 (e.g., the operating system 104) to receive notifications when geographical position information is locally available on theclient device 102. In at least some implementations, the registering includes requesting that a wake event being communicated to theconnectivity module 110 to wake theconnectivity module 110 from an inactive state to an active state such that theconnectivity module 110 can retrieve geographic position information and cause an action to be performed based on the geographic position information. Thus, the wake event may be configured as an indication that geographic position information is available locally on a device. - Step 302 receives an indication that geographic position information is available on a device. The
connectivity module 110, for instance, receives a notification from a functionality of the client device 102 (e.g., the operating system 104) that geographic position information for theclient device 102 is available. In at least some implementations, the notification takes the form of a wake event that wakes theconnectivity module 110 from an inactive state and notifies the connectivity module that the geographic position information is available. - According to various implementations, geographic position information is retrieved on the
client device 102 based on a request from a functionality other than theconnectivity module 110. For instance, anapplication 114 may request location information to determine a geographic location of theclient device 102, a direction of movement of theclient device 102, a rate of movement of theclient device 102, and so forth. In response to the request, the client location module 108 queries aposition information system 118 for geographic position information for the client device, such as GPS coordinates, a geographic place name, a physical address, and so forth. Theposition information system 118 returns the geographic position information to theclient device 102 such that the geographic position information is available locally to different functionalities of theclient device 102, such as theconnectivity module 110. - Accordingly, in at least some implementations, the
connectivity module 110 does not initiate direct requests for geographic position information, but is configured to retrieve and utilize geographic position information that is retrieved and made locally available by other functionalities. For instance, the indication that the geographical position information is available is received by theconnectivity module 110 independent of a query by theconnectivity module 110 for geographical position information. - Step 304 retrieves the geographic position information from a location that is local to the device. For instance, the
connectivity module 110 receives the geographic position information from another functionality of theclient device 102, such as the client location module 108, theoperating system 104, and so forth. - Step 306 performs an action in response to retrieving the geographic position information. Various actions are performable in relation to the selected wireless network, examples of which are detailed in the following procedures.
- Step 308 transitions to an inactive state until further geographic position information is received. For instance, after performing and/or initiating various actions in response to retrieving the geographic position information, the
connectivity module 110 transitions to an inactive state until a notification of further geographic position information is received. In an inactive state, theconnectivity module 110 may be configured to receive wake events to become active, but may not proactively initiate other actions. - As illustrated, the procedure may return to step 302 when an indication of further geographical position information is received, such as a wake event communicated to the
connectivity module 110. -
FIG. 4 is a flow diagram that describes steps in a method for performing an action based on geographic position information in accordance with one or more implementations. The method, for instance, describes an example implementation ofstep 306 described above with reference toFIG. 3 . In at least some implementations, the method is performed by theclient device 102, such as by theconnectivity module 110. - Step 400 ascertains whether a device is currently connected to a wireless network. The
connectivity module 110, for example, queries thewireless module 106 and/or theoperating system 104 to ascertain whether theclient device 102 is currently connected to a wireless network. - If the device is not currently connected to a wireless network (“No”),
step 402 ascertains whether a wireless network is available at a location identified by geographic position information. For instance, the geographic position information represents position information that is retrieved as described above with reference toFIG. 3 . Theconnectivity module 110, for example, searches thenetwork DB 112 with the geographic position information to ascertain whether a wireless network is available at a location (e.g., a geographic location) identified by the geographic position information. - Alternatively or additionally, the
connectivity module 110 queries thenetwork information service 122 with the geographic position information. For instance, theconnectivity module 110 communicates the geographic position information to thenetwork information service 122, which returns information indicating whether a wireless network is available and if so, information about the available wireless network(s). Theconnectivity module 110 stores the information about the available wireless network as part of thenetwork DB 112. Thus, in at least some implementations, theclient device 102 need not maintain comprehensive wireless network information locally, and may leverage thenetwork information service 122 to provide such information. - If a wireless network is not available at the location (“No”),
step 404 maintains a wireless radio of the device in an inactive state. For instance, one or more of thewireless radios 116 of theclient device 102 are maintained in an inactive (e.g., off) state. According to one or more implementations, the procedure may return to step 402 as new geographic position information is received to ascertain whether a wireless network is available. For instance, as theclient device 102 is moving (e.g., with a user that is traveling), new geographic position information is received indicating different locations of theclient device 102. - If a wireless network is available at the location (“Yes”),
step 406 selects a wireless network that is available at the location identified by geographic position information. Theconnectivity module 110, for example, searches thenetwork DB 112 with the geographic position information to identify a wireless network that is available at a location (e.g., a geographic location) identified by the geographic position information. Alternatively or additionally, theconnectivity module 110 queries thenetwork information service 122 with the geographical position information, and thenetwork information service 122 returns information identifying one or more available wireless networks, and attributes of the wireless networks. - In at least some implementations, a network profile for the selected wireless network is loaded to enable connection to the wireless network. For instance, the
connectivity module 110 retrieves a network profile from thenetwork DB 112, and provides information from the network profile to a functionality such as thewireless module 106 and/or theoperating system 104. As referenced above, the network profile includes various information about the selected network, such as a network ID, authentication information for connecting to the wireless network, and so forth. Thus, an entity involved in negotiating a connection to the wireless network utilizes information from the network profile to establish a connection to the wireless network. - According to various implementations, the network profile for the selected network is loaded by the
connectivity module 110 prior to the network being detected and/or prior to theclient device 102 being in connectivity range of the network. Thus, preparation for upcoming connectivity to a wireless network can occur to expedite the connectivity process. - Step 408 schedules a network scan to detect the wireless network. The
connectivity module 110, for example, notifies thewireless module 106 to initiate a network scan (e.g., via one or more of wireless radios 116) to detect the selected wireless network. In at least some implementations, the notification instructs thewireless module 106 to initiate the network scan immediately, or at a future time. - For instance, consider a scenario where the
client device 102 is in motion, such as with a user that is traveling. Accordingly, theconnectivity module 110 ascertains based on the geographic position information that theclient device 102 is not currently in range of the wireless network. However, based on a current trajectory and speed of the user, theconnectivity module 110 estimates that theclient device 102 will likely be in range within a specific period of time. Accordingly, theconnectivity module 110 schedules the network scan to be initiated after the specific period of time elapses and/or within a particular time interval. Battery power is thus conserved by delaying the network scan until theclient device 102 is in range of a known wireless network. Accordingly, in at least some implementations, scheduling the network scan occurs while the network is not currently detected by the device, such as while a wireless radio of the device is in an inactive state. - Step 410 causes a wireless radio of the device to transition from an inactive state to an active state to scan for the wireless network. In at least some implementations, causing the wireless radio to transition from the inactive state to the active state is a result of the scheduled network scan.
- Step 412 retrieves authentication information for the wireless network. Examples of authentication information are detailed above, and generally include one or more authentication factors that may be used to authenticate the
client device 102 for access to a particular wireless network. The authentication information, for instance, is retrieved from the network table 200 and/or thenetwork information service 122. - Step 414 communicates the authentication information to be used to connect to the wireless network. For instance, the
connectivity module 110 communicates the authentication information to thewireless module 106. Thewireless module 106 then communicates the authentication information to the selected wireless network to authenticate and establish wireless connectivity with the selected wireless network. For instance, the wireless module performs a network association procedure to associate with the wireless network such that theclient device 102 transmits and receives data wirelessly via the wireless network. - Returning to step 400, if the device is currently connected to a wireless network (“Yes”),
step 416 ascertains whether the current wireless network is a preferred wireless network. Theconnectivity module 110, for instance, compares a network ID for the current wireless network to thenetwork DB 112 to ascertain whether the current wireless network is identified as a preferred wireless network. If the current wireless network is a preferred wireless network (“Yes”),step 418 ascertains that the connection to the current wireless network is to be maintained. - If the current wireless network is not a preferred wireless network (“No”),
step 420 ascertains whether a preferred wireless network is available at a location identified by the geographic position information. Theconnectivity module 110, for instance, searches thenetwork DB 112 and/or queries thenetwork information service 122 with the geographic position information to ascertain whether a preferred wireless network is available at the location. If a preferred wireless network is not available at the location (“No”), the method returns to step 418. - If a preferred wireless network is available at the location (“Yes”),
step 422 causes the device to switch from the current wireless network to the preferred wireless network. For instance, theconnectivity module 110 instructs thewireless module 106 to disconnect from the current wireless network and to connect with the preferred wireless network. In at least some implementations, theconnectivity module 110 retrieves authentication information for the preferred wireless network from thenetwork DB 112 and/or thenetwork information service 122, and communicates the authentication information to thewireless module 106 to be used to connect to the preferred wireless network. Thus, thewireless module 106 proceeds with disconnecting from the current wireless network, and connecting to the preferred wireless network. -
FIG. 5 is a flow diagram that describes steps in a method for preparing for connection to a wireless network in accordance with one or more implementations. The method, for instance, describes an example implementation ofstep 306 described above with reference toFIG. 3 . In at least some implementations, the method is performed by theclient device 102, such as by theconnectivity module 110. - Step 500 identifies a wireless network based on geographic position information. For instance, the
connectivity module 110 searches thenetwork DB 112 with the geographic position information to identify a wireless network that is capable of providing wireless connectivity in a geographic region identified by the geographic position information. Alternatively or additionally, theconnectivity module 110 queries thenetwork information service 122 with the geographic position information and requests information for one or more wireless networks capable of providing wireless connectivity in a geographic region identified by the geographic position information. - In at least some implementations, the wireless network is identified as a wireless network that is currently in-range of the
client device 102. For instance, the geographic position information corresponds to a current location of theclient device 102. In another implementation, the wireless network is identified as a wireless network that will be in-range of theclient device 102 at a future time. As an example, consider that theclient device 102 is in motion, such as with a user that is traveling. Accordingly, the geographic information may include speed and trajectory information for theclient device 102 which can be used to identify one or more wireless networks that are predicted to be in range at a future time. The future time may be measured in various units, such as seconds, minutes, and so forth. - Step 502 prepares to connect to the wireless network. The
connectivity module 110, for instance, loads connectivity information for the wireless network from a network profile for the wireless network located in thenetwork DB 112. Alternatively or additionally, theconnectivity module 110 retrieves connectivity information from thenetwork information service 122. Generally, the connectivity information includes information to enable a wireless connection with the wireless network to be established. Examples of connectivity information are detailed above, and generally include a network ID, authentication information, and so forth. - According to various implementations, the
connectivity module 110 provides the connectivity information to a functionality responsible for negotiating a connection to the wireless network, such as thewireless module 106, theoperating system 104, and so forth. - Step 504 causes a connection to the wireless network to be established. For example, the
connectivity module 110 signals thewireless module 106 that theclient device 102 is in-range of the wireless network, and thus thewireless module 106 is to scan for the wireless network. Further, theconnectivity module 110 notifies thewireless module 106 to utilize the connectivity information to connect to the wireless network. - Alternatively or additionally, the
connectivity module 110 may notify thewireless module 106 that the client device will be in-range of the wireless network at a future time, such as in seconds, minutes, at a particular clock time, and so forth. Thus, thewireless module 106 may schedule a scan for the wireless network to be performed at the future time and utilizing the connectivity information. - Thus, implementations discussed herein enable preparations for connectivity to a wireless network to occur in advance, such as before the wireless network is detected and/or before the wireless network is in-range. Accordingly, when the wireless network is detected, the
client device 102 is already prepared to connect to the network, thus reducing connection time and resource usage during the connection process. -
FIG. 6 is a flow diagram that describes steps in a method for selecting a wireless network in accordance with one or more implementations. The method, for instance, describes an example extension of the methods described above with reference toFIGS. 3-5 . For example, the method describes an implementation ofstep 406 ofFIG. 4 and/or step 500 ofFIG. 5 . In at least some implementations, the method is performed by theclient device 102, such as by theconnectivity module 110. - Step 600 ascertains that multiple wireless networks are identified as being available at a particular location. The
connectivity module 110, for instance, searches thenetwork DB 112 and/or queries thenetwork information service 122 with geographical position information, and ascertains that multiple wireless networks are available at a location identified by the geographical position information. - Step 602 selects a network of the multiple wireless networks based on the network being a preferred network. Thus, a particular wireless network may be selected from the multiple wireless networks based on network preference, e.g., a preferred wireless network is selected over a non-preferred wireless network. Example factors considered in determining whether a wireless network is preferred are discussed above with reference to the network table 200.
-
FIG. 7 is a flow diagram that describes steps in a method for deleting stale network information in accordance with one or more implementations. The method, for instance, describes an example extension of the methods described above with reference toFIGS. 3-6 . In at least some implementations, the method is performed by theclient device 102, such as by theconnectivity module 110. - Step 700 ascertains that network information on a device is for one or more networks that are not available at a current location of the device. For instance, the
connectivity module 110 ascertains that network information is stored on theclient device 102 for one or more wireless networks that are not available at a current geographic location of theclient device 102. The network information, for instance, corresponds to wireless networks that were available at one or more previous (e.g., historic) locations of theclient device 102. Thus, the network information may be considered “stale” in that it is not relevant to a current geographic location of theclient device 102. - Step 702 deletes the network information from the device. The
connectivity module 110, for instance, causes the stale network information to be deleted from thenetwork DB 112. Accordingly, data storage space of theclient device 102 is conserved by freeing storage space occupied by stale network information. -
FIG. 8 is a flow diagram that describes steps in a method for causing a wireless radio to transition to an inactive state in accordance with one or more implementations. The method, for instance, describes an example extension of the methods described above with reference toFIGS. 3-7 . In at least some implementations, the method is performed by theclient device 102, such as by theconnectivity module 110. - Step 800 receives further geographic position information. The
connectivity module 110, for instance, retrieves further geographic position information that is different than previously-received geographic position information. According to various implementations, the geographic position information indicates that theclient device 102 has moved from a previous geographic location to a different geographic location. - Step 802 ascertains that a suitable wireless network is not available at a location identified by the further geographic position information. For example, the
connectivity module 110 searches thenetwork DB 112 and/or queries thenetwork information service 122 with the further geographic position information, and ascertains that a suitable wireless network is not available. In at least some implementations, this indicates that a wireless network is not available at the location. - Alternatively, this indicates that a wireless network is available, but that the wireless network does not meet one or more connectivity criteria for identifying the wireless network as being suitable for connectivity. Examples of such connectivity criteria include minimum network security procedures, minimum signal strength and/or signal quality, a maximum connectivity cost (e.g., a price for network connectivity), and so forth. Thus, a wireless network may be available, but may be determined to be unsuitable due to failure of the wireless network to meet one or more connectivity criteria.
- Step 804 causes a wireless radio to transition from an active state to an inactive state. The
connectivity module 110, for instance, causes one or more of thewireless radios 116 to transition to an inactive state responsive to ascertaining that a suitable wireless network is not available. Thus, battery power is conserved by inactivating a wireless radio when suitable wireless networks are not available. Otherwise, a wireless radio may continually scan for wireless networks, which reduces battery life of a device. - According to various implementations, the procedure may return to step 302 of
FIG. 3 responsive to receiving yet additional geographic position information. Should a suitable wireless network be identified based on the additional geographic position information, actions may be performed to establish connectivity to the suitable wireless network, such as activating a wireless radio as well as other actions detailed above. - Thus, techniques discussed herein provide multiple performance optimizations for wireless enabled devices. For instance, a functionality configured to manage wireless connectivity (e.g., the connectivity module 110) is maintained in an inactive state until geographic position information is available, thus conserving power and processing resources that would be used to maintain the functionality in an active state. As another example, a scan for an available wireless network is scheduled based on knowledge of available wireless networks at a particular geographic location, thus preventing open scanning in locations where suitable wireless networks are not present. As yet another example, a device's wireless radio may be kept in an inactive state until the device is at a geographic location known to have one or more suitable wireless networks.
- Having discussed some example procedures, consider now a discussion of an example system and device in accordance with one or more embodiments.
- Example System and Device
-
FIG. 9 illustrates an example system generally at 900 that includes anexample computing device 902 that is representative of one or more computing systems and/or devices that may implement various techniques described herein. For example, theclient device 102 discussed above with reference toFIG. 1 can be embodied as thecomputing device 902. Thecomputing device 902 may be, for example, a server of a service provider, a device associated with the client (e.g., a client device), an on-chip system, and/or any other suitable computing device or computing system. - The
example computing device 902 as illustrated includes aprocessing system 904, one or more computer-readable media 906, and one or more I/O Interfaces 908 that are communicatively coupled, one to another. Although not shown, thecomputing device 902 may further include a system bus or other data and command transfer system that couples the various components, one to another. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures. A variety of other examples are also contemplated, such as control and data lines. - The
processing system 904 is representative of functionality to perform one or more operations using hardware. Accordingly, theprocessing system 904 is illustrated as includinghardware element 910 that may be configured as processors, functional blocks, and so forth. This may include implementation in hardware as an application specific integrated circuit or other logic device formed using one or more semiconductors. The hardware elements 190 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, processors may be comprised of semiconductor(s) and/or transistors (e.g., electronic integrated circuits (ICs)). In such a context, processor-executable instructions may be electronically-executable instructions. - The computer-readable media 906 is illustrated as including memory/storage 912. The memory/storage 912 represents memory/storage capacity associated with one or more computer-readable media. The memory/storage 912 may include volatile media (such as random access memory (RAM)) and/or nonvolatile media (such as read only memory (ROM), Flash memory, optical disks, magnetic disks, and so forth). The memory/storage 912 may include fixed media (e.g., RAM, ROM, a fixed hard drive, and so on) as well as removable media (e.g., Flash memory, a removable hard drive, an optical disc, and so forth). The computer-readable media 906 may be configured in a variety of other ways as further described below.
- Input/output interface(s) 908 are representative of functionality to allow a user to enter commands and information to
computing device 902, and also allow information to be presented to the user and/or other components or devices using various input/output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone (e.g., for implementing voice and/or spoken input), a scanner, touch functionality (e.g., capacitive or other sensors that are configured to detect physical touch), a camera (e.g., which may employ visible or non-visible wavelengths such as infrared frequencies to detect movement that does not involve touch as gestures), and so forth. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, tactile-response device, and so forth. Thus, thecomputing device 902 may be configured in a variety of ways as further described below to support user interaction. - Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, and so forth that perform particular tasks or implement particular abstract data types. The terms “module,” “functionality,” and “component” as used herein generally represent software, firmware, hardware, or a combination thereof. The features of the techniques described herein are platform-independent, meaning that the techniques may be implemented on a variety of commercial computing platforms having a variety of processors.
- An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. The computer-readable media may include a variety of media that may be accessed by the
computing device 902. By way of example, and not limitation, computer-readable media may include “computer-readable storage media” and “computer-readable signal media.” - “Computer-readable storage media” may refer to media and/or devices that enable persistent storage of information in contrast to mere signal transmission, carrier waves, or signals per se. Computer-readable storage media do not include signals per se. The computer-readable storage media includes hardware such as volatile and non-volatile, removable and non-removable media and/or storage devices implemented in a method or technology suitable for storage of information such as computer readable instructions, data structures, program modules, logic elements/circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, hard disks, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or other storage device, tangible media, or article of manufacture suitable to store the desired information and which may be accessed by a computer.
- “Computer-readable signal media” may refer to a signal-bearing medium that is configured to transmit instructions to the hardware of the
computing device 902, such as via a network. Signal media typically may embody computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as carrier waves, data signals, or other transport mechanism. Signal media also include any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media. - As previously described,
hardware elements 910 and computer-readable media 906 are representative of instructions, modules, programmable device logic and/or fixed device logic implemented in a hardware form that may be employed in some embodiments to implement at least some aspects of the techniques described herein. Hardware elements may include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon or other hardware devices. In this context, a hardware element may operate as a processing device that performs program tasks defined by instructions, modules, and/or logic embodied by the hardware element as well as a hardware device utilized to store instructions for execution, e.g., the computer-readable storage media described previously. - Combinations of the foregoing may also be employed to implement various techniques and modules described herein. Accordingly, software, hardware, or program modules and other program modules may be implemented as one or more instructions and/or logic embodied on some form of computer-readable storage media and/or by one or
more hardware elements 910. Thecomputing device 902 may be configured to implement particular instructions and/or functions corresponding to the software and/or hardware modules. Accordingly, implementation of modules as a module that is executable by thecomputing device 902 as software may be achieved at least partially in hardware, e.g., through use of computer-readable storage media and/orhardware elements 910 of the processing system. The instructions and/or functions may be executable/operable by one or more articles of manufacture (for example, one ormore computing devices 902 and/or processing systems 904) to implement techniques, modules, and examples described herein. - As further illustrated in
FIG. 9 , theexample system 900 enables ubiquitous environments for a seamless user experience when running applications on a personal computer (PC), a television device, and/or a mobile device. Services and applications run substantially similarly in all three environments for a common user experience when transitioning from one device to the next while utilizing an application, playing a video game, watching a video, and so on. - In the
example system 900, multiple devices are interconnected through a central computing device. The central computing device may be local to the multiple devices or may be located remotely from the multiple devices. In one embodiment, the central computing device may be a cloud of one or more server computers that are connected to the multiple devices through a network, the Internet, or other data communication link. - In one embodiment, this interconnection architecture enables functionality to be delivered across multiple devices to provide a common and seamless experience to a user of the multiple devices. Each of the multiple devices may have different physical requirements and capabilities, and the central computing device uses a platform to enable the delivery of an experience to the device that is both tailored to the device and yet common to all devices. In one embodiment, a class of target devices is created and experiences are tailored to the generic class of devices. A class of devices may be defined by physical features, types of usage, or other common characteristics of the devices.
- In various implementations, the
computing device 902 may assume a variety of different configurations, such as forcomputer 914, mobile 916, andtelevision 918 uses. Each of these configurations includes devices that may have generally different constructs and capabilities, and thus thecomputing device 902 may be configured according to one or more of the different device classes. For instance, thecomputing device 902 may be implemented as thecomputer 914 class of a device that includes a personal computer, desktop computer, a multi-screen computer, laptop computer, netbook, and so on. - The
computing device 902 may also be implemented as the mobile 916 class of device that includes mobile devices, such as a mobile phone, a wearable device, portable music player, portable gaming device, a tablet computer, a multi-screen computer, and so on. Thecomputing device 902 may also be implemented as thetelevision 918 class of device that includes devices having or connected to generally larger screens in casual viewing environments. These devices include televisions, set-top boxes, gaming consoles, and so on. - The techniques described herein may be supported by these various configurations of the
computing device 902 and are not limited to the specific examples of the techniques described herein. For example, functionalities discussed with reference to theclient device 102 and/or thenetwork information service 122 may be implemented all or in part through use of a distributed system, such as over a “cloud” 920 via aplatform 922 as described below. - The
cloud 920 includes and/or is representative of aplatform 922 forresources 924. Theplatform 922 abstracts underlying functionality of hardware (e.g., servers) and software resources of thecloud 920. Theresources 924 may include applications and/or data that can be utilized while computer processing is executed on servers that are remote from thecomputing device 902.Resources 924 can also include services provided over the Internet and/or through a subscriber network, such as a cellular or Wi-Fi™ network. - The
platform 922 may abstract resources and functions to connect thecomputing device 902 with other computing devices. Theplatform 922 may also serve to abstract scaling of resources to provide a corresponding level of scale to encountered demand for theresources 924 that are implemented via theplatform 922. Accordingly, in an interconnected device embodiment, implementation of functionality described herein may be distributed throughout thesystem 900. For example, the functionality may be implemented in part on thecomputing device 902 as well as via theplatform 922 that abstracts the functionality of thecloud 920. - Discussed herein are a number of methods that may be implemented to perform techniques discussed herein. Aspects of the methods may be implemented in hardware, firmware, or software, or a combination thereof. The methods are shown as a set of blocks that specify operations performed by one or more devices and are not necessarily limited to the orders shown for performing the operations by the respective blocks. Further, an operation shown with respect to a particular method may be combined and/or interchanged with an operation of a different method in accordance with one or more implementations. Aspects of the methods can be implemented via interaction between various entities discussed above with reference to the
environment 100. - Implementations discussed herein include:
- A system comprising: one or more processors; and one or more computer-readable storage media storing computer-executable instructions that are executable by the one or more processors to perform operations including: receiving an indication that geographic position information is available on a device; retrieving the geographic position information from a location that is local to the device; and performing one or more actions in response to retrieving the geographic position information including: selecting a wireless network that is available at a location identified by the geographic position information; and scheduling a network scan to detect the wireless network.
- A system as described in example 1, wherein the indication that geographic position information is available comprises a wake event for a functionality that performs the operations.
- A system as described in one or more of examples 1 or 2, wherein the indication that geographic position information is available is independent of a query for the geographic position information.
- A system as described in one or more of examples 1-3, wherein the geographic position information is retrieved by a first functionality, and where the indication that geographic position information is available is received by a second functionality and independent of a query by the second functionality for the geographic position information.
- A system as described in one or more of examples 1-4, wherein the system comprises a mobile device, and wherein the indication that geographic position information is available is received by a functionality of the mobile device from an operating system of the mobile device, and independent of a query by the functionality for the geographic position information.
- A system as described in one or more of examples 1-5, wherein said selecting comprises using the geographic position information to query a remote service, and receiving identification information for the wireless network from the remote service.
- A system as described in one or more of examples 1-6, wherein said selecting comprises using the geographic position information to locate the wireless network in a database that correlates wireless networks to respective geographic locations, and wherein the operations further include deleting from the database information for one or more wireless networks that are not identified as being available at the location identified by the geographic position information.
- A system as described in one or more of examples 1-7, wherein said selecting comprises identifying multiple wireless networks that are available at the location, and wherein the wireless network is selected based on the wireless network being a preferred network.
- A system as described in one or more of examples 1-8, wherein said scheduling the network scan comprises scheduling the network scan to occur at a future time.
- A system as described in one or more of examples 1-9, wherein said scheduling the network scan comprises causing a wireless radio of the device to transition from an inactive state to an active state, and to scan for the selected wireless network.
- A system as described in one or more of examples 1-10, wherein said scheduling the network scan occurs while the network is not currently detected by the device.
- A system as described in one or more of examples 1-11, wherein the operations further include retrieving authentication information for the wireless network to be used to connect to the wireless network.
- A system as described in one or more of examples 1-12, wherein the operations further include causing connectivity information for the wireless network to be loaded prior to the wireless network being detected.
- A system as described in one or more of examples 1-13, wherein the operations further include, prior to said receiving an indication that geographic position information is available on a device, registering to receive the geographical position information from a functionality of the device.
- A computer-implemented method comprising: receiving a wake event indicating that geographic position information is available on a device; retrieving the geographic position information in response to the wake event; performing one or more actions in response to retrieving the geographic position information, including: selecting a wireless network that is available at a location identified by the geographic position information; and causing a wireless radio of the device to transition from an inactive state to an active state to scan for the wireless network.
- A computer-implemented method as described in example 15, wherein the wake event is received by a functionality while the functionality is in an inactive state, and wherein the method further comprises, prior to receiving the wake event, registering the functionality to receive the wake event in response to the geographic position information being available locally on the device.
- A computer-implemented method as described in one or more of examples 15 or 16, wherein said causing comprises scheduling a network scan to be performed to scan for the wireless network via the wireless radio.
- A computer-implemented method as described in one or more of examples 15-17, further comprising: receiving further geographic position information; ascertaining that a suitable wireless network is not available at a location identified by the further geographic position information; and causing the wireless radio to transition from the active state to the inactive state responsive to said ascertaining.
- One or more computer-readable storage media storing instructions that are executable by a computing device to perform operations comprising: retrieving geographic position information that is available locally on a device and independent of a query for the geographic position information; and performing an action in in response to retrieving the geographic position information, including at least one of: selecting a wireless network that is available at a location identified by the geographic position information; scheduling a network scan to detect the wireless network; or causing a wireless radio to transition from an inactive state to an active state to scan for the wireless network.
- One or more computer-readable storage media as described in example 19, wherein the operations further comprise causing the wireless radio to remain in the inactive state until the device is determined to be at the location identified by the geographic position information.
- Conclusion
- Techniques for geographic information for wireless networks are described. Although embodiments are described in language specific to structural features and/or methodological acts, it is to be understood that the embodiments defined in the appended claims are not necessarily limited to the specific features or acts described. Rather, the specific features and acts are disclosed as example forms of implementing the claimed embodiments.
Claims (20)
1. A system comprising:
one or more processors; and
one or more computer-readable storage media storing computer-executable instructions that are executable by the one or more processors to perform operations including:
activating, based on receiving an indication that geographic position information corresponding to an identified location of the system is available at a local location within the system, a connectivity manager from an inactive state and initiating operations by the connectivity manager including:
retrieving the geographic position information from the local location within the system; and
performing one or more actions in response to retrieving the geographic position information and while a wireless radio of the system is in an inactive state, said one or more actions including:
selecting a wireless network corresponding to the identified location, said selecting occurring while the wireless network is not currently detected by the system; and
initiating a network scan to detect the wireless network based on the retrieved geographic position information, said initiating occurring while the wireless network is not currently detected by the system.
2. The system as described in claim 1 , wherein the geographic position information is retrieved by a first functionality different than the connectivity manager.
3. The system as described in claim 1 , wherein the system comprises a mobile device, and wherein the indication that the geographic position information is available is received from an operating system of the mobile device.
4. The system as described in claim 1 , wherein said selecting comprises using the geographic position information to query a remote service, and receiving identification information for the wireless network from the remote service.
5. The system as described in claim 1 , wherein said selecting comprises using the geographic position information to locate the wireless network in a database that correlates wireless networks to respective geographic locations, and wherein the operations further include deleting from the database information for one or more wireless networks that are not identified as being available at the identified location.
6. The system as described in claim 1 , wherein said selecting comprises identifying multiple wireless networks that are available at the identified location, and wherein the wireless network is selected based on the wireless network being a preferred network.
7. The system as described in claim 1 , wherein said initiating the network scan comprises scheduling the network scan to occur at a future time.
8. The system as described in claim 1 , wherein said initiating the network scan comprises causing the wireless radio to transition from the inactive state to an active state, and to scan for the wireless network.
9. The system as described in claim 1 , wherein the operations by the connectivity manager further include retrieving authentication information to be used to connect to the wireless network.
10. The system as described in claim 1 , wherein the operations further include causing connectivity information for the wireless network to be loaded prior to the wireless network being detected.
11. The system as described in claim 1 , wherein the operations further include, prior to said receiving the indication that the geographic position information is available on the system, registering to receive the geographical position information from a functionality of the system.
12. The system as described in claim 1 , wherein said initiating the network scan comprises causing the wireless radio to transition from the inactive state to an active state, and to scan for the wireless network, and wherein the operations further include:
receiving further geographic position information;
ascertaining that a suitable wireless network is not available at a location identified by the further geographic position information; and
causing the wireless radio to transition from the active state to the inactive state based on said ascertaining.
13. A computer-implemented method comprising:
activating, based on receiving an indication that geographic position information is available at a local location within a computing device, a connectivity manager of the computing device and initiating operations by the connectivity manager including:
retrieving the geographic position information corresponding to an identified location of the computing device from the local location within the computing device; and
performing one or more actions in response to retrieving the geographic position information and while a wireless radio of the computing device is in an inactive state, said one or more actions including:
selecting a wireless network corresponding to the identified location, said selecting occurring while the wireless network is not currently detected by the computing device; and
initiating a network scan to detect the wireless network based on the retrieved geographic position information, said initiating occurring while the wireless network is not currently detected by the computing device.
14. The computer-implemented method as described in claim 13 , wherein the computing device comprises a mobile device, and wherein the indication that the geographic position information is available is received from an operating system of the mobile device.
15. The computer-implemented method as described in claim 13 , wherein said selecting comprises using the geographic position information to query a remote service, and receiving identification information for the wireless network from the remote service.
16. The computer-implemented method as described in claim 13 , wherein said selecting comprises using the geographic position information to locate the wireless network in a database that correlates wireless networks to respective geographic locations, and wherein the operations further include deleting from the database information for one or more wireless networks that are not identified as being available at the identified location.
17. One or more computer-readable storage media storing a computer program comprising computer executable instructions, which when executed by a computing device, cause the computing device to perform operations comprising:
activating, based on receiving an indication that geographic position information corresponding to an identified location of the computing device is available at a local location within the computing device, a connectivity manager of the computing device and initiating operations by the connectivity manager including:
retrieving the geographic position information from the local location within the computing device; and
performing one or more actions in response to retrieving the geographic position information and while a wireless radio of the computing device is in an inactive state, said one or more actions including:
selecting a wireless network corresponding to the identified location, said selecting occurring while the wireless network is not currently detected by the computing device; and
initiating a network scan to detect the wireless network based on the retrieved geographic position information, said initiating occurring while the wireless network is not currently detected by the computing device.
18. The one or more computer-readable storage media as described in claim 17 , wherein the geographic position information is retrieved by a first functionality different than the connectivity manager.
19. The one or more computer-readable storage media as described in claim 17 , wherein the computing device comprises a mobile device, and wherein the indication that the geographic position information is available is received from an operating system of the mobile device.
20. The one or more computer-readable storage media as described in claim 17 , wherein said selecting comprises using the geographic position information to query a remote service, and receiving identification information for the wireless network from the remote service.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/995,583 US20180279071A1 (en) | 2015-01-06 | 2018-06-01 | Geographic Information for Wireless Networks |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/590,515 US10009715B2 (en) | 2015-01-06 | 2015-01-06 | Geographic information for wireless networks |
US15/995,583 US20180279071A1 (en) | 2015-01-06 | 2018-06-01 | Geographic Information for Wireless Networks |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/590,515 Continuation US10009715B2 (en) | 2015-01-06 | 2015-01-06 | Geographic information for wireless networks |
Publications (1)
Publication Number | Publication Date |
---|---|
US20180279071A1 true US20180279071A1 (en) | 2018-09-27 |
Family
ID=55178362
Family Applications (5)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/590,515 Active US10009715B2 (en) | 2015-01-06 | 2015-01-06 | Geographic information for wireless networks |
US15/995,583 Abandoned US20180279071A1 (en) | 2015-01-06 | 2018-06-01 | Geographic Information for Wireless Networks |
US15/995,665 Active US10848902B2 (en) | 2015-01-06 | 2018-06-01 | Geographic information for wireless networks |
US15/996,095 Abandoned US20180279074A1 (en) | 2015-01-06 | 2018-06-01 | Geographic Information for Wireless Networks |
US15/995,910 Abandoned US20180279073A1 (en) | 2015-01-06 | 2018-06-01 | Geographic Information for Wireless Networks |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/590,515 Active US10009715B2 (en) | 2015-01-06 | 2015-01-06 | Geographic information for wireless networks |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/995,665 Active US10848902B2 (en) | 2015-01-06 | 2018-06-01 | Geographic information for wireless networks |
US15/996,095 Abandoned US20180279074A1 (en) | 2015-01-06 | 2018-06-01 | Geographic Information for Wireless Networks |
US15/995,910 Abandoned US20180279073A1 (en) | 2015-01-06 | 2018-06-01 | Geographic Information for Wireless Networks |
Country Status (5)
Country | Link |
---|---|
US (5) | US10009715B2 (en) |
EP (1) | EP3228103B1 (en) |
CN (1) | CN107113572B (en) |
TW (1) | TW201637465A (en) |
WO (1) | WO2016111949A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200288387A1 (en) * | 2019-03-04 | 2020-09-10 | Comcast Cable Communications, Llc | Wi-fi enhanced cellular scanning |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2874350B1 (en) * | 2013-11-13 | 2018-08-08 | Deutsche Telekom AG | Dynamic allocation and virtualisation of network resources in the access network and in customer networks |
TWI561039B (en) * | 2015-05-29 | 2016-12-01 | Fih Hong Kong Ltd | Network connection controlling system and smart terminal employing same |
JP6922906B2 (en) | 2015-11-05 | 2021-08-18 | ソニーグループ株式会社 | Terminal devices, base stations, systems, and methods. |
US9936331B2 (en) | 2016-06-03 | 2018-04-03 | Apkudo, Llc | System and method for facilitating carrier-specific configuration of a user device based on pre-stored information for multiple carriers |
AU2017101327A4 (en) * | 2017-05-05 | 2017-11-02 | RU Stranded Pty Ltd | Frameworks and methodologies configured to enable generation of real-time response offers for delivery to client devices in response to query data via hybrid technology including rules-based process and bespoke generation process |
US10728875B2 (en) * | 2018-10-02 | 2020-07-28 | Google Llc | Scanning frequency selection for a wireless device |
US11240632B2 (en) | 2019-03-15 | 2022-02-01 | Comcast Cable Communications, Llc | Methods and systems for localized geolocation |
US20230309055A1 (en) * | 2022-03-24 | 2023-09-28 | Microsoft Technology Licensing, Llc | Head-mounted device communication adaptation using environment context |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950130A (en) * | 1997-03-18 | 1999-09-07 | Sbc Technology Resources, Inc. | Mobile station with intelligent roaming and over-the-air programming features |
US6829481B2 (en) | 2001-05-15 | 2004-12-07 | Novatel Wireless, Inc. | Systems and methods for intelligent inter-system handoff |
US10375641B2 (en) | 2003-05-05 | 2019-08-06 | Pluto Technologies, Inc. | Mobile device management system using network parameter resources |
US20050181734A1 (en) * | 2005-01-21 | 2005-08-18 | Knightsbridge Wireless Inc. | Automatic connection of a mobile device to a wireless network |
CN101180836A (en) * | 2005-03-23 | 2008-05-14 | 皇家飞利浦电子股份有限公司 | Wireless local area network scan based on location |
WO2006100653A2 (en) | 2005-03-23 | 2006-09-28 | Koninklijke Philips Electronics N.V. | Wireless local area network scan based on location |
US7894809B2 (en) | 2005-04-25 | 2011-02-22 | Research In Motion Limited | Architecture optimized for application data sharing within a mobile communications device |
US8660573B2 (en) | 2005-07-19 | 2014-02-25 | Telecommunications Systems, Inc. | Location service requests throttling |
US20090017910A1 (en) * | 2007-06-22 | 2009-01-15 | Broadcom Corporation | Position and motion tracking of an object |
US8238980B1 (en) | 2008-02-08 | 2012-08-07 | Nextel Communications, Inc. | Efficient utilization of multiple radio access technologies in a communications device |
US8598984B2 (en) * | 2008-05-09 | 2013-12-03 | Marvell World Trade Ltd. | Systems and methods for providing location-aware Wi-Fi access for a portable device |
US8948738B2 (en) * | 2008-12-17 | 2015-02-03 | International Business Machines Corporation | Generating alerts based on predicted wireless connection losses |
US8463280B1 (en) | 2009-02-25 | 2013-06-11 | Kyutae Lim | Heterogeneous mobile networking |
US8699991B2 (en) | 2010-01-20 | 2014-04-15 | Nokia Corporation | Method and apparatus for customizing map presentations based on mode of transport |
US9042918B2 (en) * | 2011-10-03 | 2015-05-26 | Telefonaktiebolaget L M Ericsson (Publ) | Using fingerprints in proximity detection of wireless devices |
US8509860B2 (en) | 2011-10-07 | 2013-08-13 | Ardalan Heshmati | Method and apparatus for power efficient user location profile determination in mobile devices |
US8897803B2 (en) * | 2012-01-13 | 2014-11-25 | Apple Inc. | Finding wireless network access points |
US9128180B2 (en) | 2012-03-16 | 2015-09-08 | Microsoft Technology Licensing, Llc | Efficient power usage in position tracking operations |
US8738031B2 (en) | 2012-05-25 | 2014-05-27 | Apple Inc. | Operating geographic location systems |
US9319968B2 (en) | 2012-09-19 | 2016-04-19 | Blackberry Limited | System and method for controlling network scan parameters for a network connection |
US8989096B2 (en) | 2012-10-15 | 2015-03-24 | Apple Inc. | Application-aware radio power saving |
US9661601B2 (en) * | 2012-12-13 | 2017-05-23 | Qualcomm Incorporated | Crowdsourcing information in a communication network using small cells |
WO2014100943A1 (en) * | 2012-12-24 | 2014-07-03 | 华为终端有限公司 | Method and apparatus for controlling wireless fidelity device in terminal, and terminal |
-
2015
- 2015-01-06 US US14/590,515 patent/US10009715B2/en active Active
-
2016
- 2016-01-05 TW TW105100176A patent/TW201637465A/en unknown
- 2016-01-05 EP EP16701082.6A patent/EP3228103B1/en active Active
- 2016-01-05 CN CN201680005083.0A patent/CN107113572B/en active Active
- 2016-01-05 WO PCT/US2016/012097 patent/WO2016111949A1/en active Application Filing
-
2018
- 2018-06-01 US US15/995,583 patent/US20180279071A1/en not_active Abandoned
- 2018-06-01 US US15/995,665 patent/US10848902B2/en active Active
- 2018-06-01 US US15/996,095 patent/US20180279074A1/en not_active Abandoned
- 2018-06-01 US US15/995,910 patent/US20180279073A1/en not_active Abandoned
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200288387A1 (en) * | 2019-03-04 | 2020-09-10 | Comcast Cable Communications, Llc | Wi-fi enhanced cellular scanning |
US11985586B2 (en) * | 2019-03-04 | 2024-05-14 | Comcast Cable Communications, Llc | Enhanced cellular scanning |
Also Published As
Publication number | Publication date |
---|---|
EP3228103B1 (en) | 2020-02-19 |
US10009715B2 (en) | 2018-06-26 |
CN107113572B (en) | 2020-06-16 |
TW201637465A (en) | 2016-10-16 |
EP3228103A1 (en) | 2017-10-11 |
US10848902B2 (en) | 2020-11-24 |
US20180279073A1 (en) | 2018-09-27 |
CN107113572A (en) | 2017-08-29 |
US20160198292A1 (en) | 2016-07-07 |
US20180279074A1 (en) | 2018-09-27 |
WO2016111949A1 (en) | 2016-07-14 |
US20180279072A1 (en) | 2018-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10848902B2 (en) | Geographic information for wireless networks | |
US9749794B2 (en) | Scalability and reliability of hardware geo-fencing with failover support | |
US9820231B2 (en) | Coalescing geo-fence events | |
US10255328B2 (en) | Location source ranking for determining device location | |
US11057929B2 (en) | Priority access to a priority access channel | |
CN107258092B (en) | Cloud support for discovery and data transfer of mobile client devices | |
AU2014332140A1 (en) | Location source ranking for determining device location | |
US9769595B2 (en) | Method and apparatus for providing mobile services outside of cellular coverage | |
US20160050529A1 (en) | Location Information from a Mobile Device | |
US20170054818A1 (en) | Preferred Network Information | |
US20140126468A1 (en) | Determination of Packet Retransmission using Time Threshold | |
US9736250B2 (en) | Non-network controller communication | |
US9924371B2 (en) | Wireless connectivity using white spaces | |
US10298673B2 (en) | Roaming to share a communication channel | |
US11949748B1 (en) | Method and system for managing a blocking call based on a timeout |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SPONZA, MATEJA;MAHASSEL, SHADI;KIRBY, IMELDA J.;SIGNING DATES FROM 20141222 TO 20150202;REEL/FRAME:046027/0397 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |