【问题标题】:Retrieve last call history entry in UWP检索 UWP 中的最后通话记录条目
【发布时间】:2017-04-10 03:26:21
【问题描述】:

我想检索 Windows 10 移动应用 (UWP) 中的最后一个通话记录条目,我可以使用如下所示的高成本方法来完成。

PhoneCallHistoryStore phoneCallHistoryStore = await PhoneCallHistoryManager.RequestStoreAsync(PhoneCallHistoryStoreAccessType.AllEntriesLimitedReadWrite);
PhoneCallHistoryEntryReader phoneCallHistoryEntryReader = phoneCallHistoryStore.GetEntryReader();
IReadOnlyList<PhoneCallHistoryEntry> phoneCallHistoryEntries = await phoneCallHistoryEntryReader.ReadBatchAsync();
PhoneCallHistoryEntry lastPhoneCallHistoryEntry = phoneCallHistoryEntries.FirstOrDefault();

正如您在Getting call history returns only last 20 logs 中所了解和描述的那样,当我只需要最后一个呼叫时,每次运行这种方法会检索 20 个呼叫,所以我认为我为此付出了高昂的代价,并且我不必要地检索了 19 个呼叫。

有没有更好的方法?

【问题讨论】:

  • “ITNOA”代表什么?您的性能目标是什么?当前的 API 离实现这些目标还有多远?
  • @PeterTorr-MSFT 感谢您的回复,我认为如果我可以在不获取 20 个通话记录的情况下获得最后通话记录,这比顶级方法要好。我问这个问题是为了找到一种更好的方法来获取通话记录(如果存在)。
  • 我觉得可以直接查询PhoneCallHistoryStore就好了。并应用自定义过滤器来检索准确的通话记录结果,而不是我检索所有通话记录然后过滤它。它导致性能改进。但是这个主题与这个问题没有直接关系。

标签: uwp windows-10-universal windows-10-mobile


【解决方案1】:

一次获取“一批”调用是获取条目的唯一方法。如果您认为该方法太慢,您可以通过反馈中心的“开发者”类别提供反馈。但在您决定它太慢之前,您需要为您的场景定义“足够快”,然后使用分析器根据您的目标测量代码,并验证此 API 导致的缓慢(与其他东西相比)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多