Idioma

WifiNetworkSpecifier.Builder.Build Método

Definição

Crie um objeto especificador usado para solicitar uma rede 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

Retornos

Instância de NetworkSpecifier.

Atributos

Comentários

Crie um objeto especificador usado para solicitar uma rede Wi-Fi. O gerado NetworkSpecifier deve ser usado ao NetworkRequest.Builder#setNetworkSpecifier(NetworkSpecifier) compilar o NetworkRequest.

Ao usar com ConnectivityManager#requestNetwork(NetworkRequest, NetworkCallback) ou variantes, observe que alguns dispositivos podem não dar suporte à solicitação de uma rede com todas as combinações de membros especificados. Por exemplo, alguns dispositivos só podem dar suporte à solicitação de redes somente locais (redes sem a NetworkCapabilities#NET_CAPABILITY_INTERNET funcionalidade) ou não dar suporte à solicitação de uma banda específica. No entanto, não há restrições ao usar ConnectivityManager#registerNetworkCallback(NetworkRequest, NetworkCallback) ou outros métodos semelhantes que monitoram, mas não solicitam redes.

Se o dispositivo não puder dar suporte a uma solicitação, o aplicativo receberá uma chamada para NetworkCallback#onUnavailable().

Ao solicitar uma rede somente local, os aplicativos podem definir uma combinação de parâmetros de correspondência de rede: <li> SSID Pattern usando #setSsidPattern(PatternMatcher) OU SSID específico usando #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 correspond the set params. O sistema encontrará o conjunto de redes que correspondem à solicitação e apresentará ao usuário uma caixa de diálogo do sistema que permitirá que o usuário selecione uma rede Wi-Fi específica para se conectar ou negar a solicitação.

Para proteger a privacidade do usuário, algumas limitações à capacidade de correspondência de padrões se aplicam. Em particular, quando o sistema cria uma rede para atender a um NetworkRequest de algum aplicativo, o sistema se reserva o direito de recusar a correspondência do padrão SSID com o SSID real da rede para outros aplicativos que não o aplicativo que solicitou a rede e não enviar esses retornos de chamada mesmo que o SSID corresponda ao padrão solicitado.

Por exemplo: para se conectar a uma rede aberta com um prefixo SSID de "teste" e uma 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 documentação para android.net.wifi.WifiNetworkSpecifier.Builder.build().

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a