Connectivity-based satellite access control

The computing device manages satellite access by considering user input, signal strength, and geographic authorization to ensure legal and efficient satellite network connections, reducing illegal access and resource waste.

WO2026024707A1PCT designated stage Publication Date: 2026-01-29GOOGLE LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/US2025/038638
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-11-29
Filing Date
2025-07-22
Publication Date
2026-01-29

AI Technical Summary

Technical Problem

Existing computing devices face challenges in efficiently managing satellite access based on geographic location and network availability, leading to illegal connections, congestion, and excessive resource consumption.

Method used

A computing device determines whether to enable or disable scanning for non-terrestrial networks based on conditions such as user input, signal strength, and geographic location authorization, using an authorization module to ensure legal and efficient satellite access.

Benefits of technology

This approach enforces satellite access restrictions, reduces illegal connections and congestion, and optimizes resource usage by minimizing continuous location monitoring and scanning.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025038638_29012026_PF_FP_ABST
    Figure US2025038638_29012026_PF_FP_ABST
Patent Text Reader

Abstract

An example computing device determines whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions. Responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, the computing device determines whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized (i.e., legally permitted) for connecting to the one or more authorized and accessible non-terrestrial networks. Responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks, the computing device initiates scanning for the one or more authorized and accessible non-terrestrial networks and connects to at least one authorized and accessible non-terrestrial network.
Need to check novelty before this filing date? Find Prior Art

Description

CONNECTIVITY-BASED SATELLITE ACCESS CONTROLCROSS-REFERENCE TO RELATED APPLICATION

[0001] This application claims the benefit of US Provisional Patent Application No.63 / 674,035, filed July 22, 2024, and US Provisional Patent Application No. 63 / 726,417, filed November 29, 2024, both of which are incorporated by reference herein in their entirety.BACKGROUND

[0002] Computing devices such as so-called smartphones, tablets, and the like may include one or more various wireless radios, transceivers, and antennas for establishing wireless communications with separate communications networks, including telephony networks, internet protocol (IP) based networks (e.g., the public Internet), private networks, and nonterrestrial networks (e.g., non-terrestrial networks), via which to receive and transmit data. The various transceivers and antennas may be configured as built-in modules integrated into the computing device or may optionally be externally configured components connected with the computing device via, for example, an externally facing data communications bus built into the computing device and configured to communicate with external peripheral devices.SUMMARY

[0003] In general, techniques of this disclosure are directed to connectivity-based satellite access control for carrier-roaming architectures that can scan for and attach to non-terrestrial networks (e.g., satellite communications constellations). An example computing device may determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions, such as a user input indicating a request for connecting to a non-terrestrial network, a time duration in which the computing device does not detect a wireless communications network, and a time duration in which a wireless signal strength of the computing device is below a threshold value. Responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, the computing device may determine whether the computing device is permitted by law to connect to a particular non-terrestrial network based on a geographic location of the computing device. Responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to a non-terrestrial network, the computing device may initiate scanning for the one or more authorized and accessible nonterrestrial networks. The computing device may connect to at least one authorized andaccessible non-terrestrial network. In some examples, responsive to determining to disable scanning for one or more authorized and accessible non-terrestrial networks, the computing device may cease scanning for the one or more authorized and accessible non-terrestrial networks.

[0004] In one example, this disclosure describes a method that includes determining, by a computing device, whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions. The method further includes, responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determining, by the computing device, whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks. The method further includes, responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiating, by the computing device, a scan for the one or more authorized and accessible non-terrestrial networks, and connecting, by the computing device, to at least one authorized and accessible non-terrestrial network.

[0005] In another example, this disclosure describes a computing device that includes one or more processors and one or more storage devices that store instructions. The instructions, when executed by the one or more processors, may cause the one or more processors to determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions. The instructions may further cause the one or more processors to, responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible nonterrestrial networks. The instructions may further cause the one or more processors to, responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiate a scan for the one or more authorized and accessible nonterrestrial networks, and connect to at least one authorized and accessible non-terrestrial network.

[0006] In another example, this disclosure describes a non-transitory computer-readable storage medium encoded with instructions. The instructions, when executed by one or moreprocessors, may cause the one or more processors to determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions. The instructions may further cause the one or more processors to, responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether a computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks. The instructions may further cause the one or more processors to, responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiate a scan for the one or more authorized and accessible non-terrestrial networks, and connect to at least one authorized and accessible non-terrestrial network.

[0007] In another example, this disclosure describes a computer program product for enabling scanning for one or more authorized and accessible non-terrestrial networks. The computer program product comprises one or more instructions that, when executed by at least one processor, may cause the at least one processor to determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions. The one or more instructions may further cause the at least one processor to, responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether a computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks. The one or more instructions may further cause the at least one processor to, responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiate a scan for the one or more authorized and accessible non-terrestrial networks, and connect to at least one authorized and accessible non-terrestrial network.

[0008] In another example, this disclosure describes a method that includes determining, by a computing device, whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions. The method further includes, responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determining, by the computing device, whether the computing device is geographically located in a geographic location from the plurality of geographic locations associated with a user density less than a threshold. The method furtherincludes, responsive to determining that the computing device is geographically located in a geographic location associated with a user density less than a threshold: initiating, by the computing device, a scan for the one or more authorized and accessible non-terrestrial networks, and connecting, by the computing device, to at least one authorized and accessible non-terrestrial network.

[0009] The details of one or more examples of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description and drawings, and from the claims.BRIEF DESCRIPTION OF DRAWINGS

[0010] FIG. 1 illustrates an example computing device configured to use non-terrestrial networks, in accordance with one or more techniques of this disclosure.

[0011] FIG. 2 is a block diagram illustrating another example computing device configured to use non-terrestrial networks, in accordance with one or more techniques of this disclosure.

[0012] FIG. 3 illustrates another example computing device configured to use non-terrestrial networks, in accordance with one or more techniques of this disclosure.

[0013] FIG. 4 is a flow chart illustrating an example mode of operation for a computing device to determine to scan for and connect to non-terrestrial networks, in accordance with techniques of this disclosure.

[0014] FIG. 5 is a flow chart illustrating another example mode of operation for a computing device to determine to scan for and connect to non-terrestrial networks, in accordance with techniques of this disclosure.

[0015] Like reference characters denote like elements throughout the text and figures.DETAILED DESCRIPTION

[0016] FIG. 1 illustrates an example computing device configured to use non-terrestrial networks, in accordance with one or more techniques of this disclosure. In the example of FIG. 1, computing device 105 is configured to communicate using non-terrestrial -based cellular communication systems, such as non-terrestrial network(s) 183, which may be considered satellite communications constellation(s) and / or satellite communications network(s). As further shown in the example of FIG.1, computing device 105 may be configured to communicate using terrestrial based cellular communication systems, such as wireless communications network(s) 196. In some examples, each non-terrestrial network 183 includes one or more satellite(s) 195 which facilitate cellular communications bycomputing device 105. In some examples, each wireless communications network 196 includes one or more ground-based cellular communication towers to facilitate cellular communications by computing device 105. In some examples, wireless communications network 196 may be or include one or more of a WI-FI network and a cellular communications network. In the example of FIG. 1, computing device 105 may communicate via cellular communications with non-terrestrial network 183 and / or wireless communications network 196.

[0017] Computing device 105 may sometimes be referred herein to as a “mobile computing device,” a “mobile device,” a “mobile user device,” or a “user device.” Examples of computing device 105 may include, but are not limited to, user computing devices such as laptops, desktops, mobile computing devices (such as tablets, smartphones, wearable computing devices (e.g., “smart” or artificial intelligence glasses, smartwatches, smart rings or jewelry, smart clothing, smart headphones, virtual reality (VR) headsets, augmented reality (AR) headsets, health monitors, etc.)), a foldable computing device, a tablet computing device, an ambient computing device (including a so-called “smart display”), embedded computing devices (e.g., devices embedded within a vehicle, camera, image sensor, industrial machine, satellite, gaming console or controller, or home appliance such as a refrigerator, thermostat, energy meter, home energy manager, smart home assistant, etc.), other computing devices, or combinations thereof. Computing device 105 that implements aspects of the present disclosure may include a number of hardware components that enable the performance of the techniques described herein.

[0018] In the example of FIG. 1, computing device 105 includes wireless communications module 115 having cellular radio 116 via which to communicate with non-terrestrial network 183 and / or wireless communications network 196 using cellular communications. Cellular radio 116 is sometimes referred to as a cellular transceiver or a cellular transmitter / receiver. In the example of FIG. 1, computing device 105 includes one or more wireless communication modules, such as satellite communication module 110 and wireless communications module 115. In some examples, satellite communication module 110 has direct access to cellular radio 116 via a communications bus of computing device 105. For instance, satellite communication module 110 may indirectly access cellular radio 116 for use with cellular communications over satellite through an operating system of computing device 105. In other examples, satellite communication module 110 indirectly accesses cellular radio 116 for use with satellite communications through wireless communications module 115 of computing device 105.

[0019] As described herein, computing device 105 may determine whether to enable or disable scanning (e.g., via a modem of computing device 105) for one or more authorized and accessible non-terrestrial networks based on one or more conditions. In the example of FIG.1, non-terrestrial network(s) 183 may be considered “authorized” and “accessible” nonterrestrial network(s). As described in more detail below, a particular non-terrestrial network may be considered authorized if computing device 105 is permitted by law to connect to the particular non-terrestrial network based on a geographic location of computing device 105 (i.e., whether computing device 105 is located in a geographic location that legally permits computing device 105 to connect to the particular non-terrestrial network). A particular nonterrestrial network may be considered accessible if computing device 105 is located within an accessibility range of the particular non-terrestrial network.

