Provides classes to create peer-to-peer (P2P) connections with Wi-Fi Direct.
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. The primary class you need to work with is WifiP2pManager
, which you can acquire by calling getSystemService(WIFI_P2P_SERVICE)
. The WifiP2pManager
includes APIs that allow you to:
initialize()
discoverPeers()
connect()
Several other interfaces and classes are necessary as well, such as:
WifiP2pManager.ActionListener
interface allows you to receive
callbacks when an operation such as discovering peers or connecting to them succeeds or fails.WifiP2pManager.PeerListListener
interface allows you to receive
information about discovered peers. The callback provides a WifiP2pDeviceList
, from which you can retrieve a WifiP2pDevice
object for each device within range and get information such as
the device name, address, device type, the WPS configurations the device supports, and more.WifiP2pManager.GroupInfoListener
interface allows you to
receive information about a P2P group. The callback provides a WifiP2pGroup
object, which provides group information such as the owner, the
network name, and passphrase.WifiP2pManager.ConnectionInfoListener
interface allows you to
receive information about the current connection. The callback provides a WifiP2pInfo
object, which has information such as whether a group has been
formed and who is the group owner.In order to use the Wi-Fi P2P APIs, your app must request the following user permissions:
ACCESS_WIFI_STATE
CHANGE_WIFI_STATE
INTERNET
(although your app doesn’t technically connect
to the Internet, communicating to Wi-Fi Direct peers with standard java sockets requires Internet
permission).For example code, see the Wi-Fi Direct Demo sample application.
Note: Not all Android-powered devices support Wi-Fi
Direct. If your application uses Wi-Fi Direct, declare so with a <uses-feature>
element in the manifest file:
<manifest ...> <uses-feature android:name="android.hardware.wifi.direct" /> ... </manifest>
WifiP2pManager.ActionListener | Interface for callback invocation on an application action |
WifiP2pManager.ChannelListener | Interface for callback invocation when framework channel is lost |
WifiP2pManager.ConnectionInfoListener | Interface for callback invocation when connection info is available |
WifiP2pManager.DnsSdServiceResponseListener | Interface for callback invocation when Bonjour service discovery response is received |
WifiP2pManager.DnsSdTxtRecordListener | Interface for callback invocation when Bonjour TXT record is available for a service |
WifiP2pManager.GroupInfoListener | Interface for callback invocation when group info is available |
WifiP2pManager.PeerListListener | Interface for callback invocation when peer list is available |
WifiP2pManager.ServiceResponseListener | Interface for callback invocation when service discovery response other than Upnp or Bonjour is received |
WifiP2pManager.UpnpServiceResponseListener | Interface for callback invocation when upnp service discovery response is received |
WifiP2pConfig | A class representing a Wi-Fi P2p configuration for setting up a connection |
WifiP2pDevice | A class representing a Wi-Fi p2p device Note that the operations are not thread safe |
WifiP2pDeviceList | A class representing a Wi-Fi P2p device list. |
WifiP2pGroup | A class representing a Wi-Fi P2p group. |
WifiP2pInfo | A class representing connection information about a Wi-Fi p2p group |
WifiP2pManager | This class provides the API for managing Wi-Fi peer-to-peer connectivity. |
WifiP2pManager.Channel | A channel that connects the application to the Wifi p2p framework. |