# Print output for @column tags ?>
Developers

- Design
- Develop
- Distribute

Developer Console

## Most visited

## Recently visited

## Results for

Summary: Constants | Methods | Inherited Methods

# WifiAwareManager

`public class WifiAwareManager`
`extends Object` ``

java.lang.Object
↳ | android.net.wifi.aware.WifiAwareManager

This class provides the primary API for managing Wi-Fi Aware operations: discovery and peer-to-peer data connections.

The class provides access to:

- Initialize a Aware cluster (peer-to-peer synchronization). Refer to `attach(android.net.wifi.aware.AttachCallback, android.os.Handler)`.
- Create discovery sessions (publish or subscribe sessions). Refer to `WifiAwareSession#publish(PublishConfig, DiscoverySessionCallback, Handler)` and `WifiAwareSession#subscribe(SubscribeConfig, DiscoverySessionCallback, Handler)`.
- Create a Aware network specifier to be used with `ConnectivityManager#requestNetwork(NetworkRequest, ConnectivityManager.NetworkCallback)` to set-up a Aware connection with a peer. Refer to `WifiAwareNetworkSpecifier.Builder`.

Aware may not be usable when Wi-Fi is disabled (and other conditions). To validate that the functionality is available use the `isAvailable()` function. To track changes in Aware usability register for the `ACTION_WIFI_AWARE_STATE_CHANGED` broadcast. Note that this broadcast is not sticky - you should register for it and then check the above API to avoid a race condition.

An application must use `attach(android.net.wifi.aware.AttachCallback, android.os.Handler)` to initialize a Aware cluster - before making any other Aware operation. Aware cluster membership is a device-wide operation - the API guarantees that the device is in a cluster or joins a Aware cluster (or starts one if none can be found). Information about attach success (or failure) are returned in callbacks of `AttachCallback`. Proceed with Aware discovery or connection setup only after receiving confirmation that Aware attach succeeded - `AttachCallback#onAttached(WifiAwareSession)`. When an application is finished using Aware it must use the `WifiAwareSession#close()` API to indicate to the Aware service that the device may detach from the Aware cluster. The device will actually disable Aware once the last application detaches.

Once a Aware attach is confirmed use the `WifiAwareSession#publish(PublishConfig, DiscoverySessionCallback, Handler)` or `WifiAwareSession#subscribe(SubscribeConfig, DiscoverySessionCallback, Handler)` to create publish or subscribe Aware discovery sessions. Events are called on the provided callback object `DiscoverySessionCallback`. Specifically, the `DiscoverySessionCallback#onPublishStarted(PublishDiscoverySession)` and `DiscoverySessionCallback#onSubscribeStarted( SubscribeDiscoverySession)` return `PublishDiscoverySession` and `SubscribeDiscoverySession` objects respectively on which additional session operations can be performed, e.g. updating the session `PublishDiscoverySession#updatePublish(PublishConfig)` and `SubscribeDiscoverySession#updateSubscribe(SubscribeConfig)`. Sessions can also be used to send messages using the `DiscoverySession#sendMessage(PeerHandle, int, byte[])` APIs. When an application is finished with a discovery session it must terminate it using the `DiscoverySession#close()` API.

Creating connections between Aware devices is managed by the standard `ConnectivityManager#requestNetwork(NetworkRequest, ConnectivityManager.NetworkCallback)`. The `NetworkRequest` object should be constructed with:

- `NetworkRequest.Builder#addTransportType(int)` of `NetworkCapabilities.TRANSPORT_WIFI_AWARE`.
- `NetworkRequest.Builder#setNetworkSpecifier(String)` using `WifiAwareNetworkSpecifier.Builder`.

## Summary

### Constants
`String` | `ACTION_WIFI_AWARE_STATE_CHANGED` Broadcast intent action to indicate that the state of Wi-Fi Aware availability has changed and all active Aware sessions are no longer usable.
`int` | `WIFI_AWARE_DATA_PATH_ROLE_INITIATOR` Connection creation role is that of INITIATOR.
`int` | `WIFI_AWARE_DATA_PATH_ROLE_RESPONDER` Connection creation role is that of RESPONDER.
`int` | `WIFI_AWARE_DISCOVERY_LOST_REASON_PEER_NOT_VISIBLE` Reason code provided in `DiscoverySessionCallback#onServiceLost(PeerHandle, int)` indicating that the service advertised by the peer is no longer visible.
`int` | `WIFI_AWARE_DISCOVERY_LOST_REASON_UNKNOWN` Reason code provided in `DiscoverySessionCallback#onServiceLost(PeerHandle, int)` indicating that the service was lost for unknown reason.

