帮助我了解Android2.2的联系人结构

public class XMLMapping {
44
    static final public Map<String, XMLMapping> contact = new LinkedHashMap<String, XMLMapping>();
45
    static final public Map<String, XMLMapping> sms = new LinkedHashMap<String, XMLMapping>();
46
    static final public Map<String, XMLMapping> calendar = new LinkedHashMap<String, XMLMapping>();
47
48
    protected Uri uri;
49
    protected String xmlTag;
50
    protected String androidName;
51
    protected Map<String, String> androidToXml = new HashMap<String, String>();
52
    protected Map<String, String> xmlToAndroid = new HashMap<String, String>();
53
54
    transient protected String[] androidNameCache = null;
55
56
    public XMLMapping(Uri uri, String xmlTag, String androidName) {
57
        this.uri = uri;
58
        this.xmlTag = xmlTag;
59
        this.androidName = androidName;
60
    }
61
62
    /**
63
     * Ajoute un mapping
64
     *
65
     * @param xmlTag
66
     * @param androidName
67
     */
68
    protected void add(String xmlTag, String androidName) {
69
        xmlToAndroid.put(xmlTag, androidName);
70
        androidToXml.put(androidName, xmlTag);
71
    }
72
73
    public Uri getUri() {
74
        return uri;
75
    }
76
77
    public String getAndroidName() {
78
        return androidName;
79
    }
80
81
    public String getXmlTag() {
82
        return xmlTag;
83
    }
84
85
    public String[] getAllAndroidName() {
86
        if (androidNameCache == null) {
87
            androidNameCache = 
88
                    androidToXml.keySet().toArray(new String[androidToXml.size()]);
89
        }
90
        return androidNameCache;
91
    }
92
93
    public String getAndroidName(String xmlTag) {
94
        String result = xmlToAndroid.get(xmlTag);
95
        return result;
96
    }
97
98
    public String getXmlTag(String androidName) {
99
        String result = androidToXml.get(androidName);
100
        return result;
101
    }
102
103
    /**
104
     * initialisation des mappings
105
     */
106
    static {
107
        {
108
            XMLMapping m = new XMLMapping(ContactsContract.Contacts.CONTENT_URI,
109
                    "baseinfo", null);
110
            contact.put(m.xmlTag, m);
111
112
            // On met l'id dans l'export pour que si on importe 2 fois le meme 
113
            // fichier, le deuxieme import echoue. Et qu'on est pas des fiches 
114
            // dupliquees. (il seront bon de trouver une meilleur solution :)) 
115
            m.add("id", ContactsContract.Contacts._ID);
116
            m.add("display_name", ContactsContract.Contacts.DISPLAY_NAME);
117
            m.add("last_time_contacted", ContactsContract.Contacts.LAST_TIME_CONTACTED);
118
            m.add("starred", ContactsContract.Contacts.STARRED);
119
            m.add("times_contacted", ContactsContract.Contacts.TIMES_CONTACTED);
120
            m.add("custom_ringtone", ContactsContract.Contacts.CUSTOM_RINGTONE);
121
            m.add("send_to_voicemail", ContactsContract.Contacts.SEND_TO_VOICEMAIL);
122
123
        }
124
        // save group TODO 
125
        {
126
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
127
                    "name",
128
                    ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
129
            contact.put(m.xmlTag, m);
130
131
            m.add("prefix", ContactsContract.CommonDataKinds.StructuredName.PREFIX);
132
            m.add("given_name", ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME);
133
            m.add("middle_name", ContactsContract.CommonDataKinds.StructuredName.MIDDLE_NAME);
134
            m.add("family_name", ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME);
135
            m.add("suffix", ContactsContract.CommonDataKinds.StructuredName.SUFFIX);
136
            m.add("phonetic_given_name", ContactsContract.CommonDataKinds.StructuredName.PHONETIC_GIVEN_NAME);
137
            m.add("phonetic_middle_name", ContactsContract.CommonDataKinds.StructuredName.PHONETIC_MIDDLE_NAME);
138
            m.add("phonetic_family_name", ContactsContract.CommonDataKinds.StructuredName.PHONETIC_FAMILY_NAME);
139
        }
140
        
141
        {
142
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
143
                    "nickname",
144
                    ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE);
145
            contact.put(m.xmlTag, m);
146
147
            m.add("label", ContactsContract.CommonDataKinds.Nickname.LABEL);
148
            m.add("type", ContactsContract.CommonDataKinds.Nickname.TYPE);
149
            m.add("data", ContactsContract.CommonDataKinds.Nickname.DATA);
150
        }
151
        {
152
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
153
                    "relation",
154
                    ContactsContract.CommonDataKinds.Relation.CONTENT_ITEM_TYPE);
155
            contact.put(m.xmlTag, m);
156
157
            m.add("label", ContactsContract.CommonDataKinds.Relation.LABEL);
158
            m.add("type", ContactsContract.CommonDataKinds.Relation.TYPE);
159
            m.add("data", ContactsContract.CommonDataKinds.Relation.DATA);
160
        }
