我正在尝试使用SubscribeToBackgroundTileEventsAsync在后台订阅tile事件。问题是它通常不起作用(有时它会起作用)。我将观察者添加到我的应用清单中。
我得到的错误是“抛出异常:'Microsoft.Band.BandException'”,并显示消息“响应状态不是磁贴所有者”。
我使用相同的Guid来固定磁贴并订阅背景事件,所以我看不出有什么问题。
我的代码:
if (await client.TileManager.AddTileAsync(myTile))
{
await client.SubscribeToBackgroundTileEventsAsync(myTile.TileId);
Debug.WriteLine("ok");
}
清单
<Extensions>
<uap:Extension Category="windows.appService" EntryPoint="BandBackground.MyTileEventHandler">
<uap:AppService Name="com.microsoft.band.observer" />
</uap:Extension>
</Extensions>
答案 0 :(得分:1)
&#34;不是瓷砖所有者&#34; error表示存在一个具有不同PackageFamilyName的应用程序,该应用程序当前已从myTile.TileId订阅了事件。最有可能的是,其他应用程序是您之前安装的应用程序,而您的应用程序正在为myTile.TileId使用常量。
如果是这样,请在安装和订阅之前尝试为应用程序的TileId生成随机Guid(而不是常量)。或者,您可以在卸载/更换应用之前取消订阅背景图块事件。