【发布时间】: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