In Windows Phone è da sempre possibile condividere contenuti multimediali attraverso social network o app di terze parti che si sono integrate nel sistema. La condivisione è possibile attraverso l'hub foto, che permette di selezionare una foto e di scegliere il mezzo di condivisione.
Una mancanza presente nelle versioni 7.x, però, è la possibilità di utilizzare questa funzionalità anche in app di terze parti. Pensiamo ad un'app alternativa di visualizzazione foto, locali o remote: è utile permettere all'utente di convidere un'immagine di suo interesse.
In Windows Phone 8 viene in aiuto la classe ShareMediaTask la quale semplicemente permette di prendere un'immagine e farla condividere attraverso il sistema integrato. L'unica cosa che richiede è il percorso al file, che deve obbligatoriamente risiedere nella picture library. Possiamo usare il CameraCaptureTask per ottere un'immagine e l'OriginalFileName come risultato, oppure possiamo utilizzare la classe PictureLibrary per salvare l'immagine e passarla poi al task. In questo script mostriamo questa possibilità.
// Recupero il riferimento all'immagine dalla cartella dell'app
StorageFolder assetsFolder = await Package.Current.InstalledLocation.GetFolderAsync("assets");
StorageFile file = await assetsFolder.GetFileAsync("test.png");
// Apro in lettura il file
using (var r = await file.OpenReadAsync())
{
// Salvo nella picture library
var picture = new MediaLibrary().SavePicture("test.png", r.AsStreamForRead());
// Condivido l'immagine
ShareMediaTask share = new ShareMediaTask();
share.FilePath = picture.GetPath();
share.Show();
}Come possiamo vedere, nell'esempio recuperiamo l'immagine dalla cartella dell'applicazione, ma questa potrebbe anche provenire da internet. Ad ogni modo, ottenuto lo Stream dell'immagine, lo persisistiamo nella picture library. A questo punto abbiamo il percorso del file invocando il metodo GetPath (namespace Microsoft.Xna.Framework.Media.PhoneExtensions), che possiamo poi passare al task di condivisione dell'immagine. Ricordiamo che per scrivere nella media library è necessario richiedere il permesso ID_CAP_MEDIALIB_PHOTO.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Canary release con .NET Aspire
Evitare la compressione degli artefatti in un workflow di GitHub
Breaking the Legacy Barrier: how to Use AI to Modernize Applications
Gestire trasferimenti cloud con Azure Storage Mover
Planning & Specification Driven Development + GitHub Copilot
Integrare il Docker Model Runner in un workflow di GitHub
Utilizzare i named query filter di Entity Framework
Gestione opzioni colonna nella Blazor QuickGrid
Keynote .NET Conference Italia 2025
Stop Building Chatbots. Build a team
Rendere affidabile lo scale out su Azure App Service
Utilizzare noopener e noreferrer nei link HTML


