Android WiFi Direct Example

Hardik Trivedi Android Tutorials August 31, 2012February 21, 2017 1 Minute

Deprecated now. This blog is old now. Also blog is intend to cover only basics of wifi direct technology.

Wi-Fi Direct allows Android 4.0 (API level 14) or later devices with the right hardware to connect directly to each other via Wi-Fi without an intermediate access point. Using these APIs, you can discover and connect to other devices when each device supports Wi-Fi Direct, then communicate over a speedy connection across distances much longer than a Bluetooth connection. This is useful for applications that share data among users, such as a multiplayer game or a photo sharing application.

The WifiP2pManager class provides methods to allow you to interact with the Wi-Fi hardware on your device to do things like discover and connect to peers. The following actions are available:

You can find all set up details http://developer.android.com/guide/topics/connectivity/wifip2p.html

I will try to explain few more things about wi-fi direct.

  • For peer-to-peer data transmission it does not use any kind of traditional home, office or hotspot network.
  • For Security purpose it uses WPA2 encryption protection.
  • It can transfer data at the speed of 2.5 to 3.0 Mbps. (Tested on Galaxy Tab-2 and Nexus 7 Tab)
  • Wi-Fi Direct can operate at up to 100m. Some reference site says 656 feet too.
  • We can also set up group between devices for which hardware support is offered for wifi direct.

Below is the process explained to perform this feature.

  1. Check whether wifi direct is available or not using WifiP2pManager.WIFI_P2P_STATE_ENABLED.
  2. To discover peers that are available to connect to, call discoverPeers() to detect available peers that are in range.
  3. If the discovery process succeeds and detects peers, the system broadcasts the WIFI_P2P_PEERS_CHANGED_ACTION intent, which you can listen for in a broadcast receiver to obtain a list of peers.
  4. When you have figured out the device that you want to connect to after obtaining a list of possible peers, call the connect() method to connect to the device.
  5. To transfer the data it uses Sockets. So combination of ServerSocket and Socket class from network package performs actual sending and receiving of the file.

Find a simple example : WifiDemo.zip

Published by Hardik Trivedi

View all posts by Hardik Trivedi

Published August 31, 2012February 21, 2017