### Public methods
`void` | `attach(AttachCallback attachCallback, Handler handler)` Attach to the Wi-Fi Aware service - enabling the application to create discovery sessions or create connections to peers.
`void` | `attach(AttachCallback attachCallback, IdentityChangedListener identityChangedListener, Handler handler)` Attach to the Wi-Fi Aware service - enabling the application to create discovery sessions or create connections to peers.
`AwareResources` | `getAvailableAwareResources()` Return the available resources of the Wi-Fi aware service: a set of parameters which specify limitations on service usage, e.g the number of data-paths which could be created.
`Characteristics` | `getCharacteristics()` Returns the characteristics of the Wi-Fi Aware interface: a set of parameters which specify limitations on configurations, e.g. the maximum service name length.
`boolean` | `isAvailable()` Returns the current status of Aware API: whether or not Aware is available.
`boolean` | `isDeviceAttached()` Return the current status of the Aware service: whether or not the device is already attached to an Aware cluster.
`boolean` | `isInstantCommunicationModeEnabled()` Return the current status of the Wifi Aware instant communication mode.

### Inherited methods
From class `java.lang.Object`
`Object` | `clone()` Creates and returns a copy of this object.
`boolean` | `equals(Object obj)` Indicates whether some other object is "equal to" this one.
`void` | `finalize()` Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
`final Class<?>` | `getClass()` Returns the runtime class of this `Object`.
`int` | `hashCode()` Returns a hash code value for the object.
`final void` | `notify()` Wakes up a single thread that is waiting on this object's monitor.
`final void` | `notifyAll()` Wakes up all threads that are waiting on this object's monitor.
`String` | `toString()` Returns a string representation of the object.
`final void` | `wait(long timeout, int nanos)` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object, or some other thread interrupts the current thread, or a certain amount of real time has elapsed.
`final void` | `wait(long timeout)` Causes the current thread to wait until either another thread invokes the `notify()` method or the `notifyAll()` method for this object, or a specified amount of time has elapsed.
`final void` | `wait()` Causes the current thread to wait until another thread invokes the `notify()` method or the `notifyAll()` method for this object.

## Constants

### ACTION_WIFI_AWARE_STATE_CHANGED

    public static final String ACTION_WIFI_AWARE_STATE_CHANGED

Broadcast intent action to indicate that the state of Wi-Fi Aware availability has changed and all active Aware sessions are no longer usable. Use the `isAvailable()` to query the current status. This broadcast is not sticky, use the `isAvailable()` API after registering the broadcast to check the current state of Wi-Fi Aware.

Note: The broadcast is only delivered to registered receivers - no manifest registered components will be launched.

Constant Value: "android.net.wifi.aware.action.WIFI_AWARE_STATE_CHANGED"

### WIFI_AWARE_DATA_PATH_ROLE_INITIATOR

    public static final int WIFI_AWARE_DATA_PATH_ROLE_INITIATOR

Connection creation role is that of INITIATOR. Used to create a network specifier string when requesting a Aware network.

See also:

- `WifiAwareSession.createNetworkSpecifierOpen(int, byte[])`
- `WifiAwareSession.createNetworkSpecifierPassphrase(int, byte[], String)`

Constant Value: 0 (0x00000000)

### WIFI_AWARE_DATA_PATH_ROLE_RESPONDER

    public static final int WIFI_AWARE_DATA_PATH_ROLE_RESPONDER

Connection creation role is that of RESPONDER. Used to create a network specifier string when requesting a Aware network.

See also:

- `WifiAwareSession.createNetworkSpecifierOpen(int, byte[])`
- `WifiAwareSession.createNetworkSpecifierPassphrase(int, byte[], String)`

Constant Value: 1 (0x00000001)

### WIFI_AWARE_DISCOVERY_LOST_REASON_PEER_NOT_VISIBLE

    public static final int WIFI_AWARE_DISCOVERY_LOST_REASON_PEER_NOT_VISIBLE

Reason code provided in `DiscoverySessionCallback#onServiceLost(PeerHandle, int)` indicating that the service advertised by the peer is no longer visible. This may be because the peer is out of range or because the peer stopped advertising this service.

Constant Value: 1 (0x00000001)

### WIFI_AWARE_DISCOVERY_LOST_REASON_UNKNOWN

    public static final int WIFI_AWARE_DISCOVERY_LOST_REASON_UNKNOWN

Reason code provided in `DiscoverySessionCallback#onServiceLost(PeerHandle, int)` indicating that the service was lost for unknown reason.

Constant Value: 0 (0x00000000)

## Public methods

### attach

    public void attach (AttachCallback attachCallback,
                    Handler handler)

Attach to the Wi-Fi Aware service - enabling the application to create discovery sessions or create connections to peers. The device will attach to an existing cluster if it can find one or create a new cluster (if it is the first to enable Aware in its vicinity). Results (e.g. successful attach to a cluster) are provided to the `attachCallback` object. An application must call `WifiAwareSession#close()` when done with the Wi-Fi Aware object.

