Lingua

WifiNetworkSpecifier.Builder.Build Metodo

Definizione

Creare un oggetto identificatore usato per richiedere una rete 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

Valori restituiti

Istanza di NetworkSpecifier.

Attributi

Commenti

Creare un oggetto identificatore usato per richiedere una rete Wi-Fi. L'oggetto generato NetworkSpecifier deve essere usato in durante NetworkRequest.Builder#setNetworkSpecifier(NetworkSpecifier) la compilazione di NetworkRequest.

Quando si usano con ConnectivityManager#requestNetwork(NetworkRequest, NetworkCallback) o varianti, alcuni dispositivi potrebbero non supportare la richiesta di una rete con tutte le combinazioni di membri dell'identificatore. Ad esempio, alcuni dispositivi possono supportare solo la richiesta di reti solo locali (reti senza funzionalità) o non supportano la NetworkCapabilities#NET_CAPABILITY_INTERNET richiesta di una determinata banda. Tuttavia, non esistono restrizioni quando si usano ConnectivityManager#registerNetworkCallback(NetworkRequest, NetworkCallback) o altri metodi simili che monitorano ma non richiedono reti.

Se il dispositivo non può supportare una richiesta, l'app riceverà una chiamata a NetworkCallback#onUnavailable().

Quando si richiede una rete solo locale, le app possono impostare una combinazione di parametri di corrispondenza di rete: <li SSID Pattern usando OR SSID specifico usando #setSsidPattern(PatternMatcher)#setSsid(String).> </li AND/OR li BSSID Pattern using OR Specific BSSID using /li to trigger connection to a network that match the set params./li AND/OR li> BSSID Pattern using OR Specific BSSID using<#setBssidPattern(MacAddress, MacAddress)#setBssid(MacAddress)/li> to trigger connection to a network that match the set params.>< Il sistema troverà il set di reti corrispondenti alla richiesta e presenterà all'utente una finestra di dialogo di sistema che consentirà all'utente di selezionare un Wi-Fi rete specifica per connettersi o negare la richiesta.

Per proteggere la privacy degli utenti, si applicano alcune limitazioni alla capacità dei modelli di corrispondenza. In particolare, quando il sistema apre una rete per soddisfare un NetworkRequest da parte di un'app, il sistema si riserva il diritto di rifiutare la corrispondenza del modello SSID al reale SSID della rete per altre app rispetto all'app che ha richiesto la rete e non inviare tali callback anche se il SSID corrisponde al modello richiesto.

Ad esempio: per connettersi a una rete aperta con un prefisso SSID "test" e un OUI BSSID di "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);
            }

per android.net.wifi.WifiNetworkSpecifier.Builder.build().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a