A mai bejegyzésben a névjegyzéket fogjuk boncolgatni, a feladatra egy, az 1.0-ás SDK óta elérhető beépített megoldást kapunk. Az AddressBook osztályról van szó, amely egy központi adatbázist képvisel a névjegyzéket használó applikációk számára. Segítségével kontaktokat és csoportokat menedzselhetünk, a szokásos CRUD, azaz create-read-update-delete képességekkel. Fontos megjegyezni, hogy az AddressBook osztály segítségével csak a telefon memóriáját használhatjuk, a SIM kártyán lévő bejegyzéseket nem érhetjük el. A mai bejegyzésben a kontaktok létrehozását és a hozzájuk tartozó paramétereket futjuk át, de mielőtt nekiugrunk a dolognak, be kell importálnunk az FSocial.h headert, valamint fel kell vennünk az alábbi privilégiumot a manifest.xml leíróba:
<Privilege>
<Name>ADDRESSBOOK</Name>
</Privilege>
Új névjegy létrehozásához először is fel kell vennünk egy Contanct példányt, amely az Osp::Social névtérben található. Az osztály paramétereit nem tudjuk konstruktoron keresztül beállítani, ehhez két módot kapunk. A névjegyzék bejegyzéseinél ugyanis két eltérő típusú paramétert különböztetünk meg: az egy-az-egyhez (single-value property) és a több-az-egyhez (multi-value property) típusokat. Előbbire példa például a vezetéknév és a születésnap, utóbbira pedig a telefonszámok (munkahelyi, otthoni, magán stb) és a címek. Miután megvagyunk az adatok megadásával, az AddressBook példányunk addContact() függvényét kell meghívnunk, bemenőként a létrehozott Contact példánnyal.
A single-value property megadása a SetValue() függvény segítségével lehetséges. Ez két bemenő paramétert vár: az első a property azonosítója (ezek az alábbi táblázatban láthatóak), a második pedig a paraméternek megfelelő típusú változó.
Single-value property | |||
---|---|---|---|
Property neve |
Feladatkör |
Típus | |
CONTACT_PROPERTY_ID_USER_ID | Contact példányok azonosítása | UserID | |
CONTACT_PROPERTY_ID_FIRST_NAME | Keresztnév | String | |
CONTACT_PROPERTY_ID_LAST_NAME | Vezetéknév | String | |
CONTACT_PROPERTY_ID_DISPLAY_NAME | Megjelenített név | String | |
CONTACT_PROPERTY_ID_NICK_NAME | Becenév | String | |
CONTACT_PROPERTY_ID_THUMBNAIL | Fénykép | Bitmap | |
CONTACT_PROPERTY_ID_BIRTHDAY | Születésnap | DateTime | |
CONTACT_PROPERTY_ID_JOB_TITLE | Munkakör | String | |
CONTACT_PROPERTY_ID_COMPANY | Munkahely | String | |
CONTACT_PROPERTY_ID_NOTE | Partnerhez kapcsolódó jegyzet | String | |
CONTACT_PROPERTY_ID_ANNIVERSARY | Évforduló | DateTime | |
CONTACT_PROPERTY_ID_RINGTONE | Csengőhang | String |
A multi-value paraméterek megadásához típusonként külön függvényeket kapunk, a bemenő paraméterek pedig összetett osztályok, ellentétben a single-value esetben használt egyszerű típusokkal. A dolog pikantériája, hogy ezen adatok megadásakor a nekik megfelelő osztálypéldánynál kell beállítanunk, hogy melyik azonosítóhoz rendeljük azt. Az egyes paraméterek és alosztályaik alább láthatóak.
Multi-value property | ||||
---|---|---|---|---|
Property neve | Függvény |
Feladatkör |
Típus | |
CONTACT_MPROPERTY_ID_PHONE_NUMBERS | AddPhoneNumber() | Telefonszám | PhoneNumber | |
CONTACT_MPROPERTY_ID_EMAILS | AddEmail() | E-mail cím | ||
CONTACT_MPROPERTY_ID_URLS | AddUrl() | Weboldal | Url | |
CONTACT_MPROPERTY_ID_ADDRESSES | AddAddress() | Lakcím | Address | |
CONTACT_MPROPERTY_ID_IMADDRESSES | AddImAddress() | SNS-fiók | ImAddress |
Telefonszám:
- PHONENUMBER_TYPE_HOME
- PHONENUMBER_TYPE_WORK
- PHONENUMBER_TYPE_MOBILE
- PHONENUMBER_TYPE_HOME_FAX
- PHONENUMBER_TYPE_HOME_FAX
- PHONENUMBER_TYPE_HOME_FAX
- PHONENUMBER_TYPE_HOME_FAX
Lakcím:
- ADDRESS_TYPE_HOME
- ADDRESS_TYPE_WORK
- ADDRESS_TYPE_OTHER
Url:
- URL_TYPE_PERSONAL
- URL_TYPE_WORK
- URL_TYPE_OTHER