[0020] In some examples, computing device 105 may determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks 183 based on one or more conditions, such as one or more of user input indicating a request for connecting to a non-terrestrial network 183, one or more of wireless communications networks 196 being outside of an accessibility range of computing device 105 for a predetermined amount of time, and a wireless signal strength of computing device 105 being below a threshold for a predetermined amount of time. In general, though, it should be noted that computing device 105 may continue to operate and perform the techniques described herein even when computing device 105 is out of service. In some examples, computing device 105 may determine to enable scanning for one or more authorized and accessible non-terrestrial networks 183 based on all of the one or more conditions being satisfied. As an example, computing device 105 may determine that cellular communications session 186 maintains a wireless signal strength below a threshold for a predetermined amount of time. Computing device 105 may also determine, based on wireless network scan 185, one or more of wireless communications networks 196 to be outside of an accessibility range of computing device 105 for a predetermined amount of time. In some examples, based on these two conditions being satisfied, computing device 105 may send a prompt to a user of computing device 105 asking the user to provide permission for computing device 105 to scan for one or more authorized and accessible non-terrestrial networks 183. Responsive to the user providing permission, computing device 105 may determine to enable scanning for the one or more authorized and accessible non-terrestrial networks 183. In other examples, computing device 105 may receive user input indicating a request for connecting to a non-terrestrial network, inwhich computing device 105 may then determine to enable scanning for the one or more authorized and accessible non-terrestrial networks 183.

[0021] Prior to initiating scanning for one or more authorized and accessible non-terrestrial networks 183, however, computing device 105 may determine whether computing device 105 is permitted by law (and in some examples, additionally or alternatively by terms of service) to connect to one or more non-terrestrial networks 183. In other words, while many nonterrestrial networks may be considered accessible to computing device 105, not all of the accessible non-terrestrial networks may be considered authorized, due to laws implemented by various governments or other requirements, for example terms of service. As such, responsive to determining to enable scanning for one or more authorized and accessible nonterrestrial networks 183, authorization module 112 of computing device 105 may further determine whether computing device 105 is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to one or more authorized and accessible non-terrestrial networks 183. Responsive to determining that computing device 105 is geographically located in a geographic location authorized for connecting to a non-terrestrial network 183, authorization module 112 may authorize computing device 105 (e.g., authorize a modem of computing device 105) to initiate scanning for one or more authorized and accessible non-terrestrial networks 183.

[0022] Computing device 105 may perform satellite scan 187 to determine whether one or more authorized and accessible non-terrestrial networks 183 are available for cellular communications. Computing device 105 may then connect with at least one authorized and accessible non-terrestrial network 183 to establish satellite communications session 180. As an example, when computing device 105 is no longer within an accessibility range of one or more wireless communications networks 196 for a predetermined amount of time, computing device 105 may lose connectivity with wireless communication networks 196. Even when outside of wireless communications network coverage, computing device 105 may be within communication range of non-terrestrial network 183 using cellular communications (such as 4G, LTE, 5G, etc.). When computing device 105 is able to connect with non-terrestrial network 183 to establish satellite communications session 180, computing device 105 may be provided with connectivity to send and receive messages, access a public internet, and so forth.

[0023] In some examples, computing device 105 may include one or more antennas and a satellite pointing user interface (UI) to facilitate connecting computing device 105 with nonterrestrial network 183 using satellite based cellular communications. In such examples, thesatellite pointing UI may output instructions to a display of computing device 105 indicating how to move and / or re-orient computing device 105 to align the one or more antennas with satellite 195, such that computing device 105 may be successfully connected with satellite 195 to establish satellite communications session 180.

[0024] In some examples, which may be described further below, provided that computing device 105 may only connect with non-terrestrial network 183 based on computing device 105 being geographically located in a geographic location authorized for connecting to nonterrestrial networks 183, authorization module 112 may update the geographic location of computing device 105 as computing device 105 moves. Furthermore, as described above, in some examples, a particular non-terrestrial network may be considered accessible if computing device 105 is located within an accessibility range of the particular non-terrestrial network. In some examples, a particular non-terrestrial network may be considered accessible based on the results of satellite scan 187. In some examples, additionally or alternatively, a particular non-terrestrial network may be considered accessible based on an established satellite communications session 180 maintaining a satellite signal strength above a threshold. As such, the non-terrestrial networks considered to be accessible to computing device 105 and authorized to establish satellite communications session 180 with computing device 105 may change as computing device 105 moves across geographic regions. In some examples, computing device 105 may only send and receive messages and / or exchange information utilizing non-terrestrial networks 183 when satellite communications session 180 is successfully established. In some examples, computing device 105 may exchange messages with one or more other devices over satellite communications session 180.

[0025] In some examples, while computing device 105 is scanning or connected with nonterrestrial network 183, one or more alternative communication networks may come into accessibility range, such as one or more wireless communications networks 196, which may be a cellular communications network and / or a WI-FI network. While computing device 105 remains scanning or connected with non-terrestrial network 183, computing device 105 may incur usage charges, consume battery reserves at a rate faster than that of alternative communications networks, and may experience heightened network latency and degraded overall bandwidth while connected with non-terrestrial network 183. Rather than continue scanning or maintaining a connection between computing device 105 and non-terrestrial network 183 while other alternative communication networks are within communications range with computing device 105, computing device 105 may cease scanning for one or moreauthorized and accessible non-terrestrial networks 183 and / or transition to an alternative communications network.

[0026] For example, in response to computing device 105 determining wireless communications network 196 (e.g., a terrestrial cellular network) is within communication or accessibility range, computing device 105 may determine to disable scanning for one or more authorized and accessible non-terrestrial networks 183 and / or be configured to automatically disconnect from non-terrestrial network 183. Computing device 105 may then reconnect with wireless communications network 196. Connecting with wireless communications network 196 may reduce battery consumption, reduce usage charges, and may improve network latency and bandwidth conditions for computing device 105. In some examples, computing device 105 may transition from established satellite communications session 180 using nonterrestrial network 183 to wireless communications session 186 using wireless communications network 196.

[0027] In some examples, to further reduce the amount of time in which satellite communication is employed, computing device 105 may be configured to affirmatively execute wireless network scan 185 seeking wireless communication networks 196 within range of computing device 105 while connected with non-terrestrial network 183. Stated differently, computing device 105 need not disconnect from non-terrestrial network 183 to perform wireless network scan 185. In some examples, computing device 105 scans for wireless communications networks 196 or other non-satellite connectivity networks using cellular radio 116 while computing device 105 remains connected with non-terrestrial network 183. In some examples, computing device 105 initiates wireless network scan 185 while evaluating whether or not to connect with non-terrestrial network 183. In some examples, wireless network scan 185 looks for any accessible wireless communication networks 196. In some examples, wireless network scan 185 includes determining whether at least one wireless communications network 196 is accessible via cellular radio 116 of computing device 105.

[0028] When a different communications network other than non-terrestrial network 183 is determined to be accessible to computing device 105, computing device 105 may automatically transition away from non-terrestrial network 183 and onto the other network. In some examples, computing device 105 may be configured to prompt for approval before terminating connectivity with non-terrestrial network 183 or may alternatively be configured to automatically terminate connectivity with non-terrestrial network 183 and reconnect with wireless communications network 196 when determined to be available. In some examples,in response to determining that at least one wireless communications network 196 is accessible, computing device 105 initiates new wireless communications session 186 with at least one wireless communications network 196 determined to be accessible.

[0029] Furthermore, in some examples, in addition to authorization module 112 determining whether the aforementioned conditions are met and computing device 105 is located in a geographic location that legally permits use of satellite communications, authorization module 112 may determine whether computing device 105 is located in a geographic location associated with a user density (e.g., a density of users of computing devices configured to connect to non-terrestrial networks 183) that is less than a threshold. Responsive to determining that computing device 105 is geographically located in a geographic location associated with a user density less than a threshold, authorization module 112 may authorize computing device 105 (e.g., authorize a modem of computing device 105) to initiate scanning for one or more authorized and accessible non-terrestrial networks 183 and connect with at least one authorized and accessible non-terrestrial network 183 to establish satellite communications session 180. However, while these examples and other examples throughout this disclosure describe multiple conditions being met (e.g., computing device being located in a location that legally permits use of satellite communications and has a user density less than a threshold) prior to authorization module 112 determining to enable satellite scan 187, in some examples, at least one condition may be met prior to authorization module 112 determining to enable satellite scan 187. That is, in some examples, rather than authorization module 112 determining to enable satellite scan 187 responsive to determining that computing device 105 is located in a geographic location that legally permits use of satellite communications, authorization module 112 may alternatively determine to enable satellite scan 187 responsive to determining that computing device 105 is located in a geographic location associated with a user density less than a threshold.

[0030] As such, in some examples, authorization module 112 may only authorize computing device 105 to initiate scanning if a set of conditions (e.g., a set of conditions including, for example, one or more of the aforementioned conditions) are met, computing device 105 is located in a geographic location that legally permits use of satellite communications, and / or computing device 105 is located in a geographic location associated with a user density less than a threshold.

[0031] Furthermore, in some examples, at least one condition may be met prior to authorization module 112 determining to disable satellite scan 187. That is, in some examples, authorization module 112 may determine to disable satellite scan 187 responsive todetermining that computing device 105 is located in a geographic location that legally prohibits use of satellite communications, determining that computing device 105 is located in a geographic location associated with a user density great than a threshold, or determining that one or more of the aforementioned conditions are not met.

[0032] In this way, the techniques described herein may not only help to enforce satellite access restrictions in countries that prohibit connections to one or more non-terrestrial networks, but also enforce satellite access restrictions to one or more non-terrestrial networks in urban areas with good cell coverage and high population (i.e., high user density). As such, illegal satellite access and satellite congestion may be avoided. Furthermore, as described herein, continuous monitoring of a computing device’s geographic location and available non-terrestrial networks may not be required, as such information may only be retrieved, and scanning may only occur, based on a set of conditions being met. In this way, excess costs associated with continuous monitoring and location querying may be avoided.

[0033] FIG. 2 is a block diagram illustrating another example computing device configured to use non-terrestrial networks, in accordance with one or more techniques of this disclosure. FIG. 2 illustrates only one particular example of computing device 205, which may be similar if not substantially similar to computing device 105 of FIG. 1. Many other example embodiments of computing device 205 may be used in other instances.

