WifiAwareNetworkSpecifier.Builder
public
static
final
class
WifiAwareNetworkSpecifier.Builder
extends Object
| java.lang.Object | |
| ↳ | android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder |
A builder class for a Wi-Fi Aware network specifier to set up an Aware connection with a peer.
Summary
Public constructors | |
|---|---|
Builder(DiscoverySession discoverySession, PeerHandle peerHandle)
Create a builder for |
|
Builder(PublishDiscoverySession publishDiscoverySession)
Create a builder for |
|
Public methods | |
|---|---|
WifiAwareNetworkSpecifier
|
build()
Create a |
WifiAwareNetworkSpecifier.Builder
|
setChannelFrequencyMhz(int channelInMhz, boolean required)
Configure the Channel frequency for the Wi-Fi Aware connection being requested. |
WifiAwareNetworkSpecifier.Builder
|
setDataPathSecurityConfig(WifiAwareDataPathSecurityConfig securityConfig)
Configure security config for the Wi-Fi Aware connection being requested. |
WifiAwareNetworkSpecifier.Builder
|
setPmk(byte[] pmk)
Configure the PMK for the Wi-Fi Aware connection being requested. |
WifiAwareNetworkSpecifier.Builder
|
setPort(int port)
Configure the port number which will be used to create a connection over this link. |
WifiAwareNetworkSpecifier.Builder
|
setPskPassphrase(String pskPassphrase)
Configure the PSK Passphrase for the Wi-Fi Aware connection being requested. |
WifiAwareNetworkSpecifier.Builder
|
setTransportProtocol(int transportProtocol)
Configure the transport protocol which will be used to create a connection over this link. |
Inherited methods | |
|---|---|
Public constructors
Builder
public Builder (DiscoverySession discoverySession, PeerHandle peerHandle)
Create a builder for WifiAwareNetworkSpecifier used in requests to set up a
Wi-Fi Aware connection with a specific peer.
To set up a connection to any peer or to multiple peers use
Builder(android.net.wifi.aware.PublishDiscoverySession).
| Parameters | |
|---|---|
discoverySession |
DiscoverySession: A Wi-Fi Aware discovery session in whose context the connection
is created.
This value cannot be null. |
peerHandle |
PeerHandle: The handle of the peer to which the Wi-Fi Aware connection is
requested. The peer is discovered through Wi-Fi Aware discovery. The
handle can be obtained through
DiscoverySessionCallback.onServiceDiscovered(PeerHandle, byte[], java.util.List)
or
DiscoverySessionCallback.onMessageReceived(PeerHandle, byte[]).
This value cannot be null. |
Builder
public Builder (PublishDiscoverySession publishDiscoverySession)
Create a builder for WifiAwareNetworkSpecifier used in requests to set up a
Wi-Fi Aware connection. This configuration allows connections to any peers or to
multiple peers (as opposed to only a specific peer with
Builder(android.net.wifi.aware.DiscoverySession, android.net.wifi.aware.PeerHandle)).
Multiple connections can be triggered by this configuration and using a single request
via ConnectivityManager.requestNetwork(NetworkRequest, ConnectivityManager.NetworkCallback)
and similar methods. Each successful connection will be signaled via the standard
Connectivity Manager mechanisms -
ConnectivityManager.NetworkCallback.onAvailable(Network).
Calling ConnectivityManager.unregisterNetworkCallback(ConnectivityManager.NetworkCallback)
will terminate all connections.
| Parameters | |
|---|---|
publishDiscoverySession |
PublishDiscoverySession: This value cannot be null. |
Public methods
build
public WifiAwareNetworkSpecifier build ()
Create a NetworkRequest.Builder.setNetworkSpecifier(NetworkSpecifier)
for a WiFi Aware connection (link) to the specified peer. The
NetworkRequest.Builder.addTransportType(int) should be set to
NetworkCapabilities.TRANSPORT_WIFI_AWARE.
The default builder constructor will initialize a NetworkSpecifier which requests an
open (non-encrypted) link. To request an encrypted link use the
setPskPassphrase(java.lang.String) or setPmk(byte[]) builder methods.
| Returns | |
|---|---|
WifiAwareNetworkSpecifier |
A NetworkSpecifier to be used to construct
NetworkRequest.Builder.setNetworkSpecifier(NetworkSpecifier) to pass
to ConnectivityManager.requestNetwork(android.net.NetworkRequest, android.net.ConnectivityManager.NetworkCallback)
[or other varieties of that API].
This value cannot be null. |
setChannelFrequencyMhz
public WifiAwareNetworkSpecifier.Builder setChannelFrequencyMhz (int channelInMhz, boolean required)
Configure the Channel frequency for the Wi-Fi Aware connection being requested. This
method is optional - if not called, then channelInMhz to use will be decided by firmware.
Only use this when WifiAwareManager.isSetChannelOnDataPathSupported() is true,
otherwise the set channelInMhz will be ignored.
| Parameters | |
|---|---|
channelInMhz |
int: Channel frequency in Mhz.
Value is 0 or greater |
required |
boolean: If set to true, Channel request is specified and must be respected.
If the firmware cannot honor the request then the data-path request
is rejected. Otherwise, requested channelInMhz is a recommendation and
may be overridden by the firmware. |
| Returns | |
|---|---|
WifiAwareNetworkSpecifier.Builder |
the current Builder builder, enabling chaining of builder methods.
This value cannot be null. |
setDataPathSecurityConfig
public WifiAwareNetworkSpecifier.Builder setDataPathSecurityConfig (WifiAwareDataPathSecurityConfig securityConfig)
Configure security config for the Wi-Fi Aware connection being requested. This method
is optional - if not called, then an Open (unencrypted) connection will be created.
Note: this method is the superset of the setPmk(byte[]) and
setPskPassphrase(java.lang.String).
| Parameters | |
|---|---|
securityConfig |
WifiAwareDataPathSecurityConfig: The (optional) security config to be used to encrypt the link.
This value cannot be null. |
| Returns | |
|---|---|
WifiAwareNetworkSpecifier.Builder |
the current Builder builder, enabling chaining of builder
methods.
This value cannot be null. |
setPmk
public WifiAwareNetworkSpecifier.Builder setPmk (byte[] pmk)
Configure the PMK for the Wi-Fi Aware connection being requested. This method
is optional - if not called, then an Open (unencrypted) connection will be created.
Note: Use
setDataPathSecurityConfig(android.net.wifi.aware.WifiAwareDataPathSecurityConfig) to avoid
interoperability issues when devices support different cipher suites by explicitly
specifying a cipher suite as opposed to relying on a default cipher suite.
| Parameters | |
|---|---|
pmk |
byte: A PMK (pairwise master key, see IEEE 802.11i) specifying the key to use for
encrypting the data-path. Use the setPskPassphrase(java.lang.String) to
specify a Passphrase.
This value cannot be null. |
| Returns | |
|---|---|
WifiAwareNetworkSpecifier.Builder |
the current Builder builder, enabling chaining of builder
methods.
This value cannot be null. |
setPort
public WifiAwareNetworkSpecifier.Builder setPort (int port)
Configure the port number which will be used to create a connection over this link. This
configuration should only be done on the server device, e.g. the device creating the
ServerSocket.
Notes:
- The server device must be the Publisher device!
- The port information can only be specified on secure links, specified using
setDataPathSecurityConfig(android.net.wifi.aware.WifiAwareDataPathSecurityConfig)
| Parameters | |
|---|---|
port |
int: A positive integer indicating the port to be used for communication.
Value is between 0 and 65535 inclusive |
| Returns | |
|---|---|
WifiAwareNetworkSpecifier.Builder |
the current Builder builder, enabling chaining of builder
methods.
This value cannot be null. |
setPskPassphrase
public WifiAwareNetworkSpecifier.Builder setPskPassphrase (String pskPassphrase)
Configure the PSK Passphrase for the Wi-Fi Aware connection being requested. This method
is optional - if not called, then an Open (unencrypted) connection will be created.
Note: Use
setDataPathSecurityConfig(android.net.wifi.aware.WifiAwareDataPathSecurityConfig) to avoid
interoperability issues when devices support different cipher suites by explicitly
specifying a cipher suite as opposed to relying on a default cipher suite.
WifiAwareDataPathSecurityConfig.Builder.Builder(int)
| Parameters | |
|---|---|
pskPassphrase |
String: The (optional) passphrase to be used to encrypt the link. Use the
setPmk(byte[]) to specify a PMK.
This value cannot be null. |
| Returns | |
|---|---|
WifiAwareNetworkSpecifier.Builder |
the current Builder builder, enabling chaining of builder
methods.
This value cannot be null. |
setTransportProtocol
public WifiAwareNetworkSpecifier.Builder setTransportProtocol (int transportProtocol)
Configure the transport protocol which will be used to create a connection over this
link. This configuration should only be done on the server device, e.g. the device
creating the ServerSocket for TCP.
Notes:
- The server device must be the Publisher device!
- The transport protocol information can only be specified on secure links,
specified using
setDataPathSecurityConfig(android.net.wifi.aware.WifiAwareDataPathSecurityConfig).
| Parameters | |
|---|---|
transportProtocol |
int: The transport protocol to be used for communication.
Value is between 0 and 255 inclusive |
| Returns | |
|---|---|
WifiAwareNetworkSpecifier.Builder |
the current Builder builder, enabling chaining of builder
methods.
This value cannot be null. |