Windows 10 ha portato con sé nuove API per WinRT: alcune di queste ci permettono di "accedere" alla scheda di rete, per fare la scansione delle reti WiFi disponibili e, in un secondo momento, effettuare una connessione ad una rete predeterminata.
La prima cosa che dobbiamo fare è richiedere l'autorizzazione:
var access = await WiFiAdapter.RequestAccessAsync();
Dobbiamo dichiarare questa capability attraverso il file di manifest:
<Capabilities> <DeviceCapability Name="wiFiControl" /> </Capabilities>
A questo punto, dobbiamo controllare se il consenso è stato dato dall'utente, quindi effettuiamo una scansione per recuperare tutti i WiFiAdapter presenti sul device:
if (access == WiFiAccessStatus.Allowed) { var adapters = await DeviceInformation.FindAllAsync(WiFiAdapter.GetDeviceSelector()); if (adapters.Count > 0) { // adattatori WiFi trovati } }
Una volta verificato questo e verificato che ci sia almeno un adattatore disponibile. Recuperiamo la scheda che ci interessa e facciamo una scansione delle reti disponibili:
var adapter = await WiFiAdapter.FromIdAsync(adapters[0].Id); await adapter.ScanAsync();
Dopo aver effettuato la scansione otterremo un elenco delle reti disponibili: dobbiamo selezionarne una (in questo caso la prima), recuperare l'SSID e, infine, connettersi:
var network = adapter.NetworkReport.AvailableNetworks[0]; var ssid = network.Ssid; var connectionResult = await adapter.ConnectAsync(network, WiFiReconnectionKind.Automatic);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
.NET Conference Italia 2023
Utilizzare i primary constructor in C#
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Utilizzare le collection expression in C#
Disabilitare automaticamente un workflow di GitHub
Effettuare chiamate con versioning da Blazor ad ASP.NET Core
Implementare il throttling in ASP.NET Core
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Usare Refit e Polly in Blazor per creare client affidabili e fortemente tipizzati
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Installare le Web App site extension tramite una pipeline di Azure DevOps
Usare una container image come runner di GitHub Actions