[0034] As shown in the specific example of FIG. 2, computing device 205 may include one or more processors 202, memory 204, network interface 206, one or more storage devices 208, user interface components 210, and power source 222. Computing device 205 may also include operating system 214 and authorization module 212 (which may be similar if not substantially similar to authorization module 112 of FIG. 1) that includes geographic location determination module 220, geographic information storage 232, and user information storage 233. Computing device 205 may include one or more other applications, modules, components, etc. not shown in the example of FIG. 2 that may also be executable by computing device 205. Components of computing device 205 may be interconnected (physically, communicatively, and / or operatively) for inter-component communications. Any applications or modules implemented within or executed by computing device 205 may be implemented or contained within, operable by, executed by, and / or be operatively / communicatively coupled to components of computing device 205, e.g., one or more processors 202, memory 204, network interface 206, one or more storage devices 208, and user interface components 210.

[0035] In some examples, processing circuitry including one or more processors 202 implements functionality and / or processes instructions for execution within computing device 205. For example, one or more processors 202 may be capable of processing instructions stored in memory 204 and / or instructions stored on one or more storage devices 208.

[0036] Memory 204, in one example, may store information within computing device 205 during operation. Memory 204, in some examples, may represent a computer-readable storage medium. In some examples, memory 204 may be a temporary memory, meaning that a primary purpose of memory 204 may not be long-term storage. Memory 204, in some examples, may be described as a volatile memory, meaning that memory 204 may not maintain stored contents when computing device 205 is turned off. Examples of volatile memories may include random access memories (RAM), dynamic random-access memories (DRAM), static random-access memories (SRAM), and other forms of volatile memories. In some examples, memory 204 may be used to store program instructions for execution by one or more processors 202. Memory 204, in one example, may be used by software or applications running on computing device 205 to temporarily store data and / or instructions during program execution.

[0037] One or more storage devices 208, in some examples, may also include one or more computer-readable storage media. One or more storage devices 208 may be configured to store larger amounts of information than memory 204. One or more storage devices 208 may further be configured for long-term storage of information. In some examples, one or more storage devices 208 may include non-volatile storage elements. Examples of such nonvolatile storage elements may include magnetic hard disks, optical discs, floppy disks, Flash memories, or forms of electrically programmable memories (EPROM) or electrically erasable and programmable (EEPROM) memories.

[0038] Computing device 205, in some examples, may also include network interface 206. Computing device 205, in such examples, may use network interface 206 to communicate with external devices via one or more networks, such as one or more wired or wireless networks. Network interface 206 may be a network interface card, such as an Ethernet card, an optical transceiver, a radio frequency transceiver, a cellular transceiver or cellular radio, or any other type of device that can send and receive information. Other examples of such network interfaces may include BLUETOOTH®, 3G, 4G, 2G, LTE, and WI-FI® radios in mobile computing devices as well as USB. In some examples, computing device 205 may use network interface 206 to wirelessly communicate with an external device such as a server, mobile phone, or other networked computing device.

[0039] As shown in the example of FIG. 2, computing device 205 includes one or more user interface (UI) components (“UI components 210”). UI components 210 may be implemented using various technologies. UI components 210 of computing device 205 may be configured to function as one or more input / output (I / O) devices 211 for computing device 205. One or more I / O devices 211 of computing device 205 may receive inputs and generate outputs. Examples of inputs are tactile, audio, video, kinetic, and optical input, to name only a few examples. Input devices of VO devices 211, in some examples, may include a presencesensitive display, a presence-sensitive or touch-sensitive input device, a mouse, a keyboard, a voice responsive system, video camera, microphone or any other type of device for detecting input from a human or machine. In some examples, a presence-sensitive display includes a touch-sensitive or presence-sensitive input screen, such as a resistive touchscreen, a surface acoustic wave touchscreen, a capacitive touchscreen, a projective capacitive touchscreen, a pressure sensitive screen, an acoustic pulse recognition touch screen, or another presencesensitive technology. That is, UI components 210 of computing device 205 may include a presence-sensitive device that may receive tactile input from a user. UI components 210 may receive indications of the tactile input by detecting one or more gestures from a user (e.g., when a user touches or points to one or more locations of UI components 210 with a finger or a stylus pen).

[0040] Output devices of I / O devices 211, in some examples, may include a sound card, a video graphics adapter card, or any of one or more display devices, such as a liquid crystal display (LCD), dot matrix display, light emitting diode (LED) display, microLED, miniLED, organic light-emitting diode (OLED) display, e-ink, or similar monochrome or color display capable of outputting visible information to a user. Additional examples of an output device include a speaker, a haptic device, or other device that can generate intelligible output to a user.

[0041] In some examples, UI components 210 may present output to a user as a graphical user interface that may be associated with functionality provided by computing device 205. In this way, UI components 210 may present various user interfaces of applications executing at or accessible by computing device 205 (e.g., an electronic message application, an Internet browser application, etc.). A user may interact with a respective user interface of an application to cause computing device 205 to perform operations relating to a function provided by the application. In some examples, one or more applications executing at or accessible by computing device 205 may query computing device 205 location. In these examples, computing device 305 may register a listener with a location service for suchlocation querying events. In some examples, the location querying events may only be processed by computing device 205 when computing device 205 has traversed a threshold distance (e.g., 50 miles).

[0042] As an example, responsive to computing device 205 being unable to maintain a wireless signal strength above a threshold for a predetermined amount of time and computing device 205 being outside of an accessibility range of one or more of wireless communications networks for a predetermined amount of time, computing device may generate a prompt for display on one or more of UI components 210 that asks the user to provide permission for computing device 205 to scan for one or more authorized and accessible non-terrestrial networks. The user may then provide input to one or more of UI components 210. In other examples, UI components 210 may receive user input indicating a request for connecting to a non-terrestrial network.

[0043] In some examples, UI components 210 of computing device 205 may detect two- dimensional and / or three-dimensional gestures as input from a user. For instance, a sensor of UI components 210 may detect the user's movement (e.g., moving a hand, an arm, a pen, a stylus, etc.) within a threshold distance of the sensor of UI components 210. UI components 210 may determine a two- or three-dimensional vector representation of the movement and correlate the vector representation to a gesture input (e.g., a hand-wave, a pinch, a clap, a pen stroke, etc.) that has multiple dimensions. In other words, UI components 210 may, in some examples, detect a multidimensional gesture without requiring the user to gesture at or near a screen or surface at which UI components 210 output information for display. Instead, UI components 210 may detect a multi-dimensional gesture performed at or near a sensor which may or may not be located near the screen or surface at which UI components 210 output information for display. In some examples, UI components 210 may detect information that indicates a user’s movement speed, etc. across a geographic region.

[0044] Computing device 205, in some examples, may include power source 222, which may be rechargeable and provide power to computing device 205. Power source 222, in some examples, may be a battery made from nickel-cadmium, lithium-ion, or other suitable material.

[0045] Examples of computing device 205 may include operating system 214. Operating system 214 may be stored in one or more storage devices 208 and may control the operation of components of computing device 205. For example, operating system 214 may facilitate the interaction of one or more applications or modules with hardware components of computing device 205. In some examples, operating system 214 may be configured to scan,via processing circuitry of computing device 205, for available satellite networks, wireless networks (e.g., WI-FI networks and cellular networks), or other types of networks.

[0046] As shown in FIG. 2, authorization module 212 may be stored in one or more storage devices 208 and may include geographic location determination module 220, geographic information storage 232, and user information storage 233. As described herein, responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, computing device 205 may determine whether computing device 205 is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks.

[0047] As described above, in some countries, satellite services may be restricted due to the legal requirements of governments. Additionally, satellite coverage might not be available everywhere in a legally permitted country. In some examples, terms of service may prohibit use of satellite. For instance, satellite communication might only be allowed at a location when original equipment manufacturers (OEMs) have approval for using satellite services and when satellite coverage is available. Moreover, satellite carrier companies may not want devices to attach to satellites from areas with high populations (i.e., high user densities), as this could congest satellites. Unless restricted, small coverage holes may provide devices the ability to attach to satellites. However, continuous monitoring using geofencing technology can be expensive in terms of CPU, memory, disk space, battery, thermal, etc.

[0048] As such, rather than computing device 205 automatically scanning for and attaching to non-terrestrial networks, authorization module 212 may first determine whether computing device 205 is authorized to scan for and attach to non-terrestrial networks. Specifically, as described above, authorization module 212 may first determine whether a set of conditions is met, such as one or more wireless communications networks being outside of an accessibility range of computing device 205 for a predetermined amount of time, a wireless signal strength of computing device 205 being below a threshold for a predetermined amount of time, and / or computing device 205 receiving either user input indicating a request for connecting to a nonterrestrial network or explicit permission from a user to connect to a non-terrestrial network. Responsive to determining to enable scanning for one or more authorized and accessible nonterrestrial networks, authorization module 212 may determine whether computing device 205 is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks. In the example of FIG. 2, geographic information storage 232 may storeinformation pertaining to the plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks.

[0049] Specifically, when computing device 205 is in service (e.g., when computing device 205 is connected to a wireless communication network with adequate signal strength), computing device 205 may send, to a remote computing system, a request for a current country code (e.g., an International Telecommunication Union (ITU) code, a Mobile Country Code (MCC), a satellite network identifier, or the like), in which the request includes an indication of a current geographic location of computing device 205 (e.g., a geocoder may be used to query the country code at the current geographic location). In general, computing device 205 may use any suitable technology for determining a current geographic location of computing device 205, such as a Global Positioning System (GPS), cellular network triangulation, WI-FI positioning, Bluetooth™ beacons, inertial measurement units (IMUs), other positioning systems or geographic information systems (GIS), and the like. Computing device 205 may receive, from the remote computing system, the current country code, in which the current country code is associated with the current geographic location of computing device 205 and may be stored in user information storage 233. Information associated with the current geographic location of computing device 205, such as latitude and longitude coordinates of computing device 205, may also be stored in user information storage 233.

