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
Disabilitare automaticamente un workflow di GitHub
Routing statico e PreRendering in una Blazor Web App
Creare alias per tipi generici e tuple in C#
Definire stili a livello di libreria in Angular
Creare gruppi di client per Event Grid MQTT
Utilizzare Tailwind CSS all'interno di React: installazione
Elencare le container images installate in un cluster di Kubernetes
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Configurare dependabot per aggiornare le dipendenze di terze parti con GitHub Actions
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Sostituire la GitHub Action di login su private registry
Generare file per il download da Blazor WebAssembly
I più letti di oggi
- C# 4
- Spaziatura tra i caratteri in Silverlight 5
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Segui in tempo reale il TechEd 2004
- da oggi è possibile fare login velocemente con LinkedIn e Google. a questi si aggiunge il supporto già attivo per Facebook, Twitter, Microsoft Account, Windows Hello e OpenID, per darvi sempre più possibilità di accedere semplicemente alla nostra community! #aspitalia
- Migrare una service connection a workload identity federation in Azure DevOps
- Evitare postback multipli in un UpdatePanel