gpt4 book ai didi

c# - 为什么辅助磁贴的标识符无效?

转载 作者:行者123 更新时间:2023-11-30 22:23:20 24 4
gpt4 key购买 nike

我正在尝试直接使用 XML 更新 Windows 8 辅助磁贴。但是,我不断收到一个异常,即我固定的图 block 的标识符无效。我什至尝试直接从 Windows 中提取标识符,然后将其替换回 CreateTileUpdaterForSecondaryTile,但我仍然遇到相同的异常。这是我的代码:

public async static void UpdateSecondarySectionTile()
{
string tileXmlString = "<tile id='SecondaryTile-7-0'>"
+ "<visual>"
+ "<binding template='TileWideImage'>"
+ "<image id='1' src='" + imageSource + "' alt='alt text'/>"
+ "</binding>"
+ "</visual>"
+ "</tile>";

// create a DOM
Windows.Data.Xml.Dom.XmlDocument tileDOM = new Windows.Data.Xml.Dom.XmlDocument();
tileDOM.LoadXml(tileXmlString);

System.Collections.Generic.IReadOnlyList<Windows.UI.StartScreen.SecondaryTile> tileList = await Windows.UI.StartScreen.SecondaryTile.FindAllAsync();

foreach (var tile in tileList)
{
string tileId = tile.TileId;
Windows.UI.Notifications.TileNotification tileUpdate = new Windows.UI.Notifications.TileNotification(tileDOM);
try
{
Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForSecondaryTile(tileId).Update(tileUpdate);
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine("message: " + e.Message + ", inner exception: " + e.InnerException + " string: " + e.ToString());
}
}
}

调试行正在输出:

//message: The application identifier provided is invalid.
, inner exception: string: System.Exception: The application identifier provided is invalid.

知道问题出在哪里吗? foreach 循环只执行一次,因为我的构建中只有一个固定的辅助磁贴。 (我还意识到 UpdateSecondarySectionTile 应该将 tileId 作为参数并且每次调用只更新一个图 block ;这只是调试代码。)

我觉得有趣的是,它提示的是application 标识符而不是tile 标识符。另外,我知道如果您运行磁贴更新有时会不起作用 in the simulator ,但我什至在我的本地机器上也遇到了这个问题。

最佳答案

如果辅助磁贴最初是在模拟器中固定的,则问题中引用的异常(“提供的应用程序标识符无效”)可以由模拟器外部的 CreateTileUpdaterForSecondaryTile 方法抛出。要解决此问题,请取消固定辅助磁贴并在模拟器外部重新固定它。

正如问题作者所指出的,模拟器不支持磁贴更新 API(以及其他与推送通知相关的 API)。在这种情况下,辅助磁贴固定不会在模拟器外部持久化。

关于c# - 为什么辅助磁贴的标识符无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13433896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com