# Print output for @column tags ?>
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:
attach(android.net.wifi.aware.AttachCallback, android.os.Handler)
.
WifiAwareSession#publish(PublishConfig, DiscoverySessionCallback, Handler)
and
WifiAwareSession#subscribe(SubscribeConfig, DiscoverySessionCallback, Handler)
.
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
.
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 |
int |
WIFI_AWARE_DISCOVERY_LOST_REASON_UNKNOWN
Reason code provided in |
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 | |
---|---|
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"
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:
Constant Value: 0 (0x00000000)
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:
Constant Value: 1 (0x00000001)
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)
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 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 . |
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 . |
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. |
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. |
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). |
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). |
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. |