[0050] As such, the stored country code and stored geographic location information of computing device 205 in user information storage 233 may be periodically updated when computing device 205 is in service and sends, to the remote computing system, a request for a current country code. By storing the country code in user information storage 233, however, authorization module 212 may still determine whether computing device 205 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, even when computing device 205 is out of service and unable to request a current country code. That is, the stored country code may be considered a cached country code that is valid for a certain time period and can be used by authorization module 212 to determine whether computing device 205 is geographically located in a geographic location authorized for connecting to a non-terrestrial network. In some examples, the cached country code may be valid for four hours (e.g., authorization module 212 may not use a cached country code that has been stored and / or updated in user information storage 233 for more than four hours. In some examples, the cached country code may be cleared when computing device 205 is rebooted. In someexamples, if computing device 205 is out of service and a user makes an emergency call on computing device 205, computing device 205 may request the current country code and update the cached country code accordingly.

[0051] In some examples, emergency calls made on computing device 205 may not be connected even when computing device 205 has some cellular signal or limited services, which may be due to weak signal strength, network registration failure, the network being busy, computing device 205 being barred by the network, etc. As such, in some examples, even if computing device 205 device has some cellular signal, if an emergency call cannot be connected after a long hysteresis time (e.g., 1 minute), computing device 205 may recommend a user to switch to satellite emergency (“SOS”) messaging. That is, in some examples, under specific conditions when traditional cellular network connections are unreliable, computing device 205 may generate, for example, a notification to a user that requests permission for computing device 205 to scan for one or more authorized and accessible non-terrestrial networks. In some examples, authorization module 212 may determine whether computing device 205 is geographically located in a geographic location authorized for connecting to a non-terrestrial network prior to requesting permission for scanning. In some other examples, responsive to receiving user input that grants computing device 205 permission for scanning, authorization module 212 may determine whether computing device 205 is geographically located in a geographic location authorized for connecting to a non-terrestrial network.

[0052] Continuing the example of making emergency calls, if authorization module 212 determines computing device 205 is geographically located in a geographic location authorized for connecting to a non-terrestrial network, and scanning is performed but no nonterrestrial networks are found, computing device 205 may start a timer (e.g., for a specified amount of time, such as 20-seconds). Once the timer expires, computing device 205 may generate a notification to the user that indicates a recommendation that the user use satellite SOS messaging. As an example, a user interface of computing device 205 may display a “Satellite SOS” button, and responsive to the user interacting with the button, computing device 205 may execute an application (e.g., a dialer application) for using satellite SOS messaging.

[0053] In some examples, if computing device 205 scans for and finds an available nonterrestrial network, an emergency call attempt may be started. In these examples, computing device 205 may start a timer (e.g., for a specified amount of time, such as 1 minute) at the start of the emergency call connection attempt. Computing device 205 may stop the timeronce the emergency call connects or the user ends the emergency call attempt. If the timer expires, computing device 205 may generate the notification to the user that indicates the recommendation that the user use satellite SOS messaging.

[0054] In some examples, if an emergency call is rejected by a network, computing device 205 may temporarily bar that network from emergency call usage, e.g., computing device 205 may bar the network from future scans for emergency calls for a configurable period (e.g., 1 day). In some examples, computing device may store a list of allowed and / or disallowed networks. As such, in an example in which a network is temporarily barred for emergency usage, computing device 205 may add the network to the list of disallowed networks. During future scans, computing device 205 may skip barred networks to optimize emergency call attempts. As such, in some examples, the one or more conditions for determining whether to enable satellite scanning may include an emergency call not being connected after a predetermined amount of time, and an emergency call being rejected by the one or more wireless communications networks.

[0055] In general, though, prior to initiating scanning for non-terrestrial networks, authorization module 212 may determine whether one or more of the current country code and the stored country code indicates computing device 205 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network. For example, when the MCC changes, it is very likely that computing device 205 has relocated to another country, and thus authorization module 212 may determine whether the new MCC indicates computing device 205 is geographically located in a country that is authorized for connecting to a non-terrestrial network. In some examples, even if location services are turned off for computing device 205, the MCC may be used by authorization module 212. In general, by only determining a current geographic location of computing device 205 and sending requests to a remote computing system when authorization module 212 has determined that a set of conditions have been met, location querying may be minimized, which may reduce costs in terms of CPU, memory, disk space, battery, etc.

[0056] In some examples, computing device 205 may additionally or alternatively receive or determine a geographic identifier. In some examples, the geographic identifier may be based on the latitude and longitude coordinates of computing device 205 that are stored in user information storage 233. In some examples, the geographic identifier is from a plurality of geographical identifiers each corresponding to a geographic region from a plurality of geographic regions. In some examples, the geographic identifier includes a unique 64-bitidentifier that encodes information pertaining to a geographic region from the plurality of geographic regions. To determine whether computing device 205 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, authorization module 212 may additionally or alternatively determine whether the geographic identifier indicates computing device 205 is geographically located in a geographic location authorized for connecting to a non-terrestrial network.

[0057] As an example, when computing device 205 is out of service, authorization module 212 may determine whether computing device 205 is authorized to connect to non-terrestrial networks based on information stored in geographic information storage 232 and user information storage 233. In some examples, geographic information storage 232 may store information pertaining to the plurality of geographic regions, such as corresponding geographical identifiers, corresponding restrictions or laws with regards to satellite communications, corresponding country codes, corresponding latitude and longitude coordinates, corresponding boundary data, etc. In some examples, geographic information storage 232 may include lists of allowed and / or disallowed country codes and allowed and / or disallowed geographic identifiers. In some examples, geographic information storage 232 may include lists of satellite carriers that are allowed and / or disallowed in a particular geographic region. As an example, while a particular country’s government may legally permit the operation and use of certain satellite constellations (e.g., satellite constellations that are either owned or closely controlled by the particular country’s government), it may legally prohibit the operation and use of other satellite constellations (e.g., satellite constellations that are not owned or closely controlled by the particular country’s government). As such, authorization module 212 may implement access control by identifying information stored in geographic information storage 232 and determining whether a particular non-terrestrial network is authorized and accessible based on that information.

[0058] In some examples, authorization module 212 may implement access control by identifying information pertaining to terms of service and / or other restrictions. For example, authorization module 212 may determine whether use of non-terrestrial network(s) is authorized based on the type of device, terms set forth by an OEM or carrier, etc.

[0059] Geographic location determination module 220 may be configured to perform calculations for determining geographical identifiers. For example, geographic location determination module 220 may convert latitude and longitude coordinates to the unique 64- bit geographic identifier that encodes information pertaining to a geographic region from theplurality of geographic regions. In some examples, based on the information stored in geographic information storage 232, geographic location determination module 220 may generate a list of geographic identifiers that represents a particular geographic region, territory, or country, and store the list in geographic information storage 232. In some examples, this information may be stored in geographic information storage 232 as a block binary file including information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network, in which the binary block file includes ranges of contiguous geographic identifiers. Geographic location determination module 220 may also determine a geographic identifier based on the latitude and longitude coordinates of computing device 205 that are stored in user information storage 233. In some other examples, a list of geographic identifiers may be provided by OEMs for regions where satellite coverage is available and not legally prohibited.

[0060] In some examples, the geographic identifiers described herein may be associated with hierarchical cells derived from projecting the Earth's surface onto faces of a unit cube and subdividing each face into a grid. Each cell may represent geographic regions of various sizes and positions on the Earth. In some examples, the cells may be numbered in order to maximize locality of reference. Furthermore, as described above, rather than storing a list of all cells and associated identifiers for a country, geographic information storage 232 may convert the geographic identifiers into a block binary file, in which the block binary file including ranges of geographic identifiers for contiguous cells, such as [start cell identifier, end cell identifier]. Instead of loading all of the ranges into memory for lookup, the ranges may be split into blocks, in which metadata describing the blocks may be mapped into memory. The ranges in a block may be sorted. Then, using the geographic identifier associated with computing device 205 as input, geographic location determination module 220 may perform the binary search to look up the input geographic identifier. In some examples, the lookup results may be stored in user information storage 233. In some examples, the lookup results may be cached.

[0061] In some examples, a hierarchical cell block file may include a header block, a metadata block, and one or more data blocks. In some examples, out of the 64 bits included in the geographic identifier, only meaningful bits may be used. For example, for cells representing smaller areas (e.g., about 3.22 square kilometers), only 27 bits may be used while 37 bits are unused. In some examples, the meaningful bits of a geographic identifier may be divided into 2 parts: prefix and suffix. The prefix may be associated with the block identifier and stored at the metadata block. The suffix may be stored at the data block. Insome examples, the metadata block comprises an array of contiguous block information, such as block identifier, start byte offset, and size in bytes. In some examples, the data block comprises a list of entries, in which each entry comprises a list of contiguous geographic identifiers’ suffixes. An entry may be stored using a 32-bit number, which may be divided into 2 parts: suffix of the range start’s geographic identifier and range length (e.g., the number of cells). In some examples, the header block includes an associated level of all the cells stored in the block file, a prefix bit count, a suffix bit count, and a range length bit count.

[0062] As an example, a cell representing a smaller area (e.g., about 3.22 square kilometers or a diameter of about 2 kilometers) may be assigned a level of 12. For a level-12 cell, out of the 64 bits included in the geographic identifier, only 27 bits may be considered meaningful. The prefix bit count may be 11. Thus, the maximum data blocks may be 2A11 = 2048 data blocks. The size of the metadata may be 2048 * 12 = 24,576 bytes. The suffix bit count may be 16. As such, each block may store a maximum 2A16 = 65,536 cells. The range length bit count may be 16. As such, each entry may store a maximum 2A16 = 65,536 cells.

[0063] An example block file format may include input ranges and corresponding configuration identifiers. For example, a block file may include range 1 (start prefix: 0, start suffix: 0; end prefix: 0, end suffix: 300), range 2 (start prefix: 0, start suffix: 301; end prefix: 0, end suffix: 700), range 3 (start prefix: 2, start suffix: 0; end prefix: 2, end suffix: 700).

[0064] As described above, in general, geographic information storage 232 may store information such as country codes (e.g., ITU codes, MCC, satellite network identifiers, or the like), geographic identifiers (such as the unique 64-bit geographic identifier described above), and / or geographic data represented in file formats such as Keyhole Markup Language (KML), Keyhole Markup Language Zipped (KMZ), and the like. In some examples, geographic location determination module 220 may convert KML or KMZ data into a list of geographic identifiers, in which the list of geographic identifiers may then be converted into the binary block file described above.

[0065] To determine whether the geographic identifier associated with computing device 205 indicates computing device 205 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, geographic location determination module 220 may perform a binary search to look up the geographic identifier in the block binary file stored in geographic information storage 232. Specifically, using the geographic identifier associated with computing device 205 as input, geographic location determination module 220 may use the metadata associated with a blockfile to identify a target block. The target block may then be mapped into the memory. As such, geographic location determination module 220 may map, based on the binary search, the geographic identifier associated with computing device 205 to a geographic location from the plurality of geographic locations authorized for connecting to one or more authorized and accessible non-terrestrial networks. If geographic location determination module 220 successfully maps the geographic identifier associated with computing device 205 to a geographic location authorized for connecting to one or more authorized and accessible nonterrestrial networks, authorization module 212 may determine computing device 205 is geographically located in a geographic location authorized for connecting to one or more authorized and accessible non-terrestrial networks. As a result, computing device 205 may initiate scanning for the one or more authorized and accessible non-terrestrial networks and connect to at least one authorized and accessible non-terrestrial network.

[0066] Furthermore, as described above, in some examples, in addition to or as an alternative to determining whether computing device 205 is geographically located in a location legally permitted to connect to non-terrestrial networks, geographic location determination module 220 may determine whether computing device 205 is geographically located in a geographic location associated with a user density less than a threshold. In some examples, geographic information storage 232 may store user density data that corresponds to a geographic region from the plurality of geographic regions. In these examples, responsive to geographic location determination module 220 determining that computing device 205 is geographically located in a geographic location associated with a user density less than a threshold, authorization module 212 may authorize computing device 205 to initiate scanning for and connect to the one or more authorized and accessible non-terrestrial networks.

[0067] In this way, instead of computing device 205 automatically scanning for and attaching to satellite networks, computing device 205 may only scan for and attach to satellite networks when computing device 205 is out of wireless service for a predetermined amount of time, a wireless signal strength is below a threshold for a predetermined amount of time, a user permits satellite communication, computing device 205 is located in a geographic region that legally permits satellite communication, and / or computing device 205 is located in a geographic region associated with a user density less than a threshold. As such, the techniques described herein may limit costs associated with continuous monitoring and querying of a computing device’s geographic location, limit costs associated with continuous monitoring of available non-terrestrial networks, help to enforce laws regarding satelliteaccess, and help to enforce satellite access restrictions in urban areas with good cell coverage and high population or user density so as to prevent congestion.

[0068] FIG. 3 illustrates another example computing device configured to use non-terrestrial networks, in accordance with one or more techniques of this disclosure. The components and modules of FIG. 3 may be similar if not substantially similar to the respective components and modules of FIG. 1 and FIG. 2. As shown in the example of FIG. 3, computing device 305 may determine whether to enable or disable satellite scan 187 for one or more authorized and accessible non-terrestrial network(s) 383 including satellite 395 based on one or more conditions. In some examples, the one or more conditions may include computing device 305 being outside an accessibility range of one or more wireless communications network(s) 396 for a predetermined amount of time, a wireless signal strength of wireless communications session 386 being below a threshold for a predetermined amount of time, and user input indicating a request or permission for connecting to a non-terrestrial network. For example, in some examples, computing device 305 may determine whether to enable or disable satellite scan 187 based on satellite communications module 310 being turned on or off. In some examples, there may be additional or fewer conditions than those described herein. In some examples, authorization module 312 may determine whether the conditions are met based on wireless network scan 385 and / or by monitoring wireless communication session 386. In some examples, prior to authorization module 212 determining to enable satellite scan 187, multiple or all of the conditions must be met. Furthermore, responsive to determining to enable satellite scan 187 for one or more authorized and accessible non-terrestrial network(s) 383, authorization module 312 may further determine whether computing device 305 is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to one or more authorized and accessible non-terrestrial networks 383.

[0069] Responsive to authorization module 312 determining that computing device 305 is geographically located in a geographic location authorized for connecting to one or more authorized and accessible non-terrestrial networks 383, authorization module 312 may authorize computing device 305 to initiate satellite scan 387 for one or more authorized and accessible non-terrestrial networks 383. Computing device 305 may then connect with at least one authorized and accessible non-terrestrial network 383 to establish satellite communications session 380.

[0070] As shown in the example of FIG. 3, computing device 305 includes both satellite communications module 310 capable of communicating with satellite 395 of non-terrestrialnetwork 383 using cellular radio 316 and wireless communications module 315 capable of communicating with wireless communications network 396 using cellular radio 316.

[0071] In some examples, authorization module 312 may determine to disable satellite scan 387 and / or end satellite communications session 380 (shown in FIG. 3 as termination 381). For example, authorization module 312 may determine that some or all of the aforementioned conditions are no longer met. For example, while computing device 305 performs satellite scan 387 and / or while computing device 305 is connected with an accessible and authorized non-terrestrial network 383 to establish satellite communications session 380, computing device may concurrently, either continuously or periodically, perform wireless network scan 385.

[0072] In some examples, while connected with non-terrestrial network 383, computing device 305 may scan for non-terrestrial -based networks for other various reasons, including to provide a redundant or failsafe communication path, to reduce the financial cost of network connectivity, to reduce communication latency, to improve communication bandwidth, and to improve overall communication performance and resiliency. For instance, communications between computing device 305 and ground-based cellular towers of wireless communications network 396 may perform better than otherwise equivalent communications with satellite 395 of non-terrestrial network 383. Additionally, in some examples, even in regions legally permitted to use satellite communications, OEMs or carriers may set forth terms of service that may apply other constraints and optimizations that limit the use of satellites.

[0073] In the example of FIG. 3, use of established satellite communications session 380 may provide communications capabilities to computing device 305 in the absence of any other wireless communications channel (e.g., such as cellular, WI-FI, etc.), and thus, computing device 305 may be configured to connect to, and communicate with, non-terrestrial network 383 and periodically, while connected with non-terrestrial network 383, perform wireless network scan 385 to check for availability of alternate communication channels.

[0074] Based on wireless network scan 385, authorization module 312 may determine that computing device 305 is within an accessibility range of one or more wireless communications network(s) 396 for a predetermined amount of time. In some examples, computing device 305 receives user input indicating a request for terminating scanning for or disconnecting with a non-terrestrial network 383. In some examples, computing device 305 communicates with both satellite 395 and wireless communications network 396 concurrently. In these examples, authorization module 312 may determine that a wirelesssignal strength of computing device 305 is above a threshold for a predetermined amount of time. In general, if authorization module 312 determines that one or more conditions for enabling scanning are not met, authorization module 312 may determine to disable satellite scan 387 for one or more authorized and accessible non-terrestrial networks 383. Responsive to authorization module 312 determining to disable satellite scan 387 for one or more authorized and accessible non-terrestrial networks 383, computing device 305 may cease scanning for one or more authorized and accessible non-terrestrial networks 383. In some examples, authorization module 312 may determine to terminate satellite communications session 380, in which computing device 305 may be disconnected from one or more authorized and accessible non-terrestrial networks 383.

[0075] Computing device 305 may be configured to automatically terminate satellite communications. For instance, processing circuitry may disconnect computing device 305 from non-terrestrial network 383 automatically. In some examples, computing device 305 disconnects from satellite 395 by turning off satellite communications module 310. In some examples, computing device 305 terminates communications with satellite 395 responsive to determining new wireless communications session 386 has been established between computing device 305 and wireless communications network 396. In some examples, computing device 305 disconnects from non-terrestrial network 383 before transitioning to communications with wireless communications network 396 (shown as transition 327 in FIG. 3).

[0076] Thus, in at least one example, computing device 305 initiates wireless network scan 385 while computing device 305 is connected with non-terrestrial network 383 by scanning for any accessible wireless communication networks 396. In such an example, computing device 305 determines whether at least one wireless communications network 396 is accessible via cellular radio 316 of computing device 305. Responsive to determining that at least one cellular communications network 396 is accessible, computing device 305 may initiate wireless communications session 386 with at least one wireless communications network 396 determined to be accessible. Thus, in general, computing device 305 may transition between satellite and wireless communications based on whether one or more of the conditions described above are met. Computing device 305 may perform such a transition (e.g., transition 327) without loss of user perceptible connectivity. Furthermore, computing device 305 may be optimized for giving preference to wireless communications over satellite communications when wireless communication networks 396 are accessible by periodicallyscanning for wireless network availability or responsively initiating wireless network scans responsive to determining one or more of the above conditions being met.

[0077] In some examples, authorization module 312 may determine to disable satellite scan 387 and / or end satellite communications session 380 (shown in FIG. 3 as termination 381) based on an updated geographic location of computing device 305. As an example, authorization module 312 may determine computing device 305 to be, at a first time, geographically located in a geographic location from a plurality of geographic locations authorized for connecting to one or more authorized and accessible non-terrestrial networks 383. At a second time, however, authorization module 312 may determine computing device 305 to not be geographically located in a geographic location from a plurality of geographic locations authorized for connecting to one or more authorized and accessible non-terrestrial networks 383. In this example, responsive to authorization module 312 determining computing device 305 is not geographically located in a geographic location authorized for connecting to one or more authorized and accessible non-terrestrial networks 383, authorization module 312 may determine to disable satellite scan 387 for one or more authorized and accessible non-terrestrial networks 383, in which computing device 305 may cease scanning. In some examples in which satellite communications session 380 has been established, responsive to authorization module 312 determining computing device 305 is not geographically located in a geographic location authorized for connecting to one or more authorized and accessible non-terrestrial networks 383, computing device 305 may perform termination 381, in which satellite communications session 380 is ended and computing device 305 is disconnected from one or more authorized and accessible non-terrestrial networks 383.

[0078] As such, in some examples, computing device 305 may periodically perform location querying while computing device 305 is connected to one or more authorized and accessible non-terrestrial networks 383. For example, in some examples, computing device 305 may perform local querying every four hours, every five hours, every 6 hours, etc. In some examples, computing device 305 may determine whether computing device 305 is in motion via an accelerometer of computing device 305 or another similar device for capturing motion. In some examples, computing device 305 may perform location querying responsive to determining that computing device 305 is in motion and / or has traversed a predetermined distance. For example, if computing device 305 is located in a geographic location authorized for satellite communications, but is near a boundary or border with a different geographic location that is not authorized for satellite communications, computing device 305 mayperform location querying periodically and / or in response to detected movement so as to ensure that if computing device 305 enters the different geographic location that is not authorized for satellite communications, then any satellite scanning or established satellite session is terminated. In some examples, computing device 305 may perform location querying based on computing device 305 being set to “airplane mode,” e.g., a setting that turns off all wireless and cellular signal capabilities. As an example, if computing device 305 is set to airplane mode (e.g., while a user of computing device 305 is traveling via airplane), computing device 305 may perform location querying once airplane mode is turned off (e.g., when the user of computing device 305 lands in a different geographic location). In some examples, however, such as in the case of disputed regions claimed by more than one government, if at least one government legally prohibits satellite communications, then the entire region may be considered satellite-disallowed, i.e., computing device 305 may not connect to a non-terrestrial network.

[0079] In general, computing device 305 may perform location querying responsive to a number of events. For example, some example events include when location services on computing device 305 are toggled on and off, when the MCC changes, when computing device 305 is connected to a Wi-Fi network and is out of cellular service, when computing device 305 is out of cellular service, when computing device 305 has traversed at least a threshold distance, when airplane mode on computing device 305 is toggled on and off, etc. When such an event occurs, computing device 306 may query the current location for reevaluating whether computing device 305 is geographically located in a satellite allowed region, and may notify its listeners if the authorization for using non-terrestrial network 383 changes. In some examples, to minimize the impact on system health, computing device 305 may only process each event at a rate of one event per time interval (e.g., 1 hour).

[0080] In general, computing device 305 may automatically terminate connectivity with nonterrestrial network 383 when authorization module 312 determines that computing device 305 is no longer geographically located in a satellite allowed region. In some examples, computing device 305 may generate a notification when computing device 305 performs termination 381, e.g., a user interface of computing device 305 may display a message such as, “Satellite is not available in this region.” In some examples, responsive to receiving user input indicating a request or permission for connecting to non-terrestrial network 383, and / or an event from the example events above is processed, computing device 305 may generate a notification indicating whether computing device 305 is geographically located in a satellite allowed region, e.g., a user interface of computing device 305 may display a message such as,“Satellite is not available in this region” or “Satellite is available in this region.” In general, however, a user interface of computing device 305 may only display graphical components associated with non-terrestrial network communication based on specific conditions being met.

[0081] FIG. 4 is a flow chart illustrating an example mode of operation for a computing device to determine to scan for and connect to non-terrestrial networks, in accordance with techniques of this disclosure. For clarity, the example of FIG. 4 may be described in reference to FIGS. 1-2.

[0082] Authorization module 112 determines whether one or more wireless communications networks 196 are outside of an accessibility range of computing device 105 for a predetermined amount of time, and whether a wireless signal strength of computing device 105 is below a threshold for a predetermined amount of time (460). Responsive to determining that one or more wireless communications networks 196 are outside of an accessibility range of computing device 105 for a predetermined amount of time, and a wireless signal strength of computing device 105 is below a threshold for a predetermined amount of time (“YES” branch of 460), authorization module 112 determines whether location service is available (462). For example, authorization module 112 may determine whether computing device 105 can send, to a remote computing system, a request for a current country code, the request including an indication of a current geographic location of computing device 105, and receive, from the remote computing system, the current country code, in which the current country code is associated with the current geographic location of computing device 105. Responsive to determining location service is available (“YES” branch of 462), geographic location determination module 220 gets or determines the geographic identifier for the current location (464). Responsive to determining location service is not available (“NO” branch of 462), authorization module 112 determines if computing device 105 is in emergency mode (466). Responsive to determining that computing device 105 is in emergency mode (“YES” branch of 466), geographic location determination module 220 gets or determines the geographic identifier for the current location (464). Responsive to determining that computing device 105 is not in emergency mode (“NO” branch of 466), authorization module 112 uses the cached country code stored in user information storage 233 (468).

[0083] Responsive to determining that one or more wireless communications networks 196 are not outside of an accessibility range of computing device 105 for a predetermined amount of time, and / or a wireless signal strength of computing device 105 is not below a thresholdfor a predetermined amount of time (“NO” branch of 460), authorization module 112 gets the current country code (470) by sending, to a remote computing system, a request for the current country code, and receiving, from the remote computing system, the current country code, in which the current country code is associated with the current geographic location of computing device 105.

[0084] Authorization module 112 determines whether the cached country code or the current country code indicates computing device 105 is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks 183, based on whether the cached or current country code is in an allowed list (472). Responsive to the cached or current country code being in the allowed list (“YES” branch of 472), authorization module 112 authorizes computing device 105 to initiate scanning and connect to the one or more authorized and accessible non-terrestrial networks 183 (476). Responsive to the cached or current country code not being in the allowed list (“NO” branch of 472), authorization module 112 does not authorize computing device 105 to initiate scanning and connect to the one or more authorized and accessible non-terrestrial networks 183 (478).

[0085] Responsive to authorization module 112 getting or determining the geographic identifier for the current location of computing device 105 (464), geographic location determination module 220 determines whether the geographic identifier indicates computing device 105 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network 183 (474). In some examples, to determine whether the geographic identifier indicates computing device 105 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network 183, geographic location determination module 220 performs a binary search to look up the geographic identifier in a block binary file stored in geographic information storage 232 that includes information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network 183. Responsive to geographic location determination module 220 determining that the geographic identifier is in an allowed list (e.g., based on the binary search), (“YES” branch of 474), authorization module 112 uses the cached country code as described above (468). Responsive to geographic location determination module 220 determining that the geographic identifier is not in the allowed list (e.g., based on the binary search), (“NO” branch of 474), authorization module 112 does not authorize computing device 105 to initiate scanning and connect to the one or more authorized and accessible non-terrestrial networks 183 (478).

[0086] FIG. 5 is a flow chart illustrating another example mode of operation for a computing device to determine to scan for and connect to non-terrestrial networks, in accordance with techniques of this disclosure. For clarity, the example of FIG. 5 may be described in reference to FIGS. 1 and 2.

[0087] Computing device 105 determines whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks 183 based on one or more conditions (580). In some examples, at least one authorized and accessible non-terrestrial network from the one or more authorized and accessible non-terrestrial networks is a satellite communications constellation. In some examples, authorization module 112 determines whether the one or more conditions are met. In some examples, the one or more conditions include user input indicating a request for connecting to a non-terrestrial network 183, one or more wireless communications networks 196 being outside of an accessibility range of computing device 105 for a predetermined amount of time, and a wireless signal strength of computing device 105 being below a threshold for a predetermined amount of time. In some examples, the one or more wireless communications networks 196 include one or more of a WI-FI network and a cellular communications network. In some examples, determining to enable scanning for one or more authorized and accessible non-terrestrial networks 183 is based on all of the one or more conditions being satisfied. In some examples, the one or more conditions for determining whether to enable satellite scanning may include an emergency call not being connected after a predetermined amount of time, and an emergency call being rejected by the one or more wireless communications networks.

[0088] Responsive to authorization module 112 determining to enable scanning for the one or more authorized and accessible non-terrestrial networks 183, geographic location determination module 220 determines whether computing device 105 is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks 183 (582). In some examples, to determine whether computing device 105 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network 183, geographic location determination module 220 receives one or more of a current country code, a stored country code, and a geographic identifier from user information storage 233. In some examples, computing device 105 sends, to a remote computing system, a request for the current country code, the request including an indication of a current geographic location of the computing device, and receives, from the remote computing system, the current country code, in which the current country code is associatedwith the current geographic location of computing device 105. Geographic location determination module 220 may update the stored country code in user information storage 233 with the current country code.

[0089] In some examples, to determine whether the geographic identifier indicates computing device 105 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network 183, geographic location determination module 220 performs a binary search to look up the geographic identifier in a block binary file stored in geographic information storage 232 that includes information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network 183. In some examples, the binary block file includes ranges of contiguous geographic identifiers. Geographic location determination module 220 may map, based on the binary search, the geographic identifier to a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network. In some examples, the geographic identifier is from a plurality of geographical identifiers each corresponding to a geographic region from a plurality of geographic regions. In some examples, the geographic identifier includes a unique 64-bit identifier that encodes information pertaining to a geographic region from the plurality of geographic regions. In some examples, the geographic identifier is based on latitude and longitude coordinates of the computing device.

[0090] In some examples, geographic location determination module 220 determines whether one or more of the current country code, the stored country code, and the geographic identifier indicate the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network 183 based on the information stored in geographic information storage 232. In some examples, computing device 205 generates a notification indicating whether computing device 205 is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0091] In some examples, responsive to authorization module 112 determining to enable scanning for the one or more authorized and accessible non-terrestrial networks 183, geographic location determination module 220 determines whether computing device 105 is geographically located in a geographic location from the plurality of geographic locations associated with a user density less than a threshold.

