Lenguaje

WifiNetworkSpecifier.Builder.Build Método

Definición

Cree un objeto de especificador usado para solicitar una red Wi-Fi.

[Android.Runtime.Register("build", "()Landroid/net/wifi/WifiNetworkSpecifier;", "", ApiSince=29)]
public Android.Net.Wifi.WifiNetworkSpecifier Build();
[<Android.Runtime.Register("build", "()Landroid/net/wifi/WifiNetworkSpecifier;", "", ApiSince=29)>]
member this.Build : unit -> Android.Net.Wifi.WifiNetworkSpecifier

Devoluciones

Instancia de NetworkSpecifier.

Atributos

Comentarios

Cree un objeto de especificador usado para solicitar una red Wi-Fi. El elemento generado NetworkSpecifier debe usarse en NetworkRequest.Builder#setNetworkSpecifier(NetworkSpecifier) al compilar .NetworkRequest

Al usar con ConnectivityManager#requestNetwork(NetworkRequest, NetworkCallback) o variantes, tenga en cuenta que es posible que algunos dispositivos no admitan la solicitud de una red con todas las combinaciones de miembros del especificador. Por ejemplo, algunos dispositivos solo pueden admitir la solicitud de redes locales (redes sin la NetworkCapabilities#NET_CAPABILITY_INTERNET funcionalidad) o no admiten la solicitud de una banda determinada. Sin embargo, no hay restricciones al usar ConnectivityManager#registerNetworkCallback(NetworkRequest, NetworkCallback) u otros métodos similares que supervisan pero no solicitan redes.

Si el dispositivo no puede admitir una solicitud, la aplicación recibirá una llamada a NetworkCallback#onUnavailable().

Al solicitar una red solo local, las aplicaciones pueden establecer una combinación de parámetros de coincidencia de red: <li> SSID Pattern mediante #setSsidPattern(PatternMatcher) OR Specific SSID mediante #setSsid(String). </li> AND/OR <li> BSSID Pattern using #setBssidPattern(MacAddress, MacAddress) OR Specific BSSID using #setBssid(MacAddress)</li> to trigger connection to a network that matches the set params. El sistema encontrará el conjunto de redes que coinciden con la solicitud y presentará al usuario un cuadro de diálogo del sistema que permitirá al usuario seleccionar una red Wi-Fi específica para conectarse o denegar la solicitud.

Para proteger la privacidad del usuario, se aplican algunas limitaciones a la capacidad de buscar coincidencias de patrones. En concreto, cuando el sistema abre una red para satisfacer desde NetworkRequest alguna aplicación, el sistema se reserva el derecho de rechazar la coincidencia del patrón SSID con el SSID real de la red para otras aplicaciones que no sean la aplicación que solicitó la red y no enviar esas devoluciones de llamada incluso si el SSID coincide con el patrón solicitado.

Por ejemplo: Para conectarse a una red abierta con un prefijo SSID de "test" y un OUI BSSID de "10:03:23":

{@code
            final NetworkSpecifier specifier =
                 new Builder()
                 .setSsidPattern(new PatternMatcher("test", PatternMatcher.PATTERN_PREFIX))
                 .setBssidPattern(MacAddress.fromString("10:03:23:00:00:00"),
                                  MacAddress.fromString("ff:ff:ff:00:00:00"))
                 .build()
            final NetworkRequest request =
                 new NetworkRequest.Builder()
                 .addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
                 .removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
                 .setNetworkSpecifier(specifier)
                 .build();
            final ConnectivityManager connectivityManager =
                 context.getSystemService(Context.CONNECTIVITY_SERVICE);
            final NetworkCallback networkCallback = new NetworkCallback() {
                 ...
                 {@literal @}Override
                 void onAvailable(...) {}
                 // etc.
            };
            connectivityManager.requestNetwork(request, networkCallback);
            }

Java documentación para android.net.wifi.WifiNetworkSpecifier.Builder.build().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a