Tra le novità interessanti presenti in Windows Phone 8 vi è senza dubbio la possibilità, da parte dell'utente, di dare ad un'applicazione l'autorizzazione a cambiare l'immagine del lock screen. Il sistema fornisce, preinstallato, la possibilità di visualizzare le immagini giornaliere di Bing o di sfogliare automaticamente le proprie immagini. L'utente, però, può installare altre applicazioni che possono implementare questa funzionalità e impostare in qualsiasi momento l'immagine, che dev'essere della dimensione di 768x1280 se supportiamo tutte le risoluzioni, da mostrare nel lock screen.
Per supportare questa caratteristica nella nostra applicazione dobbiamo innanzitutto dichiararlo nel file WMAppManifest.xml, così l'utente potrà selezionarlo all'interno delle impostazioni del lock screen.
<Extensions> <Extension ExtensionName="LockScreen_Background" ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" /> </Extensions>
Configurare l'estensione significa che l'utente può scegliere la nostra applicazione, ma non è detto che l'abbia fatto. Per questo motivo all'interno della nostra applicazione, quando lo riteniamo necessario, per esempio perché l'utente sceglie un'immagine, possiamo esplicitamente chiedere all'utente di autorizzare la nostra applicazione. Lo snippet seguente mostra come possiamo controllare lo stato ed eventualmente chiedere il permesso.
using Windows.Phone.System.UserProfile; // omissis LockScreenRequestResult r = LockScreenRequestResult.Granted; // Richiedo l'accesso se non sono il provider if (!LockScreenManager.IsProvidedByCurrentApplication) { r = await LockScreenManager.RequestAccessAsync(); }
Poiché l'utente può scegliere la nostra applicazione, ma essa non è detto che sia stata eseguita, è opportuno inserire nell'applicazione un'immagine di riferimento che deve avere obbligatoriamente il nome DefaultLockScreen.jpg.
Ottenuto il permesso possiamo in qualsiasi momento utilizzare il metodo SetImageUri della classe LockScreen. Appartiene al nuovo set di API WinRT e richiede un URI locale che sfrutti gli schema ms-appx e ms-appdata; essi permettono di far riferimento ad un file nel pacchetto o nel storage locale dell'applicazione. Questi schema sono gli stessi delle Windows Store app e sono l'evoluzione del isostore che si utilizza in Windows Phone 7.x. Nello snippet seguente è mostrato come impostare l'immagine contenuta nel pacchetto dell'applicazione.
// Imposto l'immagine solo se sono autorizzato if (r == LockScreenRequestResult.Granted) { LockScreen.SetImageUri(new Uri("ms-appx:///Assets/Immagine.jpg"); }
Come possiamo vedere, impostare l'immagine è piuttosto semplice. Avere il permesso dell'utente, inoltre, significa che possiamo cambiare l'immagine da un background task. Se quest'ultima proviene da internet, è sufficiente scaricarla e memorizzarla nello storage attraverso le nuove API di Windows.Storage. Dobbiamo infine considerare, che le immagini non devono necessariamente essere fotografie, ma possono essere anche collage o generate dinamiche dall'applicazione, lato client o server.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Criptare la comunicazione con mTLS in Azure Container Apps
Generare token per autenicarsi sulle API di GitHub
Effettuare lo stream della risposta in ASP.NET Core tramite IAsyncEnumerable
Installare le Web App site extension tramite una pipeline di Azure DevOps
Eseguire attività basate su eventi con Azure Container Jobs
Configurare policy CORS in Azure Container Apps
Gestire undefined e partial nelle reactive forms di Angular
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Limitare le richieste lato server con l'interactive routing di Blazor 8
Utilizzare domini personalizzati gestiti automaticamente con Azure Container Apps
Reactive form tipizzati con FormBuilder in Angular
Creare form tipizzati con Angular