# US 10,321,377 B1 · Profile switching powered by location

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,321,377 B1
- Document ID: US10321377B1
- Status: Granted
- Kind: B1
- Application number: 15/491,481
- Filed: 2017-04-19
- Granted: 2019-06-11
- Earliest claimed: 2015-04-17
- Assignees: Google Inc.
- Applicants: Google LLC
- Inventors: Weihua Tan; Shishir Kumar Agrawal
- Web page: https://patentgrep.com/patent/US10321377B1

## CPC

- H04B 1/3816: Mechanical arrangements for accommodating identification devices, e.g. cards or chips; with connectors for programming identification devices
- H04W 4/02: Services making use of location information
- H04B 17/318: Received signal strength
- H04W 4/029: Location-based management or tracking services
- H04W 48/16: Discovering, processing access restriction or access information
- H04W 48/18: Selecting a network or a communication service
- H04W 8/183: {Processing at user equipment or user record carrier}
- H04W 8/26: Network addressing or numbering for mobility support
- H04B: TRANSMISSION
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

A device and method for profile switching based on location and wireless network quality are provided. A client device determines relevant locations for a user of the client device based on a variety of factors. After determining that a location is of particular relevance to the user, the client device will proceed to collect wireless network parameters for each available wireless network at each of the relevant locations for the user. The client device then determines a quality score for each wireless network at each relevant location and proceeds to utilize the quality score to make wireless network profile switching decisions as the client device travels between the relevant locations.

## Claims

### Claim 1

A server configured to choose a wireless network for a client device, the server comprising:
a location determination module configured to receive a location of the client device and to determine whether the location is within an area defining a relevant location for the client device, wherein determining whether the location is within the area defining the relevant location is based on a number of visits the client device made to the location and an amount of time the client device spent in the location; and
a wireless network selection module configured to:
receive wireless network parameters collected by the client device from each of a plurality of wireless networks available at the location of the client device when the location is within the area defining the relevant location;
determine a highest quality wireless network based on the received wireless network parameters; and
transmit an indication of the highest quality wireless network to the client device.

### Claim 2 (depends on 1)

The server of claim 1, further configured to receive the number of visits the client device made to the location and the amount of time the client device spent in the location, and to store the received number of visits the client device made to the location, the received amount of time the client device spent in the location, and the received wireless network parameters in a memory of the server.

### Claim 3 (depends on 2)

The server of claim 2, wherein the received wireless network parameters comprise a mobile network code (MNC), a mobile country code (MCC), a Radio Access Technology (RAT), or a received signal strength indicator (RSSI).

### Claim 4 (depends on 3)

The server of claim 3, wherein the wireless network selection module is further configured to:
determine a weighting factor for each of the plurality of wireless networks based on the received wireless network parameters for each of the plurality of wireless networks collected by the client device;
determine a RAT score for each of the plurality of wireless networks based on the received wireless network parameters for each of the plurality of wireless networks collected by the client device; and
determine a RSSI score for each of the plurality of wireless networks based on the received wireless network parameters for each of the plurality of wireless networks collected by the client device.

### Claim 5 (depends on 4)

The server of claim 4, wherein the highest quality wireless network is determined based on an overall score for each of the plurality of wireless networks, wherein the overall score for each of the plurality of wireless networks is determined by multiplying the weighting factor, the RAT score, and the RSSI score for each of the plurality of wireless networks.

### Claim 6 (depends on 2)

The server of claim 2, wherein the received wireless network parameters comprise a service set identification (SSID), a basic service set identification (BSSID), network packet latency, or network packet throughput.

### Claim 7 (depends on 1)

The server of claim 1, wherein the wireless network selection module is further configured to instruct the client device to connect to the highest quality wireless networking.

### Claim 8 (depends on 1)

The server of claim 1, wherein the area defining the relevant location includes a plurality of areas and the wireless network selection module is further configured to:
receive the wireless network parameters collected by the client device from each of the plurality of wireless networks available in each of the plurality of areas;
determine a best quality wireless network in each of the plurality of areas; and
transmit an indication of the best quality wireless network in each of the plurality of areas to the client device and instruct the client device to connect to the best quality wireless network in each of the plurality of areas as the client device moves around the plurality of areas.

