Contact Contact Contact Contact Class

Definition

Represents a contact.

public sealed class Contactpublic sealed class ContactPublic NotInheritable Class Contactpublic sealed class Contact
Attributes
Windows 10 requirements
Device family
Windows 10 (introduced v10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduced v1)

Remarks

No matter how you store contact information in your app, you must be able to put that information into a Contact object. This way, other apps that allow users to select contacts can use your app and process the contact information it provides.

For info about how to manage contacts, see Managing contact cards and Managing contact cards .

Examples

This code shows how your app can take an app-specific contact object and use it to create a Contact object. First, here's an example of an object that contains contact information.

    var sampleContacts = [
        {
            firstName: "Kim",
            lastName: "Abercrombie",
            image: "KimAbercrombie.jpg",
            personalEmail: "kim@contoso.com",
            homePhone: "921 555-0187",
            address: {
                full: "123 Main St, Redmond WA, 23456",
                street: "123 Main St",
                city: "Redmond",
                state: "WA",
                zipCode: "23456"
            },
            id: "49b0652e-8f39-48c5-853b-e5e94e6b8a11"
        }
];
function createContactForBasket(sampleContact) {

    // Transfer contact data to a Contact object
    var contact = new Windows.ApplicationModel.Contacts.Contact();
    contact.firstName = sampleContact.firstName;
    contact.lastName = sampleContact.lastName;
    contact.id = sampleContact.id;

    // Add the personal email address to the Contact object’s emails vector
    var personalEmail = new Windows.ApplicationModel.Contacts.ContactEmail();
    personalEmail.address = sampleContact.personalEmail;
    personalEmail.kind = Windows.ApplicationModel.Contacts.ContactEmailKind.personal;
    contact.emails.append(personalEmail);

    // Adds the home phone number to the Contact object’s phones vector
    var homePhone = new Windows.ApplicationModel.Contacts.ContactPhone();
    homePhone.number = sampleContact.homePhone;
    homePhone.kind = Windows.ApplicationModel.Contacts.ContactPhoneKind.home;
    contact.phones.append(homePhone);

    // Adds the address to the Contact object’s addresses vector
    var homeAddress = new Windows.ApplicationModel.Contacts.ContactAddress();
    homeAddress.streetAddress = sampleContact.address.street;
    homeAddress.locality = sampleContact.address.city;
    homeAddress.region = sampleContact.address.state;
    homeAddress.postalCode = sampleContact.address.zipCode;
    homeAddress.kind = Windows.ApplicationModel.Contacts.ContactAddressKind.home;
    contact.addresses.append(homeAddress);

    // Sets the thumbnail for the contact from path
    Windows.ApplicationModel.Package.current.installedLocation.getFileAsync(sampleContact.image).then(
          function (imageFile) {
                 var streamReference = Windows.Storage.Streams.RandomAccessStreamReference.createFromFile(imageFile);
                 contact.thumbnail = randomAccessStreamReference;
          });

    return contact;
}

Constructors

Contact() Contact() Contact() Contact()

Creates a new instance of the Contact class.

public Contact()public New()Public Sub New()public Contact()
Attributes

Properties

Addresses Addresses Addresses Addresses

Gets the contact addresses for a contact.

public IVector<ContactAddress> Addresses { get; }public IVector<ContactAddress> Addresses { get; }Public ReadOnly Property Addresses As IVector<ContactAddress>public IVector<ContactAddress> Addresses { get; }
Value

An array of contact addresses for a contact.

Attributes

AggregateId AggregateId AggregateId AggregateId

If this is a raw contact that is part of an aggregate contact, then this property identifies the parent aggregate.

public string AggregateId { get; }public string AggregateId { get; }Public ReadOnly Property AggregateId As stringpublic string AggregateId { get; }
Value
string string string string

String value that identifies the parent aggregate contact.

Attributes

ConnectedServiceAccounts ConnectedServiceAccounts ConnectedServiceAccounts ConnectedServiceAccounts

Gets the connected service accounts for a contact.

public IVector<ContactConnectedServiceAccount> ConnectedServiceAccounts { get; }public IVector<ContactConnectedServiceAccount> ConnectedServiceAccounts { get; }Public ReadOnly Property ConnectedServiceAccounts As IVector<ContactConnectedServiceAccount>public IVector<ContactConnectedServiceAccount> ConnectedServiceAccounts { get; }
Value

