【问题标题】:UWP set lock screen image isn't workingUWP 设置锁定屏幕图像不起作用
【发布时间】:2016-10-18 15:49:09
【问题描述】:

我正在尝试从我的应用设置锁屏背景。我正在使用以下代码:

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。 (请注意,它返回 false,而不是 Exception 或任何我能真正看到问题所在的东西。)我使用的正是我找到的 here,但我只是无法让它工作。我还缺少另一部分吗?

【问题讨论】:

  • 在您提供的同一个链接中,它说您需要先检查UserProfilePersonalizationSettings.IsSupported()。是true吗?
  • @AVKNaidu 是的,这是真的。我发布的所有内容都包含在if 语句中,用于检查该条件。
  • 奇怪。因为没有你的photo_cache,我在我的手机上试过了,效果很好。

标签: c# uwp lockscreen


【解决方案1】:

好吧,由于某种奇怪的原因,我似乎必须在StorageFile 上做一个CopyAsync 并将其复制到LocalFolder,然后使用新复制的文件。显然它不喜欢来自LocalCacheFolder 的文件。

【讨论】:

    猜你喜欢
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-04-04
    • 2014-07-20
    • 1970-01-01
    • 2015-03-24
    • 2018-01-19
    • 1970-01-01
    相关资源
    最近更新 更多