### Claim 9 (depends on 1)

The server of claim 1, wherein determining whether the location is within the area defining the relevant location is based on the number of visits the client device made to the location exceeding a first threshold value, and the amount of time the client device spent in the location exceeding a second threshold value.

### Claim 10

A method in a server for choosing a wireless network for a client device, the method comprising:
receiving a current location of the client device;
determining whether the current location of the client device is within an area defining a relevant location of one or more relevant locations for the client device, wherein determining whether the current location of the client device is within the area defining the relevant location is based on a number of visits the client device made to the current location and an amount of time the client device spent in the current location;
receiving wireless network parameters collected by the client device from available wireless networks at the current location of the client device when the current location is within the area defining the relevant location;
determining a highest quality wireless network out of the available wireless networks; and
transmitting an indication of the highest quality wireless network to the client device.

### Claim 11 (depends on 10)

The method of claim 10, wherein determining the one or more relevant locations comprises:
receiving a number of times the client device visited a location;
receiving an amount of time the client device spent at the location for each visit made to the location; and
conditionally setting the location as one of the one or more relevant locations based on the number of times the client device visited an area defining the location and the amount of time the client device spent with the area defining the location.

### Claim 12 (depends on 11)

The method of claim 11, wherein the received wireless network parameters comprise a mobile network code (MNC), a mobile country code (MCC), a Radio Access Technology (RAT), or a received signal strength indicator (RSSI).

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
determining a weighting factor for each of the available wireless networks based on the received wireless network parameters for each of the available wireless networks collected by the client device;
determining a RAT score for each of the available wireless networks based on the received wireless network parameters for each of available wireless networks collected by the client device; and
determining a RSSI score for each of the available wireless networks based on the received wireless network parameters for each of the available wireless networks collected by the client device.

### Claim 14 (depends on 11)

The method of claim 11, wherein the received wireless network parameters comprise a service set identification (SSID), a basic service set identification (BSSID), network packet latency, or network packet throughput.

### Claim 15 (depends on 10)

The method of claim 10, further comprising storing the highest quality network as being a wireless network of choice for the client device when the client device is within the area defining the relevant location.

### Claim 16 (depends on 15)

The method of claim 15, wherein, after an expiration of a threshold amount of time, the method further comprises:
receiving additional wireless network parameters collected by the client device from the available wireless networks at the current location of the client device when the current location is within the area defining the relevant location;
determining a subsequent highest quality wireless network out of the available wireless networks based on the received additional wireless network parameters; and
transmitting an indication of the subsequent highest quality wireless network to the client device and instructing the client device to connect to the subsequent highest quality wireless network.

### Claim 17 (depends on 16)

The method of claim 16, further comprising storing the subsequent highest quality network as being the wireless network of choice for the client device when the client device is within the area defining the relevant location.

### Claim 18 (depends on 10)

The method of claim 10, wherein the area defining the relevant location includes a plurality of areas and the method further comprising:
receiving the wireless network parameters collected by the client device from the available wireless networks in each of the plurality of areas;
determining a best quality wireless network in each of the plurality of areas; and
transmitting an indication of the best quality wireless network in each of the plurality of areas to the client device and instruct the client device to connect to the best quality wireless network in each of the plurality of areas as the client device moves around the plurality of areas.

### Claim 19 (depends on 10)

The method of claim 10, further comprising instructing the client device to connect to the highest quality wireless networking.

### Claim 20 (depends on 19)

The method of claim 19, wherein the highest quality wireless network is determined based on an overall score for each of the available wireless networks, wherein the overall score for each of the available wireless networks is determined by multiplying the weighting factor, the RAT score, and the RSSI score for each of the available wireless networks.

### Claim 21 (depends on 10)

The method of claim 10, wherein determining whether the current location of the client device is within the area defining the relevant location is based on the number of visits the client device made to the current location exceeding a first threshold value, and the amount of time the client device spent in the current location exceeding a second threshold value.