An array of connected service accounts for a contact.

Attributes

ContactListId ContactListId ContactListId ContactListId

Gets a string that identifies the ContactList to which this contact is a member.

public string ContactListId { get; }public string ContactListId { get; }Public ReadOnly Property ContactListId As stringpublic string ContactListId { get; }
Value
string string string string

A string that identifies the ContactList to which this contact is a member.

Attributes

DataSuppliers DataSuppliers DataSuppliers DataSuppliers

Gets the data suppliers for a contact. The maximum string length for each data supplier is 50 characters.

public IVector<string> DataSuppliers { get; }public IVector<string> DataSuppliers { get; }Public ReadOnly Property DataSuppliers As IVector<string>public IVector<string> DataSuppliers { get; }
Value

An array of data suppliers for a contact.

Attributes

DisplayName DisplayName DisplayName DisplayName

Gets the display name for a contact.

Note

You can only access this property from a UI thread.

public string DisplayName { get; }public string DisplayName { get; }Public ReadOnly Property DisplayName As stringpublic string DisplayName { get; }
Value
string string string string

The display name for a contact.

Attributes

Remarks

Windows calculates the DisplayName property by using the values from the FirstName, MiddleName, and LastName properties if any are specified. If these values aren't available, Windows uses the Yomi (phonetic Japanese equivalent) name values (YomiGivenName and YomiFamilyName ). The calculation for DisplayName takes into account different locale hints such as script of the text in the names, resource context, and default user locale to determine the proper formatting template for the name.

DisplayNameOverride DisplayNameOverride DisplayNameOverride DisplayNameOverride

Gets or sets the display that was manually entered by the user.

public string DisplayNameOverride { get; set; }public string DisplayNameOverride { get; set; }Public ReadWrite Property DisplayNameOverride As stringpublic string DisplayNameOverride { get; set; }
Value
string string string string

The display that was manually entered by the user.

Attributes

DisplayPictureUserUpdateTime DisplayPictureUserUpdateTime DisplayPictureUserUpdateTime DisplayPictureUserUpdateTime

Gets or sets the last time the user updated their display picture.

public DateTime DisplayPictureUserUpdateTime { get; set; }public DateTimeOffset DisplayPictureUserUpdateTime { get; set; }Public ReadWrite Property DisplayPictureUserUpdateTime As DateTimeOffsetpublic DateTime DisplayPictureUserUpdateTime { get; set; }
Value
DateTime DateTime DateTime DateTime

The last time the user updated their display picture.

Attributes

Emails Emails Emails Emails

Gets the email addresses for a contact.

public IVector<ContactEmail> Emails { get; }public IVector<ContactEmail> Emails { get; }Public ReadOnly Property Emails As IVector<ContactEmail>public IVector<ContactEmail> Emails { get; }
Value

An array of email addresses for a contact.

Attributes

Fields Fields Fields Fields

Note

Fields may be altered or unavailable for releases after Windows 8.1. Instead, use Phones, Emails, Addresses, or ConnectedServiceAccounts.

Sets the fields that contain information about a contact.

public IVector<IContactField> Fields { get; }public IVector<IContactField> Fields { get; }Public ReadOnly Property Fields As IVector<IContactField>public IVector<IContactField> Fields { get; }
Value

An array of fields containing information about a contact.

Attributes

Remarks

The ContactFieldCategory and ContactFieldType classes provide information about what kind of information you can put into a field.

Examples

These functions show how you can add different fields to a Contact object.

function appendField(fields, value, type, category) {
    if (value) {
        fields.append(new Windows.ApplicationModel.Contacts.ContactField(value, type, category));
    }
}
function appendEmail(fields, email, category) {
    // Adds a new email to the contact fields vector
    appendField(fields, email, Windows.ApplicationModel.Contacts.ContactFieldType.email, category);
}
function appendPhoneNumber(fields, phone, category) {
    // Adds a new phone number to the contact fields vector
    appendField(fields, phone, Windows.ApplicationModel.Contacts.ContactFieldType.phoneNumber, category);
}
function appendAddress(fields, address, category) {
    // Adds a new address to the contact fields vector
    if (address) {
        fields.append(new Windows.ApplicationModel.Contacts.ContactLocationField(
                        address.full, category, address.street, address.city, address.state, "", address.zipCode));
    }
}

FirstName FirstName FirstName FirstName

Gets and sets the first name for a contact. The maximum string length for the first name is 64 characters.

public string FirstName { get; set; }public string FirstName { get; set; }Public ReadWrite Property FirstName As stringpublic string FirstName { get; set; }
Value
string string string string

The first name for a contact.

Attributes

FullName FullName FullName FullName

Gets the full name of the Contact.

public string FullName { get; }public string FullName { get; }Public ReadOnly Property FullName As stringpublic string FullName { get; }
Value
string string string string

The full name of the Contact.

Attributes

HonorificNamePrefix HonorificNamePrefix HonorificNamePrefix HonorificNamePrefix

Gets and sets the honorific prefix for the name for a contact. The maximum string length for the honorific prefix is 32 characters.

public string HonorificNamePrefix { get; set; }public string HonorificNamePrefix { get; set; }Public ReadWrite Property HonorificNamePrefix As stringpublic string HonorificNamePrefix { get; set; }
Value
string string string string

The honorific prefix for the name for a contact.

Attributes

Remarks

Common name prefixes are Ms, Miss, Mrs, Mr, Dr, and so on.

HonorificNameSuffix HonorificNameSuffix HonorificNameSuffix HonorificNameSuffix

Gets and sets the honorific suffix for the name for a contact. The maximum string length for the honorific suffix is 32 characters.

public string HonorificNameSuffix { get; set; }public string HonorificNameSuffix { get; set; }Public ReadWrite Property HonorificNameSuffix As stringpublic string HonorificNameSuffix { get; set; }
Value
string string string string

The honorific suffix for the name for a contact.

Attributes

Remarks

A suffix follows the contact's name and provides additional info about the contact, like an academic degree (M.D. for medical doctor).

Id Id Id Id

Gets and sets the identifier for a contact. The maximum string length for the identifier is 256 characters.

Note

The Id property must be set when you call AddContact, ContainsContact, or RemoveContact. If Id isn't set when you call AddContact, your app will fail. If Id isn't set when you call ContainsContact or RemoveContact, your app won't be able to find or remove the contact.

public string Id { get; set; }public string Id { get; set; }Public ReadWrite Property Id As stringpublic string Id { get; set; }
Value
string string string string

The identifier for a contact.

Attributes

ImportantDates ImportantDates ImportantDates ImportantDates

Gets the important dates for a contact.

public IVector<ContactDate> ImportantDates { get; }public IVector<ContactDate> ImportantDates { get; }Public ReadOnly Property ImportantDates As IVector<ContactDate>public IVector<ContactDate> ImportantDates { get; }
Value

An array of important dates for a contact.

Attributes

IsAggregate IsAggregate IsAggregate IsAggregate

Gets a Boolean value indicating of this is an aggregate Contact.

public bool IsAggregate { get; }public bool IsAggregate { get; }Public ReadOnly Property IsAggregate As boolpublic bool IsAggregate { get; }
Value
bool bool bool bool

Boolean value indicating of this is an aggregate Contact.

Attributes

IsDisplayPictureManuallySet IsDisplayPictureManuallySet IsDisplayPictureManuallySet IsDisplayPictureManuallySet

Gets a Boolean value indicating if the user manually set the picture for the Contact.

public bool IsDisplayPictureManuallySet { get; }public bool IsDisplayPictureManuallySet { get; }Public ReadOnly Property IsDisplayPictureManuallySet As boolpublic bool IsDisplayPictureManuallySet { get; }
Value
bool bool bool bool

True if the user manually set the picture, false if this is an aggregate contact and the picture was chosen from one of the raw child contacts.

Attributes

IsMe IsMe IsMe IsMe

Gets a Boolean value indicating if this Contact represents the user logged into the device.

public bool IsMe { get; }public bool IsMe { get; }Public ReadOnly Property IsMe As boolpublic bool IsMe { get; }
Value
bool bool bool bool

Boolean value indicating if this Contact represents the user logged into the device.

Attributes

JobInfo JobInfo JobInfo JobInfo

Gets the job info items for a contact.

public IVector<ContactJobInfo> JobInfo { get; }public IVector<ContactJobInfo> JobInfo { get; }Public ReadOnly Property JobInfo As IVector<ContactJobInfo>public IVector<ContactJobInfo> JobInfo { get; }
Value

An array of job info items for a contact.

Attributes

LargeDisplayPicture LargeDisplayPicture LargeDisplayPicture LargeDisplayPicture

Gets a large version of the display picture for the Contact.

public IRandomAccessStreamReference LargeDisplayPicture { get; }public IRandomAccessStreamReference LargeDisplayPicture { get; }Public ReadOnly Property LargeDisplayPicture As IRandomAccessStreamReferencepublic IRandomAccessStreamReference LargeDisplayPicture { get; }
Attributes

LastName LastName LastName LastName

Gets and sets the last name for a contact. The maximum string length for the last name is 64 characters.

public string LastName { get; set; }public string LastName { get; set; }Public ReadWrite Property LastName As stringpublic string LastName { get; set; }
Value
string string string string

The last name for a contact.

Attributes

MiddleName MiddleName MiddleName MiddleName

Gets and sets the middle name for a contact. The maximum string length for the middle name is 64 characters.

public string MiddleName { get; set; }public string MiddleName { get; set; }Public ReadWrite Property MiddleName As stringpublic string MiddleName { get; set; }
Value
string string string string

The middle name for a contact.

Attributes

Name Name Name Name

Note

Name may be altered or unavailable for releases after Windows 8.1. Instead, use FirstName.

Sets and gets the name of the contact.

public string Name { get; set; }public string Name { get; set; }Public ReadWrite Property Name As stringpublic string Name { get; set; }
Value
string string string string

The name of the contact.

Attributes

Remarks

An app can set the name property to any value that matches the name of a contact. We recommend that you set this value to contain both the first and last names of the contact, if that information is available.

Examples

This example shows a function taking the name property and returning the first and last names of the contact.

function getFirstAndLastName(contact) {
    var name = contact.name;
    if (name.indexOf(" ") != -1) {
        var firstAndLast = name.split(" ");
        return {
            first: firstAndLast[0],
            last: firstAndLast[1]
        };
    } else {
        return null;
    }
}

Nickname Nickname Nickname Nickname

Gets or sets the nickname for the Contact.

public string Nickname { get; set; }public string Nickname { get; set; }Public ReadWrite Property Nickname As stringpublic string Nickname { get; set; }
Value
string string string string

The nickname for the Contact.

Attributes

Notes Notes Notes Notes

Gets and sets notes for a contact. The maximum string length for notes is 4096 characters.

public string Notes { get; set; }public string Notes { get; set; }Public ReadWrite Property Notes As stringpublic string Notes { get; set; }
Value
string string string string

A string that contains notes for a contact.

Attributes

Phones Phones Phones Phones

Gets info about the phones for a contact.

public IVector<ContactPhone> Phones { get; }public IVector<ContactPhone> Phones { get; }Public ReadOnly Property Phones As IVector<ContactPhone>public IVector<ContactPhone> Phones { get; }
Value

An array of items that describe the phones for a contact.

Attributes

ProviderProperties ProviderProperties ProviderProperties ProviderProperties

Gets the property set object for the contact.

public IPropertySet ProviderProperties { get; }public IPropertySet ProviderProperties { get; }Public ReadOnly Property ProviderProperties As IPropertySetpublic IPropertySet ProviderProperties { get; }
Value
IPropertySet IPropertySet IPropertySet IPropertySet

The IPropertySet interface for the property set object for the contact.

Attributes

RemoteId RemoteId RemoteId RemoteId

Gets or sets an ID that can be used by a service provider to access the Contact in their remote system.

public string RemoteId { get; set; }public string RemoteId { get; set; }Public ReadWrite Property RemoteId As stringpublic string RemoteId { get; set; }
Value
string string string string

An ID that can be used by a service provider to access the Contact in their remote system.

Attributes

RingToneToken RingToneToken RingToneToken RingToneToken

Gets or puts the path to the ringtone file for the Contact.

public string RingToneToken { get; set; }public string RingToneToken { get; set; }Public ReadWrite Property RingToneToken As stringpublic string RingToneToken { get; set; }
Value
string string string string

The path to the ringtone file for the Contact.

Attributes

SignificantOthers SignificantOthers SignificantOthers SignificantOthers

Gets the significant others for a contact.

