Connectivity guides
Stay organized with collections
Save and categorize content based on your preferences.
Your app can connect with the outside world using a variety of different
communication technologies, including Wi-Fi, Bluetooth, and USB. The guides
listed below cover adding support for these technologies and for optimizing
your app for connectivity.
Supported technologies
Android supports the following protocols and frameworks for connecting your
device to the outside world.
Guides |
Networks: Overview |
Overview of guides that cover performing various network operations, including connections, management, parsing XML, monitoring, and more. |
Networks: 5G |
Take advantage of 5G networking. |
Networks: VPN |
Develop and test your own virtual private network (VPN) client for an Android-powered device. |
Networks: Wi-Fi scanning |
Get a list of Wi-Fi access points visible from a device. |
Networks: Wi-Fi Direct (P2P) |
Connect supported devices directly to each other without an intermediate access point. |
Networks: Wi-Fi Aware |
Enable devices running Android 8.0 (API level 26) and higher to discover and connect directly to each other without any other type of connectivity between them. Also known as Neighbor Awareness Networking (NAN). |
Networks: Wi-Fi Round-Trip Time (RTT) |
Measure the distance to nearby RTT-capable Wi-Fi access points and peer Wi-Fi Aware devices. |
Networks: Wi-Fi local-only hotspot |
Enable apps on devices connected to a Wi-Fi hotspot to communicate with each other. |
Bluetooth: Overview |
Overview of Android Bluetooth support, including basics and key classes and interfaces. |
Bluetooth: Bluetooth Classic |
Set up baseline Bluetooth connectivity on your app. |
Bluetooth: Bluetooth Low Energy (BLE) |
Transfer small amounts of data between nearby devices and interacting with proximity sensors. |
Bluetooth: BLE Audio |
Receive high fidelity audio without sacrificing battery life, and let users seamlessly switch between different use cases. |
Near Field Communication (NFC) |
NFC is a set of short-range wireless technologies, typically requiring a distance of 4 cm or less to initiate a connection. |
Ranging |
Handle ranging sessions across multiple technologies. |
Telecom |
Manage audio and video calls, including eSIMs and SIM cards. |
Ultra Wideband (UWB) communication |
Measure precise ranging between devices. |
USB |
Use USB accessory and USB host modes to support a variety of USB peripherals and Android USB accessories. |
Optimizations
The following guides can help you optimize your app for connectivity.
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-14 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-05-14 UTC."],[],[],null,["# Connectivity guides\n\nYour app can connect with the outside world using a variety of different\ncommunication technologies, including Wi-Fi, Bluetooth, and USB. The guides\nlisted below cover adding support for these technologies and for optimizing\nyour app for connectivity.\n\nSupported technologies\n----------------------\n\nAndroid supports the following protocols and frameworks for connecting your\ndevice to the outside world.\n\n| Guides ||\n|-----------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Networks: [**Overview**](/develop/connectivity/network-ops) | Overview of guides that cover performing various network operations, including connections, management, parsing XML, monitoring, and more. |\n| Networks: [**5G**](/develop/connectivity/5g/enhance-with-5g) | Take advantage of 5G networking. |\n| Networks: [**VPN**](/develop/connectivity/vpn) | Develop and test your own virtual private network (VPN) client for an Android-powered device. |\n| Networks: [**Wi-Fi scanning**](/develop/connectivity/wifi-scan) | Get a list of Wi-Fi access points visible from a device. |\n| Networks: [**Wi-Fi Direct (P2P)**](/develop/connectivity/wifip2p) | Connect supported devices directly to each other without an intermediate access point. |\n| Networks: [**Wi-Fi Aware**](/develop/connectivity/wifi-aware) | Enable devices running Android 8.0 (API level 26) and higher to discover and connect directly to each other without any other type of connectivity between them. Also known as Neighbor Awareness Networking (NAN). |\n| Networks: [**Wi-Fi Round-Trip Time (RTT)**](/develop/connectivity/wifi-rtt) | Measure the distance to nearby RTT-capable Wi-Fi access points and peer Wi-Fi Aware devices. |\n| Networks: [**Wi-Fi local-only hotspot**](/develop/connectivity/localonlyhotspot) | Enable apps on devices connected to a Wi-Fi hotspot to communicate with each other. |\n| Bluetooth: [**Overview**](/develop/connectivity/bluetooth) | Overview of Android Bluetooth support, including basics and key classes and interfaces. |\n| Bluetooth: [**Bluetooth Classic**](/develop/connectivity/bluetooth/setup) | Set up baseline Bluetooth connectivity on your app. |\n| Bluetooth: [**Bluetooth Low Energy (BLE)**](/develop/connectivity/bluetooth/ble/ble-overview) | Transfer small amounts of data between nearby devices and interacting with proximity sensors. |\n| Bluetooth: [**BLE Audio**](/develop/connectivity/bluetooth/ble-audio/overview) | Receive high fidelity audio without sacrificing battery life, and let users seamlessly switch between different use cases. |\n| [**Near Field Communication (NFC)**](/develop/connectivity/nfc) | NFC is a set of short-range wireless technologies, typically requiring a distance of 4 cm or less to initiate a connection. |\n| [**Ranging**](/develop/connectivity/ranging) | Handle ranging sessions across multiple technologies. |\n| [**Telecom**](/develop/connectivity/telecom) | Manage audio and video calls, including eSIMs and SIM cards. |\n| [**Ultra Wideband (UWB) communication**](/develop/connectivity/uwb) | Measure precise ranging between devices. |\n| [**USB**](/develop/connectivity/usb) | Use USB accessory and USB host modes to support a variety of USB peripherals and Android USB accessories. |\n\nOptimizations\n-------------\n\nThe following guides can help you optimize your app for connectivity.\n\n| Guides ||\n|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|\n| [Reduce network battery drainage](/develop/connectivity/preserving-battery) | Learn about strategies for preserving battery, user experience, and system health. |\n| [Reduce latency and increase network throughput](/develop/connectivity/cronet) | Learn how to use Cronet, a library derived from the Chromium network stack, to reduce latency and increase throughput of network requests. |"]]