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
Gestione degli stili CSS con le regole @layer
Ordine e importanza per @layer in CSS
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Definire stili a livello di libreria in Angular
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Generare un hash con SHA-3 in .NET
C# 12: Cosa c'è di nuovo e interessante
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Creare gruppi di client per Event Grid MQTT
Creazione di componenti personalizzati in React.js con Tailwind CSS
Creare una libreria CSS universale: Clip-path
Cancellare una run di un workflow di GitHub