当我创建新磁贴 ( TileManager.AddTileAsync
) 时,该磁贴不会出现在手机上的 Microsoft Health 应用程序中。
此外,如果我循环遍历拼贴集合中的所有拼贴(使用TileManager.GetTilesAsync()
该新拼贴是唯一返回的拼贴 - 不返回带提供的默认拼贴。我是否正确假设它取决于应用程序我创建是为了为这些磁贴提供存储机制和磁贴管理?存储在哪里?在手机上的隔离存储中?
当我创建新磁贴 ( TileManager.AddTileAsync
) 时,该磁贴不会出现在手机上的 Microsoft Health 应用程序中。
此外,如果我循环遍历拼贴集合中的所有拼贴(使用TileManager.GetTilesAsync()
该新拼贴是唯一返回的拼贴 - 不返回带提供的默认拼贴。我是否正确假设它取决于应用程序我创建是为了为这些磁贴提供存储机制和磁贴管理?存储在哪里?在手机上的隔离存储中?
假设您拥有最新版本的 Microsoft Health 应用程序,所有添加到 Band 的自定义磁贴都应在应用程序的“管理磁贴”页面上列为“第三方磁贴”。这确保了即使添加 Tile 的应用程序已被卸载,也可以从 Band 中删除 Tiles。当被应用程序调用时,IBandTileManager.GetTilesAsync() 将仅枚举该应用程序之前添加的 Tiles 。也就是说,应用程序只会看到自己的 Tiles 而看不到其他的,也不会看到内置的 Tiles。
如果应用程序使用固定数量的自定义 Tile,我建议每个自定义 Tile 使用固定(即静态)Tile ID(而不是在将 Tile 添加到 Band 时生成唯一的 GUID)。这确保了应用程序可以在不使用任何其他存储机制的情况下识别其每个 Tiles,并且无论 Band 恰好与哪个手机配对。
如果应用程序生成动态数量的 Tile,那么显然它必须存储特定 Tile (ID) 和由该 Tile 表示的实体之间的映射。