[0092] Responsive to determining that computing device 105 is geographically located in a geographic location authorized for connecting to the one or more authorized and accessiblenon-terrestrial networks 183 (and in some examples, additionally or alternatively, responsive to determining that computing device 105 is geographically located in a geographic location associated with a user density less than a threshold), a modem of computing device 105 initiates scanning for the one or more authorized and accessible non-terrestrial networks 183 (584), and connects to at least one authorized and accessible non-terrestrial network 183 (586).

[0093] In some examples, responsive to authorization module 112 determining to disable scanning for the one or more authorized and accessible non-terrestrial networks 183, the modem of computing device 105 ceases scanning for the one or more authorized and accessible non-terrestrial networks 183.

[0094] This disclosure includes the following examples:

[0095] Example 1. A method comprising: determining, by a computing device, whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determining, by the computing device, whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks; and responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiating, by the computing device, a scan for the one or more authorized and accessible non-terrestrial networks; and connecting, by the computing device, to at least one authorized and accessible non-terrestrial network.

[0096] Example 2. The method of example 1, wherein at least one authorized and accessible non-terrestrial network from the one or more authorized and accessible non-terrestrial networks is a satellite communications constellation.

[0097] Example 3. The method of example 1 or 2, further comprising: responsive to determining to disable scanning for the one or more authorized and accessible non-terrestrial networks: ceasing, by the computing device, the scan for the one or more authorized and accessible non-terrestrial networks.

