Android 之往通讯录中添加数据和查询数据
16lz
2021-01-23
http://blog.csdn.net/hosterZhu/archive/2011/01/20/6154461.aspx
首先 我们要在E:\android-sdk-windows\platforms\android-8\sources\ContactsProvider 找到源码 !
因为android自带的通讯录也是通过ContentProvider对外共享数据。
贴点源码:
URI 这是ContactsProvider2.java
- static{
- //ContactsURImatchingtable
- finalUriMatchermatcher=sUriMatcher;
- matcher.addURI(ContactsContract.AUTHORITY,"contacts",CONTACTS);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/#",CONTACTS_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/#/data",CONTACTS_DATA);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/#/suggestions",
- AGGREGATION_SUGGESTIONS);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/#/suggestions/*",
- AGGREGATION_SUGGESTIONS);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/#/photo",CONTACTS_PHOTO);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/filter/*",CONTACTS_FILTER);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/lookup/*",CONTACTS_LOOKUP);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/lookup/*/#",CONTACTS_LOOKUP_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/as_vcard/*",CONTACTS_AS_VCARD);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/as_multi_vcard/*",
- CONTACTS_AS_MULTI_VCARD);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/strequent/",CONTACTS_STREQUENT);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/strequent/filter/*",
- CONTACTS_STREQUENT_FILTER);
- matcher.addURI(ContactsContract.AUTHORITY,"contacts/group/*",CONTACTS_GROUP);
- matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts",RAW_CONTACTS);
- matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts/#",RAW_CONTACTS_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts/#/data",RAW_CONTACTS_DATA);
- matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts/#/entity",RAW_CONTACT_ENTITY_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"raw_contact_entities",RAW_CONTACT_ENTITIES);
- matcher.addURI(ContactsContract.AUTHORITY,"data",DATA);
- matcher.addURI(ContactsContract.AUTHORITY,"data/#",DATA_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"data/phones",PHONES);
- matcher.addURI(ContactsContract.AUTHORITY,"data/phones/#",PHONES_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"data/phones/filter",PHONES_FILTER);
- matcher.addURI(ContactsContract.AUTHORITY,"data/phones/filter/*",PHONES_FILTER);
- matcher.addURI(ContactsContract.AUTHORITY,"data/emails",EMAILS);
- matcher.addURI(ContactsContract.AUTHORITY,"data/emails/#",EMAILS_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"data/emails/lookup/*",EMAILS_LOOKUP);
- matcher.addURI(ContactsContract.AUTHORITY,"data/emails/filter",EMAILS_FILTER);
- matcher.addURI(ContactsContract.AUTHORITY,"data/emails/filter/*",EMAILS_FILTER);
- matcher.addURI(ContactsContract.AUTHORITY,"data/postals",POSTALS);
- matcher.addURI(ContactsContract.AUTHORITY,"data/postals/#",POSTALS_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"groups",GROUPS);
- matcher.addURI(ContactsContract.AUTHORITY,"groups/#",GROUPS_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"groups_summary",GROUPS_SUMMARY);
- matcher.addURI(ContactsContract.AUTHORITY,SyncStateContentProviderHelper.PATH,SYNCSTATE);
- matcher.addURI(ContactsContract.AUTHORITY,SyncStateContentProviderHelper.PATH+"/#",
- SYNCSTATE_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"phone_lookup/*",PHONE_LOOKUP);
- matcher.addURI(ContactsContract.AUTHORITY,"aggregation_exceptions",
- AGGREGATION_EXCEPTIONS);
- matcher.addURI(ContactsContract.AUTHORITY,"aggregation_exceptions/*",
- AGGREGATION_EXCEPTION_ID);
- matcher.addURI(ContactsContract.AUTHORITY,"settings",SETTINGS);
- matcher.addURI(ContactsContract.AUTHORITY,"status_updates",STATUS_UPDATES);
- matcher.addURI(ContactsContract.AUTHORITY,"status_updates/#",STATUS_UPDATES_ID);
- matcher.addURI(ContactsContract.AUTHORITY,SearchManager.SUGGEST_URI_PATH_QUERY,
- SEARCH_SUGGESTIONS);
- matcher.addURI(ContactsContract.AUTHORITY,SearchManager.SUGGEST_URI_PATH_QUERY+"/*",
- SEARCH_SUGGESTIONS);
- matcher.addURI(ContactsContract.AUTHORITY,SearchManager.SUGGEST_URI_PATH_SHORTCUT+"/*",
- SEARCH_SHORTCUT);
- matcher.addURI(ContactsContract.AUTHORITY,"live_folders/contacts",
- LIVE_FOLDERS_CONTACTS);
- matcher.addURI(ContactsContract.AUTHORITY,"live_folders/contacts/*",
- LIVE_FOLDERS_CONTACTS_GROUP_NAME);
- matcher.addURI(ContactsContract.AUTHORITY,"live_folders/contacts_with_phones",
- LIVE_FOLDERS_CONTACTS_WITH_PHONES);
- matcher.addURI(ContactsContract.AUTHORITY,"live_folders/favorites",
- LIVE_FOLDERS_CONTACTS_FAVORITES);
- matcher.addURI(ContactsContract.AUTHORITY,"provider_status",PROVIDER_STATUS);
- }
项目清单文件中 有ContactsProvider2的配置
view plain copy to clipboard print ?- <providerandroid:name="ContactsProvider2"android:authorities="contacts;com.android.contacts"android:label="@string/provider_label"android:multiprocess="false"android:readPermission="android.permission.READ_CONTACTS"android:writePermission="android.permission.WRITE_CONTACTS">
- <path-permissionandroid:pathPrefix="/search_suggest_query"android:readPermission="android.permission.GLOBAL_SEARCH"/>
- padding-top: 0px !important; padding-right: 3px !important; padding-bottom: 0px !important; padding-left: 10px
- 2011-05-20 15:42
- 浏览 1236
- 评论(0)
- 分类:移动开发
- 相关推荐
评论
发表评论
您还没有登录,请您登录后再发表评论
更多相关文章
- Android AsyncTask源码简单分析
- 如果获取android源码
- 使用 IntelliJ 查看 Android 源码
- Android:Native C源码(NDK)如何使用sqlite3进行编程?
- android应用软件源码
- 直播软件源码Android 多个ImageView拖拽互换图片