2016-03-19 9 views
2

Erste Anrufverlauf kehrt dauern nur 20 logs

PhoneCallHistoryStore store = await PhoneCallHistoryManager.RequestStoreAsync(PhoneCallHistoryStoreAccessType.AllEntriesLimitedReadWrite); 
PhoneCallHistoryEntryQueryOptions options = new PhoneCallHistoryEntryQueryOptions() { DesiredMedia = PhoneCallHistoryEntryQueryDesiredMedia.All }; 
PhoneCallHistoryEntryReader reader = store.GetEntryReader(options); 
var logs = await reader.ReadBatchAsync(); 

Hier logs.Count ist immer 20.

Wie kann ich alle Protokolle bekommen?

Antwort

2

Ja, es ist das richtige Verhalten. Im Namen der Methode können Sie Batch sehen. Es bedeutet, dass Sie an Anrufen teilnehmen (20 Elemente). Um alle Anrufe zu erhalten, verwenden Sie den folgenden Code:

PhoneCallHistoryStore store = await PhoneCallHistoryManager.RequestStoreAsync(PhoneCallHistoryStoreAccessType.AllEntriesLimitedReadWrite); 
    PhoneCallHistoryEntryQueryOptions options = new PhoneCallHistoryEntryQueryOptions() { DesiredMedia = PhoneCallHistoryEntryQueryDesiredMedia.All }; 
    PhoneCallHistoryEntryReader reader = store.GetEntryReader(options); 
    var phoneCallHistoryEntries = new List<PhoneCallHistoryEntry>(); 

    var hasItems = true; 
    do 
    { 
     var logs = await reader.ReadBatchAsync(); 
     phoneCallHistoryEntries.AddRange(logs); 
     hasItems = logs.Count > 0; 
    } 
    while (hasItems); 
+0

Vielen Dank für die Bestätigung. Ich habe es tatsächlich schon wieder ausprobiert, weiß aber nicht, wie ich wieder das gleiche Ergebnis bekommen habe. Nachdem ich deine Antwort gelesen hatte, versuchte ich es erneut und es funktionierte. – Deepak