android 2.x與1.x聯繫人的數據庫設計有很大不一樣,在作聯繫人相關的開發時,先要肯定系統的版本。android
boolean mAndroid2 =android.os.Build.VERSION.RELEASE.startsWith("2.");數據庫
本文是開發過程當中的一些比較整理,適用的是2.x之後的版本。數據庫設計
Overall.ide
聯繫人的主要數據存放在raw_contacts和data表裏,它兩構成主從表關係。post
raw_contacts表結構:ui
data表結構:編碼
每一個聯繫人在raw_contacts裏有一條記錄,像地址,名稱,email,電話等等數據都在data存放在data裏,這樣設計的好處是易擴展,好比要增長一個聯繫人的email地址時,只要在data裏增長一條記錄。設計
聯繫人的數據庫比較複雜,在聯繫人相關應用開發中,通常也不直接經過數據庫字段來操做,主要用視圖(指定的Uri)來操做。開發
下面說說我在開發工做中用到的一些聯繫人的數據。it
名字:
Uri: Uri.parse("content://com.android.contacts/data")
PREFIX = "data4"; //名稱前綴
MID_NAME = "data5";//中間名
GIVEN_NAME = "data2";//名字
FAMILY_NAME = "data3";//姓氏
MID_PINYIN="data8"; //中間名拼音
String FAMILY_NAME_PINYIN="data9"; //姓氏拼音
String SUFIX = "data6"; //名稱後綴
String SUFIX_PINYIN="data7"; //名字拼音
電話:
Uri: Uri.parse("content://com.android.contacts/data/phones"
phone: "data1";//號碼
Type: "data2";//這個字段是×××值,指示電話類型
類型對應關係以下:
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_MOBILE = 2;
TYPE_WORK = 3;
TYPE_FAX_WORK = 4;
TYPE_FAX_HOME = 5;
TYPE_PAGER = 6;
TYPE_OTHER = 7;
Email:
Uri:Uri.parse("content://com.android.contacts/data/emails")
Email: "data1";//郵箱地址
Type: "data2";//這個字段是×××值,指示Email類型
類型對應關係以下:
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_WORK = 2;
TYPE_OTHER = 3;
TYPE_MOBILE = 4;
地址:
Uri:Uri.parse("content://com.android.contacts/data/postals")
STREET="data4";//街道
CITY="data8";//城市
STATE="data7";//州
ZIP_CODE="data9";//郵政編碼
Type:"data2";//type的類型以下
TYPE_CUSTOM = 0; TYPE_HOME = 1; TYPE_WORK = 2; TYPE_OTHER = 3;