TryWallpaperImageAsync方法始终返回false并且不设置壁纸。如果您查看此问题:TrySetWallpaperImageAsync() always returns false,您会看到他们的修复程序是将图像重定位到应用程序的本地文件夹。我在这做,但由于某种原因我的壁纸仍然没有改变。什么可能导致此方法失败?
string name = "wallpaper.jpg";
var file = await StorageFile.GetFileFromPathAsync($"{ApplicationData.Current.LocalFolder.Path}\\{name}");
var success = await SetWallpaperAsync(file);
async Task<bool> SetWallpaperAsync(StorageFile fileItem)
{
bool success = false;
if (UserProfilePersonalizationSettings.IsSupported())
{
UserProfilePersonalizationSettings profileSettings = UserProfilePersonalizationSettings.Current;
success = await profileSettings.TrySetLockScreenImageAsync(fileItem);
}
return success;
}
答案 0 :(得分:1)
在处理重复的文件名时,有一个documented limitation的API。
如果您尝试设置为壁纸的文件与当前壁纸的名称相同,系统将忽略该请求并禁止操作(返回false
)。
设置壁纸时应始终使用唯一的文件名,以确保设置正确。