Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
System Windows to idealna platforma dla aplikacji innych firm do integracji kontaktów z najlepszymi osobami. Ta integracja umożliwia użytkownikom interakcję z personami dla różnych doświadczeń użytkowników. System Windows udostępnia teraz aplikacjom WinUI 3, UWP i innym aplikacjom tożsamość pakietu oraz interfejsy API do przechowywania wszystkich kontaktów.
Gdy aplikacje będą przechowywać swoje kontakty w systemie Windows, użytkownicy będą mogli zobaczyć te sugestie kontaktowe w panelu Udostępnianie w systemie Windows, aby bezproblemowo udostępniać swoje najważniejsze kontakty. Aby uzyskać więcej informacji na temat panelu Udostępnianie, zobacz Jak udostępniać pliki w Eksploratorze plików w systemie Windows.
Tworzenie konta UserDataAccount dla kontraktu Osób
Zacznij od utworzenia konta danych użytkownika. Aby utworzyć konto UserDataAccount, konieczne jest użycie aplikacji innych firm z UserDisplayName jako "com.microsoft.peoplecontract".
UserDataAccountStore udas =
await UserDataAccountManager.RequestStoreAsync(UserDataAccountStoreAccessType.AppAccountsReadWrite);
UserDataAccount uda = await udas.CreateAccountAsync("com.microsoft.peoplecontract");
Następnie dodaj "com.microsoft.windows.system" do listy explictReadAccessPackageFamilyNames dla konta. Zapewni to ograniczony dostęp kontaktom zewnętrznym do środowisk korzystania z systemu Windows.
uda.ExplictReadAccessPackageFamilyNames.Add("com.microsoft.windows.system");
await uda.SaveAsync();
Przechowywanie kontaktów
Pierwszym krokiem przechowywania kontaktów jest utworzenie listy kontaktów. W tym celu aplikacje innych firm muszą utworzyć nową listę kontaktów dla elementu UserDataAccount w sklepie Windows ContactStore. Aplikacje mogą zachować domyślny OtherAppReadAccess typ dostępu dla listy kontaktów, ustawiając je tak, aby None uniemożliwiły innym aplikacjom dostęp do tych kontaktów. Aby uzyskać pełną listę dostępnych typów dostępu, zobacz wyliczenie ContactListOtherAppReadAccess .
ContactStore store = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AppContactsReadWrite);
this.contactList = await store.CreateContactListAsync(contactListsName, uda.Id);
contactList.OtherAppReadAccess = ContactListOtherAppReadAccess.None;
await contactList.SaveAsync();
Podczas przechowywania kontaktu aplikacje innych firm muszą zawierać wszystkie istotne informacje wymagane przez środowiska systemu Windows do obsługi kontaktu.
Podczas przechowywania kontaktu wymagane są następujące pola:
FirstNameRemoteIdDisplayPicture
Poniższe pola są polami opcjonalnymi:
LastNamePhonesEmails
Ten fragment kodu pokazuje, jak przechowywać kontakt:
foreach (var appContact in AppContacts)
{
var cont = new Contact
{
FirstName = appContact.FirstName,
LastName = appContact.LastName,
RemoteId = appContact.Id,
SourceDisplayPicture = RandomAccessStreamReference.CreateFromUri(new Uri(appContact.ProfilePicPath)),
Phones = { new ContactPhone { Number = appContact.Phone } }
};
await this.contactList.SaveContactAsync(cont);
}
Uwaga
Element DisplayName dla kontaktu skonstruowano przy użyciu FirstName i LastName. Jeśli nazwisko nie zostanie podane, DisplayName będzie identyczne z ciągiem podanym dla imienia.
Przechowywanie rang dla kontaktów
Możesz utworzyć listę adnotacji dla UserDataAccount elementu , aby przechowywać rangi dla kontaktów. Aplikacje mogą przechowywać rangi dla swoich najważniejszych kontaktów, dodając adnotacje do kontaktów. Te adnotacje są przechowywane jako część listy adnotacji w bazie kontaktów.
ContactAnnotationStore annotationStore = await
ContactManager.RequestAnnotationStoreAsync(ContactAnnotationStoreAccessType.AppAnnotationsReadWrite);
this.contactAnnotationList = await annotationStore.CreateAnnotationListAsync(uda.Id);
Rankingi dla najważniejszych kontaktów można przechowywać przy użyciu adnotacji w kontaktach. Rangi są przechowywane w ramach właściwości ProviderProperties w adnotacji kontaktu. Oprócz rangi aplikacje muszą ustawić SupportedOperations w adnotacji kontaktowej jako Share.
foreach (var appContact in topAppContacts)
{
Contact contact = await list.GetContactFromRemoteIdAsync(topAppContact.RemoteID);
var annotation = new ContactAnnotation
{
ContactId = contact.Id,
SupportedOperations = ContactAnnotationOperations.Share
};
annotation.ProviderProperties.Add("Rank", rank);
await annotationsLst.TrySaveAnnotationAsync(annotation);
}
Aktualizowanie rang kontaktów
Jest to według uznania aplikacji, kiedy należy zaktualizować szeregi kontaktów przechowywanych w systemie Windows. System Windows zaleca regularne aktualizowanie list rankingowych w celu zapewnienia najlepszych wrażeń użytkownika. Zawsze, gdy musisz zaktualizować listę sklasyfikowaną, musisz wykonać kilka kroków.
Usuń element ContactAnnotationList.
Gdy aplikacja ma zaktualizowaną listę najważniejszych kontaktów, można usunąć listę adnotacji, a można utworzyć nową listę adnotacji ze zaktualizowanymi adnotacjami dla najważniejszych kontaktów.
await this.contactAnnotationList.DeleteAsync();Utwórz nowy element
ContactAnnotationList. Wykonaj kroki opisane w sekcji Przechowywanie rang dla kontaktów , aby utworzyć nową listę adnotacji i zapisać rangi dla najważniejszych kontaktów.
Powiązana zawartość
Windows developer