Modificare il timezone di un device IoT con la Universal Windows Platform

di Matteo Tumiati, in Windows 10,

Nello script di settimana scorsa abbiamo visto come le estensioni della Universal Windows Platform ci permettano di fare il riavvio di un device IoT facendo target su quella specifica piattaforma. Una volta che il device è stato correttamente riavviato, una delle prime operazioni che dovremo fare per riportarlo ad uno stato consistente sarà quella di aggiornare il timezone del device stesso così che venga sincronizzato, magari lato server.

Come visto nello script precedente, dobbiamo prima di tutto aggiungere l'estensione Windows IoT Extensions for the UWP all'applicazione e includere la capability systemManagement nel file di manifest, quindi possiamo sfruttare la classe TimeZoneSettings per applicare il timzeone corrente:

private async Task ApplyTimeZoneAsync()
{
    if (TimeZoneSettings.CanChangeTimeZone)
    {
        var status = await TimeZoneSettings.AutoUpdateTimeZoneAsync(TimeSpan.FromSeconds(60));

        switch (status)
        {
            case AutoUpdateTimeZoneStatus.Failed:
            case AutoUpdateTimeZoneStatus.TimedOut:
                // qualcosa è andato storto...
                break;

            case AutoUpdateTimeZoneStatus.Attempted:
                // il tentativo è stato recepito dal device, ma non è detto che 
                // il nuovo timezone sia stato applicato correttamente
                break;
        }
    }
}

Nel caso in cui si voglia impostare il timezone su un fuso differente, è sufficiente chiamare l'apposita API:

private void ChangeTimeZone()
{
    if (TimeZoneSettings.CanChangeTimeZone)
    {
        // recupero il primo timezone utile
        var timezoneName = TimeZoneSettings.SupportedTimeZoneDisplayNames.FirstOrDefault();

        // imposto il fuso
        TimeZoneSettings.ChangeTimeZoneByDisplayName(timezoneName);
    }
}

E' sempre importante fare un controllo sulla proprietà CanChangeTimeZone, poiché il metodo che applica il nuovo fuso cercherà di impostarlo seguendo, in quest'ordine, GPS, rete cellulare, Wi-Fi ed indirizzo IP, pertanto, se il device non supporta nessuno di questi meccanismi, potrebbe generare un errore a runtime.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi