Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Aplikacje z tożsamością pakietu mogą przechowywać swoje kontakty w Windows. Te kontakty mogą być wyświetlane jako sugestie w widżecie Ludzie, Wyszukiwarce systemu Windows i arkuszu udostępniania. W tym artykule pokazano, jak utworzyć konto danych użytkownika, przechowywać kontakty i konfigurować dostęp dla środowisk systemu Windows.
Tworzenie konta UserDataAccount dla kontraktu People
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);
}
Note
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.
Prywatność i zgoda
Dodawaj tylko jawne kontakty
Aplikacja powinna współtworzyć tylko kontakty, które użytkownik jawnie dodał lub autoryzował. Nigdy:
- Prześlij całą książkę adresową
- Automatyczna synchronizacja kontaktów bez zgody użytkownika
- Udostępnianie kontaktów z katalogów firmowych bez jawnego uprawnienia
Poproś o zgodę przed zapisaniem kontaktów w Windows People:
private async Task<bool> RequestContactStoreAccessAsync()
{
// Requesting a writable ContactStore prompts the user for consent.
// Your app must declare the contacts capability in its manifest.
ContactStore store = await ContactManager.RequestStoreAsync(
ContactStoreAccessType.AppContactsReadWrite);
return store != null;
}
Przestrzegaj ustawień prywatności użytkownika
Pozwól użytkownikom:
- Wybieranie kontaktów, które mają być udostępniane Windows
- Zrezygnuj z integracji z Windows People
- Usuwanie kontaktów z Windows w dowolnym momencie
// Provide a setting to disable sync
if (this.ShouldSyncContactsWithWindows)
{
await SyncContactsAsync();
}
else
{
// Clear contacts if the user disables sync
await ClearWindowsContactsAsync();
}