[0098] Example 4. The method of any of examples 1-3, wherein the one or more conditions include: user input indicating a request for connecting to a non-terrestrial network, one or more wireless communications networks being outside of an accessibility range of thecomputing device for a predetermined amount of time, and a wireless signal strength of the computing device being below a threshold for a predetermined amount of time.

[0099] Example 5. The method of example 4, wherein the one or more wireless communications networks include one or more of a WI-FI network and a cellular communications network.

[0100] Example 6. The method of example 4, wherein determining to enable scanning for the one or more authorized and accessible non-terrestrial networks is based on all of the one or more conditions being satisfied.

[0101] Example 7. The method of any of examples 1-6, wherein determining whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network further comprises: receiving, by the computing device, one or more of a current country code, a stored country code, and a geographic identifier; determining, by the computing device, whether one or more of the current country code, the stored country code, and the geographic identifier indicate the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network; and generating, by the computing device, a notification indicating whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0102] Example 8. The method of example 7, further comprising: sending, by the computing device and to a remote computing system, a request for the current country code, the request including an indication of a current geographic location of the computing device; receiving, by the computing device and from the remote computing system, the current country code, wherein the current country code is associated with the current geographic location of the computing device; and updating, by the computing device, the stored country code with the current country code.

[0103] Example 9. The method of example 7, wherein determining whether the geographic identifier indicates the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network further comprises: performing, by the computing device, a binary search to look up the geographic identifier in a block binary file including information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network, wherein the binary block file includes ranges of contiguous geographic identifiers; and mapping, by the computing device, and based on the binary search, the geographic identifierto a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0104] Example 10. The method of example 9, wherein the geographic identifier is from a plurality of geographical identifiers each corresponding to a geographic region from a plurality of geographic regions, and wherein the geographic identifier includes a unique 64- bit identifier that encodes information pertaining to a geographic region from the plurality of geographic regions.

