欢迎来到天天文库
浏览记录
ID:8460165
大小:1.27 MB
页数:9页
时间:2018-03-28
《黑马程序员安卓教程:操作系统联系人》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统联系人现在很多App都可以对系统联系人进行操作,比如微信就可以直接将号码添加到系统联系人中,比如QQ可以关联/备份/恢复系统联系人。1.4.1准备知识通过DDMS,查看Android模拟器下的/data/data/com.android.providers.contacts/databases/包下的数据库(如图1-6所示),查看其contact2.db数据库的内容。18图1-6联系人数据库位置将contacts2.db打开,观察其数据库内容,表结构有很多,但是我们主要关注其中的三张表即可。其中raw_cont
2、acts表存放的是联系人id信息,一个联系人就是表中的一行记录;data表中存放的是raw_contacts中的每一条id对应的具体信息,一个联系人可能有电话、邮件、姓名等多条信息,每一条信息在该表中都是一行记录;为了区分不同信息的类型,因此还有一个mimetypes表,该表存储的是常量数据,不同类型的信息由mimetype_id来标识。raw_contacts表:data表:mimetypes表:打开Android源码,查看packagesproviders路径下的文件,其中ContactsProvider就是联
3、系人的内容提供者。1.打开清单文件,寻找联系人的内容提供者对应的是哪个java文件。【文件1-11】1.4、.READ_CONTACTS"6.android:writePermission="android.permission.WRITE_CONTACTS">7.10.5、tcut"12.android:readPermission="android.permission.GLOBAL_SEARCH"/>13.16.17.从清单文件可以6、看出,内容提供者的类名为ContactsProvider2.java,必须使用前需要添加如下权限:android:readPermission="android.permission.READ_CONTACTS"android:writePermission="android.permission.WRITE_CONTACTS">2.打开ContactsProvider2.java文件,查看此内容提供者的uri路径信息matcher.addURI(ContactsContract.AUTHORITY,"contacts7、",CONTACTS);matcher.addURI(ContactsContract.AUTHORITY,"contacts/#",CONTACTS_ID);matcher.addURI(ContactsContract.AUTHORITY,"contacts/#/data",CONTACTS_DATA);matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts",RAW_CONTACTS);matcher.addURI(ContactsContract.AUTH8、ORITY,"raw_contacts/#",RAW_CONTACTS_ID);matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts/#/data",RAW_CONTACTS_DATA);3.根据源码,确定内容提供者的Uri信息为:操作raw_contacts表的Uri:c
4、.READ_CONTACTS"6.android:writePermission="android.permission.WRITE_CONTACTS">7.10.5、tcut"12.android:readPermission="android.permission.GLOBAL_SEARCH"/>13.16.17.从清单文件可以6、看出,内容提供者的类名为ContactsProvider2.java,必须使用前需要添加如下权限:android:readPermission="android.permission.READ_CONTACTS"android:writePermission="android.permission.WRITE_CONTACTS">2.打开ContactsProvider2.java文件,查看此内容提供者的uri路径信息matcher.addURI(ContactsContract.AUTHORITY,"contacts7、",CONTACTS);matcher.addURI(ContactsContract.AUTHORITY,"contacts/#",CONTACTS_ID);matcher.addURI(ContactsContract.AUTHORITY,"contacts/#/data",CONTACTS_DATA);matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts",RAW_CONTACTS);matcher.addURI(ContactsContract.AUTH8、ORITY,"raw_contacts/#",RAW_CONTACTS_ID);matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts/#/data",RAW_CONTACTS_DATA);3.根据源码,确定内容提供者的Uri信息为:操作raw_contacts表的Uri:c
5、tcut"12.android:readPermission="android.permission.GLOBAL_SEARCH"/>13.16.17.从清单文件可以
6、看出,内容提供者的类名为ContactsProvider2.java,必须使用前需要添加如下权限:android:readPermission="android.permission.READ_CONTACTS"android:writePermission="android.permission.WRITE_CONTACTS">2.打开ContactsProvider2.java文件,查看此内容提供者的uri路径信息matcher.addURI(ContactsContract.AUTHORITY,"contacts
7、",CONTACTS);matcher.addURI(ContactsContract.AUTHORITY,"contacts/#",CONTACTS_ID);matcher.addURI(ContactsContract.AUTHORITY,"contacts/#/data",CONTACTS_DATA);matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts",RAW_CONTACTS);matcher.addURI(ContactsContract.AUTH
8、ORITY,"raw_contacts/#",RAW_CONTACTS_ID);matcher.addURI(ContactsContract.AUTHORITY,"raw_contacts/#/data",RAW_CONTACTS_DATA);3.根据源码,确定内容提供者的Uri信息为:操作raw_contacts表的Uri:c
此文档下载收益归作者所有