161
        {
162
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
163
                    "phone",
164
                    ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
165
            contact.put(m.xmlTag, m);
166
167
            m.add("label", ContactsContract.CommonDataKinds.Phone.LABEL);
168
            m.add("type", ContactsContract.CommonDataKinds.Phone.TYPE);
169
            m.add("data", ContactsContract.CommonDataKinds.Phone.NUMBER);
170
        }
171
        {
172
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
173
                    "email",
174
                    ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
175
            contact.put(m.xmlTag, m);
176
177
            m.add("label", ContactsContract.CommonDataKinds.Email.LABEL);
178
            m.add("type", ContactsContract.CommonDataKinds.Email.TYPE);
179
            m.add("data", ContactsContract.CommonDataKinds.Email.DATA);
180
        }
181
        {
182
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
183
                    "im",
184
                    ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE);
185
            contact.put(m.xmlTag, m);
186
187
            m.add("label", ContactsContract.CommonDataKinds.Im.LABEL);
188
            m.add("type", ContactsContract.CommonDataKinds.Im.TYPE);
189
            m.add("data", ContactsContract.CommonDataKinds.Im.DATA);
190
            m.add("protocol", ContactsContract.CommonDataKinds.Im.PROTOCOL);
191
            m.add("custom_protocol", ContactsContract.CommonDataKinds.Im.CUSTOM_PROTOCOL);
192
        }
193
        {
194
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
195
                    "event",
196
                    ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE);
197
            contact.put(m.xmlTag, m);
198
199
            m.add("label", ContactsContract.CommonDataKinds.Event.LABEL);
200
            m.add("type", ContactsContract.CommonDataKinds.Event.TYPE);
201
            m.add("start_date", ContactsContract.CommonDataKinds.Event.START_DATE);
202
        }
203
        {
204
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
205
                    "address",
206
                    ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_ITEM_TYPE);
207
            contact.put(m.xmlTag, m);
208
209
            m.add("label", ContactsContract.CommonDataKinds.StructuredPostal.LABEL);
210
            m.add("type", ContactsContract.CommonDataKinds.StructuredPostal.TYPE);
211
            m.add("street", ContactsContract.CommonDataKinds.StructuredPostal.STREET);
212
            m.add("pobox", ContactsContract.CommonDataKinds.StructuredPostal.POBOX);
213
            m.add("neighborhood", ContactsContract.CommonDataKinds.StructuredPostal.NEIGHBORHOOD);
214
            m.add("postcode", ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE);
215
            m.add("city", ContactsContract.CommonDataKinds.StructuredPostal.CITY);
216
            m.add("region", ContactsContract.CommonDataKinds.StructuredPostal.REGION);
217
            m.add("country", ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY);
218
        }
219
        {
220
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
221
                    "organization",
222
                    ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE);
223
            contact.put(m.xmlTag, m);
224
225
            m.add("label", ContactsContract.CommonDataKinds.Organization.LABEL);
226
            m.add("type", ContactsContract.CommonDataKinds.Organization.TYPE);
227
            m.add("company", ContactsContract.CommonDataKinds.Organization.COMPANY);
228
            m.add("title", ContactsContract.CommonDataKinds.Organization.TITLE);
229
            m.add("department", ContactsContract.CommonDataKinds.Organization.DEPARTMENT);
230
            m.add("office_location", ContactsContract.CommonDataKinds.Organization.OFFICE_LOCATION);
231
            m.add("job_description", ContactsContract.CommonDataKinds.Organization.JOB_DESCRIPTION);
232
        }
233
        {
234
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
235
                    "website",
236
                    ContactsContract.CommonDataKinds.Website.CONTENT_ITEM_TYPE);
237
            contact.put(m.xmlTag, m);
238
239
            m.add("label", ContactsContract.CommonDataKinds.Website.LABEL);
240
            m.add("type", ContactsContract.CommonDataKinds.Website.TYPE);
241
            m.add("data", ContactsContract.CommonDataKinds.Website.DATA);
242
        }
243
        {
244
            XMLMapping m = new XMLMapping(ContactsContract.Data.CONTENT_URI,
245
                    "note",
246
                    ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE);
247
            contact.put(m.xmlTag, m);
248
249
            m.add("note", ContactsContract.CommonDataKinds.Note.NOTE);
250
        }
251
    }
252
253
}

你可能感兴趣的:(帮助我了解Android2.2的联系人结构)