Note: a Aware cluster is a shared resource - if the device is already attached to a cluster then this function will simply indicate success immediately using the same `attachCallback`.

Parameters
`attachCallback` | `AttachCallback`: A callback for attach events, extended from `AttachCallback`. This value cannot be `null`.
`handler` | `Handler`: The Handler on whose thread to execute the callbacks of the `attachCallback` object. If a null is provided then the application's main thread will be used. This value may be `null`.

### attach

    public void attach (AttachCallback attachCallback,
                    IdentityChangedListener identityChangedListener,
                    Handler handler)

Attach to the Wi-Fi Aware service - enabling the application to create discovery sessions or create connections to peers. The device will attach to an existing cluster if it can find one or create a new cluster (if it is the first to enable Aware in its vicinity). Results (e.g. successful attach to a cluster) are provided to the `attachCallback` object. An application must call `WifiAwareSession#close()` when done with the Wi-Fi Aware object.

Note: a Aware cluster is a shared resource - if the device is already attached to a cluster then this function will simply indicate success immediately using the same `attachCallback`.

This version of the API attaches a listener to receive the MAC address of the Aware interface on startup and whenever it is updated (it is randomized at regular intervals for privacy). The application must have the `Manifest.permission.ACCESS_FINE_LOCATION` permission to execute this attach request. Otherwise, use the `attach(android.net.wifi.aware.AttachCallback, android.os.Handler)` version. Note that aside from permission requirements this listener will wake up the host at regular intervals causing higher power consumption, do not use it unless the information is necessary (e.g. for OOB discovery).

Parameters
`attachCallback` | `AttachCallback`: A callback for attach events, extended from `AttachCallback`. This value cannot be `null`.
`identityChangedListener` | `IdentityChangedListener`: A listener for changed identity, extended from `IdentityChangedListener`. This value cannot be `null`.
`handler` | `Handler`: The Handler on whose thread to execute the callbacks of the `attachCallback` and `identityChangedListener` objects. If a null is provided then the application's main thread will be used. This value may be `null`.

### getAvailableAwareResources

    public AwareResources getAvailableAwareResources ()

Return the available resources of the Wi-Fi aware service: a set of parameters which specify limitations on service usage, e.g the number of data-paths which could be created.

May return `null` if the Wi-Fi Aware service is not initialized. Use `attach(android.net.wifi.aware.AttachCallback, android.os.Handler)` or `attach(android.net.wifi.aware.AttachCallback, android.net.wifi.aware.IdentityChangedListener, android.os.Handler)` to initialize the Wi-Fi Aware service.

Returns
`AwareResources` | An object specifying the currently available resource of the Wi-Fi Aware service.

### getCharacteristics

    public Characteristics getCharacteristics ()

Returns the characteristics of the Wi-Fi Aware interface: a set of parameters which specify limitations on configurations, e.g. the maximum service name length.

May return `null` if the Wi-Fi Aware service is not initialized. Use `attach(android.net.wifi.aware.AttachCallback, android.os.Handler)` or `attach(android.net.wifi.aware.AttachCallback, android.net.wifi.aware.IdentityChangedListener, android.os.Handler)` to initialize the Wi-Fi Aware service.

Returns
`Characteristics` | An object specifying configuration limitations of Aware.

### isAvailable

    public boolean isAvailable ()

Returns the current status of Aware API: whether or not Aware is available. To track changes in the state of Aware API register for the `ACTION_WIFI_AWARE_STATE_CHANGED` broadcast.

Returns
`boolean` | A boolean indicating whether the app can use the Aware API at this time (true) or not (false).

### isDeviceAttached

    public boolean isDeviceAttached ()

Return the current status of the Aware service: whether or not the device is already attached to an Aware cluster. To attach to an Aware cluster, please use `attach(android.net.wifi.aware.AttachCallback, android.os.Handler)` or `attach(android.net.wifi.aware.AttachCallback, android.net.wifi.aware.IdentityChangedListener, android.os.Handler)`.

Returns
`boolean` | A boolean indicating whether the device is attached to a cluster at this time (true) or not (false).

### isInstantCommunicationModeEnabled

    public boolean isInstantCommunicationModeEnabled ()

Return the current status of the Wifi Aware instant communication mode. If the device doesn't support this feature, return will always be false.

Returns
`boolean` | true if it is enabled, false otherwise.

See also:

- `Characteristics.isInstantCommunicationModeSupported()`

Full name *
Email address *
Company / developer name
One of your Play Store app URLs *
Which best describes your business:*
Apps
Games
Apps & Games
*
*