public IVector<ContactSignificantOther> SignificantOthers { get; }public IVector<ContactSignificantOther> SignificantOthers { get; }Public ReadOnly Property SignificantOthers As IVector<ContactSignificantOther>public IVector<ContactSignificantOther> SignificantOthers { get; }
Value

An array of significant others for a contact.

Attributes

SmallDisplayPicture SmallDisplayPicture SmallDisplayPicture SmallDisplayPicture

Gets a small version of the display picture for the Contact.

public IRandomAccessStreamReference SmallDisplayPicture { get; }public IRandomAccessStreamReference SmallDisplayPicture { get; }Public ReadOnly Property SmallDisplayPicture As IRandomAccessStreamReferencepublic IRandomAccessStreamReference SmallDisplayPicture { get; }
Attributes

SortName SortName SortName SortName

Gets the name used to sort the contact.

public string SortName { get; }public string SortName { get; }Public ReadOnly Property SortName As stringpublic string SortName { get; }
Value
string string string string

The name used to sort the contact.

Attributes

SourceDisplayPicture SourceDisplayPicture SourceDisplayPicture SourceDisplayPicture

Gets or sets the display picture for the Contact in its original size.

public IRandomAccessStreamReference SourceDisplayPicture { get; set; }public IRandomAccessStreamReference SourceDisplayPicture { get; set; }Public ReadWrite Property SourceDisplayPicture As IRandomAccessStreamReferencepublic IRandomAccessStreamReference SourceDisplayPicture { get; set; }
Attributes

Remarks

The SmallDisplayPicture, LargeDisplayPicture and Thumbnail are generated from this picture.

TextToneToken TextToneToken TextToneToken TextToneToken

Gets or puts the path to the audio file to play when an SMS/MMS message is received from the Contact.

public string TextToneToken { get; set; }public string TextToneToken { get; set; }Public ReadWrite Property TextToneToken As stringpublic string TextToneToken { get; set; }
Value
string string string string

The path to the audio file to play when an SMS/MMS message is received from the Contact.

Attributes

Thumbnail Thumbnail Thumbnail Thumbnail

Gets or sets a thumbnail image that represents this contact.

public IRandomAccessStreamReference Thumbnail { get; set; }public IRandomAccessStreamReference Thumbnail { get; set; }Public ReadWrite Property Thumbnail As IRandomAccessStreamReferencepublic IRandomAccessStreamReference Thumbnail { get; set; }
Attributes

Websites Websites Websites Websites

Gets the Web sites for a contact.

public IVector<ContactWebsite> Websites { get; }public IVector<ContactWebsite> Websites { get; }Public ReadOnly Property Websites As IVector<ContactWebsite>public IVector<ContactWebsite> Websites { get; }
Value

An array of Web sites for a contact.

Attributes

YomiDisplayName YomiDisplayName YomiDisplayName YomiDisplayName

Gets the Yomi (phonetic Japanese equivalent) display name for a contact.

public string YomiDisplayName { get; }public string YomiDisplayName { get; }Public ReadOnly Property YomiDisplayName As stringpublic string YomiDisplayName { get; }
Value
string string string string

The Yomi display name for a contact.

Attributes

Remarks

Windows calculates the YomiDisplayName property by using the values from the YomiGivenName and YomiFamilyName properties. The calculation for YomiDisplayName takes into account different locale hints such as script of the text in the names, resource context, and default user locale to determine the proper formatting template for the name.

YomiFamilyName YomiFamilyName YomiFamilyName YomiFamilyName

Gets the Yomi (phonetic Japanese equivalent) family name for a contact. The maximum string length for the Yomi family name is 120 characters.

public string YomiFamilyName { get; set; }public string YomiFamilyName { get; set; }Public ReadWrite Property YomiFamilyName As stringpublic string YomiFamilyName { get; set; }
Value
string string string string

The Yomi family name for a contact.

Attributes

YomiGivenName YomiGivenName YomiGivenName YomiGivenName

Gets the Yomi (phonetic Japanese equivalent) given name for a contact. The maximum string length for the Yomi given name is 120 characters.

public string YomiGivenName { get; set; }public string YomiGivenName { get; set; }Public ReadWrite Property YomiGivenName As stringpublic string YomiGivenName { get; set; }
Value
string string string string

The Yomi given name for a contact.

Attributes