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
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Documentare i servizi REST con Swagger e OpenAPI con .NET 9
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Loggare le query più lente con Entity Framework
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Utilizzare DeepSeek R1 con Azure AI
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Migliorare l'organizzazione delle risorse con Azure Policy
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Change tracking e composition in Entity Framework
I più letti di oggi
- Creare un router per Single Page Application con l'evento navigate
- Serializzazione e deserializzazione JSON in JavaScript
- Utilizzare app-shell per rendere un'applicazione Angular più responsiva alla partenza
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!