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 i command service nei test con .NET Aspire
Gestione delle scrollbar dinamiche in HTML e CSS
Gestione delle issue type con GitHub
Creare una file based app con C#
Le cron expression di un workflow di GitHub
Centralizzare gli endpoint AI Foundry con Azure API Management
Migrare applicazioni legacy nel cloud con Azure App Service Managed Instance
Ottimizzare i costi con Smart tier in Azure Blob Storage
Utilizzare i named query filter di Entity Framework
Importare repository da Bitbucket a GitHub Enterprise Cloud
Mischiare codice server side e client side in una query LINQ con Entity Framework
Esporre tool MCP con Azure Functions


