This how to guide will help you setup a peer to peer connection between two Android devices using WiFi technology
Make your home smarter than the average home
Make your life smarter, simpler, and more convenient with IoT enabled TVs, speakers, fans, bulbs, locks and more.
Click here to know more
Android* applications may require a peer-to-peer connection between two or more Android* devices without a Wi-Fi access point or Internet access. Two examples of this are file sharing applications and multiplayer games.
This functionality can be implemented using NFC, Bluetooth or Wi-Fi Peer-to-Peer technologies. The preferred technology in any specific case depends upon the required distance, connection speed, power consumption and unique technology features.
Wi-Fi Peer-to-Peer technology will be reviewed in this article. Wi-Fi Peer-to-Peer (P2P) allows Android 4.0 or later devices with the appropriate hardware to connect to each other via Wi-Fi without an access point. Android Wi-Fi P2P framework complies with the Wi-Fi Direct standard. Wi-Fi Direct generally provides more speed and distance, but requires more power than Bluetooth connection.
This article will highlight the basic steps to setup the socket connection between two Android devices.
To be able to use Wi-Fi P2P, an application must correctly set a minimum SDK version to 14 and request the following permissions in AndroidManifest.xml file:
Application should call
initialize() method of
WifiP2pManager object to register the application with the Wi-Fi P2P framework. This method must be called before any Wi-Fi P2P operations.
Application should create and register a broadcast receiver for the following Wi-Fi P2P intents:
After these steps an application will be able to call Wi-Fi P2P methods in WifiP2pManager object and receive Wi-Fi P2P intents. Most of WifiP2pManager methods are asynchronous so the developer need to provide the listener to each method call to obtain the status and the result.
To discover available Wi-Fi P2P devices, call the
discoverPeers() method of
WifiP2pManager object. The discover process will continue until the device starts the Wi-Fi P2P connection or the
stopPeerDiscovery method will be called.
When the application receives the
WIFI_P2P_PEERS_CHANGED_ACTION intent, a list of discovered peers can be obtained using the
requestPeers() method of WifiP2pManager object.
To connect to the specific device from the fetched peers list, prepare the
WifiP2pConfig object with the completed
deviceAddress field and call the
connect() method of WifiP2pManager object.
After the successful connect, obtain the device IP address by calling
requestConnectInfo() method of
After that, create a Socket and ServerSocket objects using the IP address. Perform communications using a standard socket interface.
Below is a diagram of method calls and received intents to prepare a connection for a Wi-Fi P2P device:
These steps are the minimum requirement to create a Wi-Fi P2P connection between two Android devices. An application should implement handlers for all Wi-Fi P2P intents and listeners to adequately react to different events such as connection loss or disabling Wi-Fi. Please refer to Android documentation for more detailed information.
For more such Android resources and tools from Intel, please visit the Intel® Developer Zone
Digit caters to the largest community of tech buyers, users and enthusiasts in India. The all new Digit in continues the legacy of Thinkdigit.com as one of the largest portals in India committed to technology users and buyers. Digit is also one of the most trusted names when it comes to technology reviews and buying advice and is home to the Digit Test Lab, India's most proficient center for testing and reviewing technology products.
We are about leadership-the 9.9 kind! Building a leading media company out of India.And,grooming new leaders for this promising industry.