如何从磁贴通知中获取号码



当我得到任何推送消息时,当我得到多个推送消息(所以在任何情况下),这个方法总是显示"1"。

  private void Application_Activated(object sender, ActivatedEventArgs e)
            {
                List<ShellTile> pinnedtiles = ShellTile.ActiveTiles.ToList();
                MessageBox.Show(pinnedtiles.Count().ToString());
            }

我是如何测试的:我启动我的应用程序,比我进入后台,发送一些推送消息,新消息的数量不止一条,比我激活我的应用软件,在消息框中我得到了相同的数字-1(但在Tile图标上我有更多)

当我第一次启动我的应用程序时,在我收到任何推送消息之前,我会得到相同的结果(1)

我做错了什么?

更新:

在这篇文章中,它起作用:

独特的正常启动推送通知Windows Phone 7

更新:没有Count属性:

  MessageBox.Show(ShellTile.ActiveTiles.First().Count.ToString());

更新:有其他方法可以从Tile获得计数吗?

ShellTile不允许您读取值只是为了更新它们(使用update方法)。正如上面评论中有人建议的那样,我会让你的应用程序成为数据源,而不是试图从外壳中读取数据。

我会这样做:

ViewModel-在应用程序退出/卸载时保存到隔离存储:

public int OutstandingNotification{ get; set;}

背景基于通知更新实时互动程序的任务:

tile.Update(new StandardTileData { Count = App.ViewModel.OutstandingNotification}

应用程序加载-从独立存储加载ViewModel并显示值:

MessageBox.Show(App.ViewModel.OutstandingNotification.ToString());

最新更新