Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 17:28, 7 August 2008.

Adding a Contact Item

From Forum Nokia Wiki


The following example shows how to create a new contact, add suitable fields, and add the contact to the database. In this example, three text fields with fieldtypes, text labels, and text values are added to a contact. Note that whenever a field is added to a contact, the contact becomes responsible for managing the memory and other resources associated with the field. Therefore, it is not necessary to delete these fields explicitly – popping them from the cleanup stack is sufficient.


// Some literal strings for the fields:
 
_LIT(KForenameLabel,"Forename");
_LIT(KSurnameLabel,"Surname");
_LIT(KWorkPhoneLabel,"Work Phone");
_LIT(KForename,"Satya");
_LIT(KOtherForename,"Naresh");
_LIT(KSurname,"Vattikuti");
_LIT(KWorkPhone,"+919985671193");
 
// Open the default contacts database:
CContactDatabase* contactsDb = CContactDatabase::OpenL();
CleanupStack::PushL(contactsDb);
 
// Create a contact card and add some fields:
CContactItem* contact = CContactCard::NewLC();
CContactItemField* field = CContactItemField::NewLC(KStorageTypeText, 
 
KUidContactFieldFamilyName);
field->SetMapping(KUidContactFieldVCardMapUnusedN);
field->SetLabelL(KSurnameLabel);
field->TextStorage()->SetTextL(KSurname);
contact->AddFieldL(*field);
CleanupStack::Pop();
 
 
field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldGivenName);
field->SetMapping(KUidContactFieldVCardMapUnusedN);
field->SetLabelL(KForenameLabel);
field->TextStorage()->SetTextL(KForename);
contact->AddFieldL(*field);
CleanupStack::Pop();
 
field = CContactItemField::NewLC(KStorageTypeText, KUidContactFieldPhoneNumber);
field->SetMapping(KUidContactFieldVCardMapTEL);
field->SetLabelL(KWorkPhoneLabel);
field->TextStorage()->SetTextL(KWorkPhone);
contact->AddFieldL(*field);
CleanupStack::Pop();
 
// Add the new contact to the database and set it as the own card:
contactsDb->AddNewContactL(*contact);
contactsDb->SetOwnCardL(*contact);
 
CleanupStack::PopAndDestroy(2); // contact contactsDb


The contact card that represents the electronic business card of the owner of the Symbian mobile phone can be set by calling the CContactDatabase::SetOwnCardL() function. Note that the CContactItemField::SetMapping() function is called for each of the fields created earlier. This function associates a field with one of the standard vCard fields and is required if the contact will be populated from or will generate a vCard. This mapping is also needed if the application developer wants the contact to be displayed in the Phonebook application.


Links

Reading and Editing a Contact Item

Related Discussions
Thread Thread Starter Forum Replies Last Post
PIM Access for N75 Phone Book arbind Mobile Java General 3 2008-03-16 18:19
ID of a contact freaky_911 Python 3 2008-03-23 16:32
pim groups Nedferatus Mobile Java General 2 2006-07-13 07:30
PIM contact list supported array elements gbaballa Mobile Java General 3 2008-07-09 13:40
Wrap around for CAknForm heuven Symbian User Interface 0 2008-04-10 17:50
 
Powered by MediaWiki