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
Utilizzare gRPC su App Service di Azure
Recuperare l'ultima versione di una release di GitHub
Creare agenti facilmente con Azure AI Agent Service
Eseguire i worklow di GitHub su runner potenziati
Creare una libreria CSS universale: Nav menu
Utilizzare i variable font nel CSS
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Esporre i propri servizi applicativi con Semantic Kernel e ASP.NET Web API
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Gestione dell'annidamento delle regole dei layer in CSS
Utilizzare l nesting nativo dei CSS
Aggiornare a .NET 9 su Azure App Service