Sto cercando di impostare un'immagine remota come sfondo del desktop/telefono lockscreen nel mio W10 UWP app:W10 UWP - Imposta immagine come sfondo del desktop remoto/lockscreen
string name = "test_image.jpg";
Uri uri = new Uri("http://www.ucl.ac.uk/news/news-articles/1213/muscle-fibres-heart.jpg");
// download image from uri into temp storagefile
var file = await StorageFile.CreateStreamedFileFromUriAsync(name, uri, RandomAccessStreamReference.CreateFromUri(uri));
// file is readonly, copy to a new location to remove restrictions
var file2 = await file.CopyAsync(KnownFolders.PicturesLibrary);
// test -- WORKS!
//var file3 = await StorageFile.GetFileFromApplicationUriAsync(new Uri("ms-appx:///Assets/Design/1.jpg"));
// try set lockscreen/wallpaper
if (ApiInformation.IsTypePresent("Windows.Phone.UI.Input.HardwareButtons")) // Phone
success = await UserProfilePersonalizationSettings.Current.TrySetLockScreenImageAsync(file2);
else // PC
success = await UserProfilePersonalizationSettings.Current.TrySetWallpaperImageAsync(file2);
file1
non funziona come è di sola lettura, quindi lo copio in una nuova posizione (libreria di immagini) per rimuovere le restrizioni ->file2
.
Nota: file3
lavori, quindi non sono sicuro di quello che sta accadendo - presumo TrySetWallpaperImageAsync/TrySetLockScreenImageAsync
accetta solo msappx
file locali ...
Qualcuno ha qualche idea su arounds di lavoro?
Grazie.
Hai provato a salvare il file di destinazione in ApplicationData.Current.LocalFolder? Apparentemente questi metodi accettano solo file da cartelle specifiche. –
Ah, era così! Grazie. –
Vorrei anche suggerire di verificare se la famiglia di dispositivi è Mobile piuttosto che controllare API, mentre non c'è alcuna differenza in futuro potrebbe non funzionare correttamente a seconda di quali famiglie di dispositivi appaiono. –