2016-10-18 4 views
0

私のアプリからロック画面の背景を設定しようとしています。私は次のコードを使用しています:UWP設定のロック画面が動作しない

var cachedPhotos = (await Photos.GetCachedPhotosAsync()).ToList(); // Get a list of Photo objects ({ "id": "12345.jpg", "url": "http://me.com/12345.jpg" }. 
var newPhotos = (await Photos.GetAllPhotosAsync()).ToList(); // Ditto above comment. 
var newPhotosList = ListHelpers.Merge(cachedPhotos, newPhotos); // Merge the two lists. 
await Photos.CachePhotosAsync(newPhotosList); // Create a JSON file with a list of Photo objects. Also download each photo into the "photo_cache" folder. 
var index = _random.Next(0, newPhotosList.Count - 1); 
var photo = newPhotosList[index]; 

var file = await StorageFile.GetFileFromPathAsync($"{ApplicationData.Current.LocalCacheFolder.Path}\\photo_cache\\{photo.Id}"); 

if (await UserProfilePersonalizationSettings.Current.TrySetLockScreenImageAsync(file)) 
    Debug.WriteLine("Wallpaper set!"); 
else 
    Debug.WriteLine("Wallpaper failed to set..."); 

写真は存在し、ファイルエクスプローラで見ると有効です。私のC#はStorageFileを正しく取得しています。しかし、私がTrySetLockScreenImageAsyncを実行するたびに、それはfalseを返します。 (のみはを返しますが、Exceptionなどではありません。実際に問題が何であるかはわかりません)。私はhereというものを使用していますが、動作させることができません。私が行方不明になっているこの部分がありますか?

+0

あなたが提供したのと同じリンクに、最初に 'UserProfilePersonalizationSettings.IsSupported()'をチェックする必要があると言われています。本当ですか? – AVK

+0

@AVKNaiduはい、それは本当です。私が投稿したものはすべて、その条件をチェックする 'if'ステートメントにラップされています。 – RareNCool

+1

奇妙な。あなたの 'photo_cache'がなければ、私はそれを私の携帯電話で試したので、それは完全に動作します。 – AVK

答えて

1

私はStorageFileCopyAsyncを実行してLocalFolderにコピーしてから、新しくコピーしたファイルを使用する必要があると思われます。どうやら、それはLocalCacheFolderから来るファイルが好きではありません。

関連する問題