contentprovider管理联系人信息
时间: 2023-07-30 07:06:18 浏览: 47
ContentProvider是Android中用于管理数据的一种机制,它可以将数据存储在SQLite数据库、文件系统或者其他任何数据源中,并提供给其他应用程序进行访问。在Android中,联系人信息也是通过ContentProvider来管理的。
Android系统提供了一个ContactsProvider来管理联系人信息,它提供了一系列API来访问和操作联系人信息。应用程序可以使用这些API来读取、添加、删除和更新联系人信息。
在使用ContactsProvider时,需要先获取一个ContentResolver对象,然后调用它的query、insert、delete和update等方法来访问和操作联系人信息。例如,可以使用以下代码获取所有联系人的姓名和电话号码:
```
ContentResolver cr = getContentResolver();
Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
Cursor phoneCursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + id, null, null);
while (phoneCursor.moveToNext()) {
String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phoneCursor.close();
}
cursor.close();
```
这段代码会遍历所有联系人,并输出它们的姓名和电话号码。当然,还可以使用其他API来添加、删除和更新联系人信息。