[0105] Example 11. The method of example 10, wherein the geographic identifier is based on latitude and longitude coordinates of the computing device.

[0106] Example 12. The method of any of examples 1-11, further comprising: responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determining, by the computing device, whether the computing device is geographically located in a geographic location from the plurality of geographic locations associated with a user density less than a threshold; and responsive to determining that the computing device is geographically located in a geographic location associated with a user density less than a threshold: initiating, by the computing device, the scan for the one or more authorized and accessible non-terrestrial networks; and connecting, by the computing device, to the at least one authorized and accessible non-terrestrial network.

[0107] Example 13. A computing device comprising: one or more processors; and one or more storage devices that store instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to: determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks; and responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiate a scan for the one or more authorized and accessible non-terrestrial networks; and connect to at least one authorized and accessible nonterrestrial network.

[0108] Example 14. The computing device of example 13, wherein at least one authorized and accessible non-terrestrial network from the one or more authorized and accessible nonterrestrial networks is a satellite communications constellation.

[0109] Example 15. The computing device of example 13 or 14, wherein the instructions further cause the one or more processors to: responsive to determining to disable scanning for the one or more authorized and accessible non-terrestrial networks: cease the scan for the one or more authorized and accessible non-terrestrial networks.

[0110] Example 16. The computing device of any of examples 13-15, wherein the one or more conditions include: user input indicating a request for connecting to a non-terrestrial network, one or more wireless communications networks being outside of an accessibility range of the computing device for a predetermined amount of time, and a wireless signal strength of the computing device being below a threshold for a predetermined amount of time.

[0111] Example 17. The computing device of example 16, wherein the one or more wireless communications networks include one or more of a WI-FI network and a cellular communications network.

[0112] Example 18. The computing device of example 16, wherein to determine to enable scanning for the one or more authorized and accessible non-terrestrial networks, the instructions further cause the one or more processors to determine that all of the one or more conditions are satisfied.

[0113] Example 19. The computing device of any of examples 13-18, wherein to determine whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, the instructions further cause the one or more processors to: receive one or more of a current country code, a stored country code, and a geographic identifier; determine whether one or more of the current country code, the stored country code, and the geographic identifier indicate the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network; and generate a notification indicating whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0114] Example 20. The computing device of example 19, wherein the instructions further cause the one or more processors to: send, to a remote computing system, a request for the current country code, the request including an indication of a current geographic location ofthe computing device; receive, from the remote computing system, the current country code, wherein the current country code is associated with the current geographic location of the computing device; and update the stored country code with the current country code.

[0115] Example 21. The computing device of example 19, wherein to determine whether the geographic identifier indicates the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, the instructions further cause the one or more processors to: perform a binary search to look up the geographic identifier in a block binary file including information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network, wherein the binary block file includes ranges of contiguous geographic identifiers; and map, based on the binary search, the geographic identifier to a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0116] Example 22. The computing device of example 21, wherein the geographic identifier is from a plurality of geographical identifiers each corresponding to a geographic region from a plurality of geographic regions, and wherein the geographic identifier includes a unique 64- bit identifier that encodes information pertaining to a geographic region from the plurality of geographic regions.

[0117] Example 23. The computing device of example 22, wherein the geographic identifier is based on latitude and longitude coordinates of the computing device.

[0118] Example 24. The computing device of any of examples 13-23, wherein the instructions further cause the one or more processors to: responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether the computing device is geographically located in a geographic location from the plurality of geographic locations associated with a user density less than a threshold; and responsive to determining that the computing device is geographically located in a geographic location associated with a user density less than a threshold: initiate the scan for the one or more authorized and accessible non-terrestrial networks; and connect to the at least one authorized and accessible non-terrestrial network.

[0119] Example 25. A non-transitory computer-readable storage medium encoded with instructions that, when executed by one or more processors, cause one or more processors to: determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks,determine whether a computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks; and responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiate a scan for the one or more authorized and accessible non-terrestrial networks; and connect to at least one authorized and accessible non-terrestrial network.

[0120] Example 26. The non-transitory computer-readable storage medium of example 25, wherein at least one authorized and accessible non-terrestrial network from the one or more authorized and accessible non-terrestrial networks is a satellite communications constellation.

[0121] Example 27. The non-transitory computer-readable storage medium of example 25 or 26, wherein the instructions further cause the one or more processors to: responsive to determining to disable scanning for the one or more authorized and accessible non-terrestrial networks: cease the scan for the one or more authorized and accessible non-terrestrial networks.

[0122] Example 28. The non-transitory computer-readable storage medium of any of examples 25-27, wherein the one or more conditions include: user input indicating a request for connecting to a non-terrestrial network, one or more wireless communications networks being outside of an accessibility range of the computing device for a predetermined amount of time, and a wireless signal strength of the computing device being below a threshold for a predetermined amount of time.

[0123] Example 29. The non-transitory computer-readable storage medium of example 28, wherein the one or more wireless communications networks include one or more of a WI-FI network and a cellular communications network.

[0124] Example 30. The non-transitory computer-readable storage medium of example 28, wherein to determine to enable scanning for the one or more authorized and accessible nonterrestrial networks, the instructions further cause the one or more processors to determine that all of the one or more conditions are satisfied.

[0125] Example 31. The non-transitory computer-readable storage medium of any of examples 25-30, wherein to determine whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, the instructions further cause the one or more processors to: receive one or more of a current country code, a stored country code, and a geographic identifier; determine whether one or more of the current country code, the storedcountry code, and the geographic identifier indicate the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network; and generate a notification indicating whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0126] Example 32. The non-transitory computer-readable storage medium of example 31, wherein the instructions further cause the one or more processors to: send, to a remote computing system, a request for the current country code, the request including an indication of a current geographic location of the computing device; receive, from the remote computing system, the current country code, wherein the current country code is associated with the current geographic location of the computing device; and update the stored country code with the current country code.

[0127] Example 33. The non-transitory computer-readable storage medium of example 31, wherein to determine whether the geographic identifier indicates the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, the instructions further cause the one or more processors to: perform a binary search to look up the geographic identifier in a block binary file including information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network, wherein the binary block file includes ranges of contiguous geographic identifiers; and map, based on the binary search, the geographic identifier to a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0128] Example 34. The non-transitory computer-readable storage medium of example 33, wherein the geographic identifier is from a plurality of geographical identifiers each corresponding to a geographic region from a plurality of geographic regions, and wherein the geographic identifier includes a unique 64-bit identifier that encodes information pertaining to a geographic region from the plurality of geographic regions.

[0129] Example 35. The non-transitory computer-readable storage medium of example 34, wherein the geographic identifier is based on latitude and longitude coordinates of the computing device.

[0130] Example 36. The non-transitory computer-readable storage medium of any of examples 25-35, wherein the instructions further cause the one or more processors to: responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether the computing device is geographically locatedin a geographic location from the plurality of geographic locations associated with a user density less than a threshold; and responsive to determining that the computing device is geographically located in a geographic location associated with a user density less than a threshold: initiate the scan for the one or more authorized and accessible non-terrestrial networks; and connect to the at least one authorized and accessible non-terrestrial network.

[0131] Example 37. A computer program product for enabling scanning for one or more authorized and accessible non-terrestrial networks, the computer program product comprising at least one non-transitory computer-readable medium including one or more instructions that, when executed by at least one processor, cause the at least one processor to: determine whether to enable or disable scanning for one or more authorized and accessible nonterrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks; and responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiate a scan for the one or more authorized and accessible non-terrestrial networks; and connect to at least one authorized and accessible non-terrestrial network.

[0132] Example 38. The computer program product of example 37, wherein at least one authorized and accessible non-terrestrial network from the one or more authorized and accessible non-terrestrial networks is a satellite communications constellation.

[0133] Example 39. The computer program product of example 37 or 38, wherein the instructions further cause the at least one processor to: responsive to determining to disable scanning for the one or more authorized and accessible non-terrestrial networks: cease the scan for the one or more authorized and accessible non-terrestrial networks.

[0134] Example 40. The computer program product of any of examples 37-39, wherein the one or more conditions include: user input indicating a request for connecting to a nonterrestrial network, one or more wireless communications networks being outside of an accessibility range of the computing device for a predetermined amount of time, and a wireless signal strength of the computing device being below a threshold for a predetermined amount of time.

[0135] Example 41. The computer program product of example 40, wherein the one or more wireless communications networks include one or more of a WI-FI network and a cellular communications network.

[0136] Example 42. The computer program product of example 40, wherein to determine to enable scanning for the one or more authorized and accessible non-terrestrial networks, the instructions further cause the at least one processor to determine that all of the one or more conditions are satisfied.

