当我创建新磁贴(TileManager.AddTileAsync
)时,磁贴未出现在手机上的Microsoft Health应用中。
此外,如果我遍历tiles集合中的所有tile(使用TileManager.GetTilesAsync()
,则新tile是唯一返回的tile - 不会返回随band提供的默认tile。我是否正确假设它是由我创建的应用程序来为这些磁贴提供存储机制和磁贴管理?在哪里存储它?在手机上的隔离存储中?
答案 0 :(得分:2)
假设您拥有最新版本的Microsoft Health应用程序,则添加到Band 的所有自定义Tile应该在应用程序的Manage Tiles页面上列为“第三方平铺”。这确保即使卸载了添加Tile的应用程序,也可以从Band中删除Tiles。当应用程序调用时,IBandTileManager.GetTilesAsync()将仅枚举之前已由该应用程序添加的Tiles 。也就是说,应用程序只会看到自己的Tiles而不会看到其他内容,也不会看到内置的Tiles。
如果应用程序使用固定数量的自定义Tiles,我建议每个自定义Tile使用固定(即静态)Tile ID(而不是在将Tile添加到Band时生成唯一GUID)。这样可以确保应用程序无需使用任何其他存储机制即可识别其每个Tile,而无需考虑与Band配对的电话。
如果应用程序生成动态数量的Tiles,那么显然它必须存储特定Tile(ID)和该Tile所代表的实体之间的映射。