[0137] Example 43. The computer program product of any of examples 37-42, wherein to determine whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, the instructions further cause the at least one processor to: receive one or more of a current country code, a stored country code, and a geographic identifier; determine whether one or more of the current country code, the stored country code, and the geographic identifier indicate the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network; and generate a notification indicating whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0138] Example 44. The computer program product of example 43, wherein the instructions further cause the at least one processor to: send, to a remote computing system, a request for the current country code, the request including an indication of a current geographic location of the computing device; receive, from the remote computing system, the current country code, wherein the current country code is associated with the current geographic location of the computing device; and update the stored country code with the current country code.

[0139] Example 45. The computer program product of example 43, wherein to determine whether the geographic identifier indicates the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, the instructions further cause the at least one processor to: perform a binary search to look up the geographic identifier in a block binary file including information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network, wherein the binary block file includes ranges of contiguous geographic identifiers; and map, based on the binary search, the geographic identifier to a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

[0140] Example 46. The computer program product of example 45, wherein the geographic identifier is from a plurality of geographical identifiers each corresponding to a geographic region from a plurality of geographic regions, and wherein the geographic identifier includes a unique 64-bit identifier that encodes information pertaining to a geographic region from the plurality of geographic regions.

[0141] Example 47. The computer program product of example 46, wherein the geographic identifier is based on latitude and longitude coordinates of the computing device.

[0142] Example 48. The computer program product of any of examples 37-47, wherein the instructions further cause the at least one processor to: responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether the computing device is geographically located in a geographic location from the plurality of geographic locations associated with a user density less than a threshold; and responsive to determining that the computing device is geographically located in a geographic location associated with a user density less than a threshold: initiate the scan for the one or more authorized and accessible non-terrestrial networks; and connect to the at least one authorized and accessible non-terrestrial network.

[0143] Example 49. A method comprising: determining, by a computing device, whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determining, by the computing device, whether the computing device is geographically located in a geographic location from the plurality of geographic locations associated with a user density less than a threshold; and responsive to determining that the computing device is geographically located in a geographic location associated with a user density less than a threshold: initiating, by the computing device, a scan for the one or more authorized and accessible non-terrestrial networks; and connecting, by the computing device, to at least one authorized and accessible non-terrestrial network.

[0144] Example 50. The method of example 49, wherein at least one authorized and accessible non-terrestrial network from the one or more authorized and accessible nonterrestrial networks is a satellite communications constellation.

[0145] Example 51. The method of example 49 or 50, further comprising: responsive to determining to disable scanning for the one or more authorized and accessible non-terrestrial networks: ceasing, by the computing device, the scan for the one or more authorized and accessible non-terrestrial networks.

[0146] Example 52. The method of any of examples 49-51, wherein the one or more conditions include: user input indicating a request for connecting to a non-terrestrial network, one or more wireless communications networks being outside of an accessibility range of the computing device for a predetermined amount of time, and a wireless signal strength of the computing device being below a threshold for a predetermined amount of time.

[0147] Example 53. The method of example 52, wherein the one or more wireless communications networks include one or more of a WI-FI network and a cellular communications network.

[0148] Example 54. The method of example 52, wherein determining to enable scanning for the one or more authorized and accessible non-terrestrial networks is based on all of the one or more conditions being satisfied.

[0149] Example 55. The computing device of example 16, wherein the one or more conditions further include: an emergency call not being connected after a predetermined amount of time, and an emergency call being rejected by the one or more wireless communications networks.

[0150] Example 56: The non-transitory computer-readable storage medium of example 28, wherein the one or more conditions further include: an emergency call not being connected after a predetermined amount of time, and an emergency call being rejected by the one or more wireless communications networks.

[0151] Example 57: The computer program product of example 40, wherein the one or more conditions further include: an emergency call not being connected after a predetermined amount of time, and an emergency call being rejected by the one or more wireless communications networks.

[0152] For processes, apparatuses, and other examples or illustrations described herein, including in any flowcharts or flow diagrams, certain operations, acts, steps, or events included in any of the techniques described herein can be performed in a different sequence, may be added, merged, or left out altogether (e.g., not all described acts or events are necessary for the practice of the techniques). Moreover, in certain examples, operations, acts, steps, or events may be performed concurrently, e.g., through multi-threaded processing, interrupt processing, or multiple processors, rather than sequentially. Certain operations, acts, steps, or events may be performed automatically even if not specifically identified as being performed automatically. Also, certain operations, acts, steps, or events described as being performed automatically may be alternatively not performed automatically, but rather, suchoperations, acts, steps, or events may be, in some examples, performed in response to input or another event.

[0153] This description, in connection with the appended drawings, is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of the various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.

[0154] In accordance with the examples of this disclosure, the term “or” may be interrupted as “and / or” where context does not dictate otherwise. Additionally, while phrases such as “one or more” or “at least one” or the like may have been used in some instances but not others; those instances where such language was not used may be interpreted to have such a meaning implied where context does not dictate otherwise.

[0155] In one or more examples, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored, as one or more instructions or code, on and / or transmitted over a computer- readable medium and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to a tangible medium such as data storage media, or communication media including any medium that facilitates transfer of a computer program from one place to another (e.g., pursuant to a communication protocol). In this manner, computer-readable media generally may correspond to (1) tangible computer-readable storage media, which is non-transitory or (2) a communication medium such as a signal or carrier wave. Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and / or data structures for implementation of the techniques described in this disclosure. A computer program product may include a computer-readable medium.

[0156] By way of example, and not limitation, such computer-readable storage media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remotesource using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. It should be understood, however, that computer- readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but are instead directed to non-transient, tangible storage media. Disk and disc, as used, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.

[0157] Instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. Accordingly, the terms “processor” or “processing circuitry” as used herein may each refer to any of the foregoing structures or any other structure suitable for implementation of the techniques described. In addition, in some examples, the functionality described may be provided within dedicated hardware and / or software modules. Also, the techniques could be fully implemented in one or more circuits or logic elements.

Claims

WHAT IS CLAIMED IS:

1. A method comprising: determining, by a computing device, whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determining, by the computing device, whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible non-terrestrial networks; and responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiating, by the computing device, a scan for the one or more authorized and accessible non-terrestrial networks; and connecting, by the computing device, to at least one authorized and accessible non-terrestrial network.

2. The method of claim 1, wherein at least one authorized and accessible non-terrestrial network from the one or more authorized and accessible non-terrestrial networks is a satellite communications constellation.

3. The method of claims 1 or 2, wherein the one or more conditions include: user input indicating a request for connecting to a non-terrestrial network, one or more wireless communications networks being outside of an accessibility range of the computing device for a predetermined amount of time, and a wireless signal strength of the computing device being below a threshold for a predetermined amount of time.

4. The method of claim 3, wherein determining to enable scanning for the one or more authorized and accessible non-terrestrial networks is based on all of the one or more conditions being satisfied.

5. The method of claim 3, wherein the one or more conditions further include:an emergency call not being connected after a predetermined amount of time, and an emergency call being rejected by the one or more wireless communications networks.

6. The method of any of claims 1-5, wherein determining whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network further comprises: receiving, by the computing device, one or more of a current country code, a stored country code, and a geographic identifier; determining, by the computing device, whether one or more of the current country code, the stored country code, and the geographic identifier indicate the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network; and generating, by the computing device, a notification indicating whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

7. The method of claim 6, wherein determining whether the geographic identifier indicates the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network further comprises: performing, by the computing device, a binary search to look up the geographic identifier in a block binary file including information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network, wherein the binary block file includes ranges of contiguous geographic identifiers; and mapping, by the computing device, and based on the binary search, the geographic identifier to a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

8. The method of claim 6, wherein the geographic identifier is from a plurality of geographical identifiers each corresponding to a geographic region from a plurality of geographic regions, and wherein the geographic identifier includes a unique 64-bit identifier that encodes information pertaining to a geographic region from the plurality of geographic regions.

9. A computing device comprising: one or more processors; and one or more storage devices that store instructions, wherein the instructions, when executed by the one or more processors, cause the one or more processors to: determine whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determine whether the computing device is geographically located in a geographic location from a plurality of geographic locations authorized for connecting to the one or more authorized and accessible nonterrestrial networks; and responsive to determining that the computing device is geographically located in a geographic location authorized for connecting to the one or more authorized and accessible non-terrestrial networks: initiate a scan for the one or more authorized and accessible nonterrestrial networks; and connect to at least one authorized and accessible non-terrestrial network.

10. The computing device of claim 9, wherein the one or more conditions include: user input indicating a request for connecting to a non-terrestrial network, one or more wireless communications networks being outside of an accessibility range of the computing device for a predetermined amount of time, and a wireless signal strength of the computing device being below a threshold for a predetermined amount of time, and wherein to determine to enable scanning for the one or more authorized and accessible non-terrestrial networks, the instructions further cause the one or more processors to determine that all of the one or more conditions are satisfied.

11. The computing device of claim 9, wherein to determine whether the computing device is geographically located in a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network, the instructions further cause the one or more processors to:receive a geographic identifier; perform a binary search to look up the geographic identifier in a block binary file including information indicative of the plurality of geographic locations authorized for connecting to a non-terrestrial network, wherein the binary block file includes ranges of contiguous geographic identifiers; and map, based on the binary search, the geographic identifier to a geographic location from the plurality of geographic locations authorized for connecting to a non-terrestrial network.

12. A computing system comprising means for performing any of the methods of claims 1-8.

13. A non-transitory computer-readable storage medium encoded with instructions that, when executed by one or more processors, cause one or more processors to perform any of the methods of claims 1-8.

14. A computer program product for enabling scanning for one or more authorized and accessible non-terrestrial networks, the computer program product comprising one or more instructions that, when executed by at least one processor, cause the at least one processor to perform any of the methods of claims 1-8.

15. A method compri sing : determining, by a computing device, whether to enable or disable scanning for one or more authorized and accessible non-terrestrial networks based on one or more conditions; responsive to determining to enable scanning for the one or more authorized and accessible non-terrestrial networks, determining, by the computing device, whether the computing device is geographically located in a geographic location from a plurality of geographic locations associated with a user density less than a threshold; and responsive to determining that the computing device is geographically located in a geographic location associated with a user density less than a threshold: initiating, by the computing device, a scan for the one or more authorized and accessible non-terrestrial networks; and connecting, by the computing device, to at least one authorized and accessible non-terrestrial network.

Citation Information

Patent Citations

  • A method of joining a communication network

    WO2023217685A1