您的位置:首页 > 移动开发 > Android开发

android系统ContentProvider——联系人

2011-07-09 21:42 561 查看
就做了个查询、添加联系人的例子,其他系统ContentProvider应该也差不多。

//查询联系人
public void query()
{
//获得ContentResolver实例
ContentResolver cr = this.getContentResolver();

//定义URI
Uri uri = ContactsContract.Contacts.CONTENT_URI;
//定义查询数组
//      String[] projection = {ContactsContract.Contacts.DISPLAY_NAME,ContactsContract.Contacts._COUNT};
//定义查询条件
//      String selection = ContactsContract.Contacts.DISPLAY_NAME +"=?";
//定义查询条件参数
//      String[] selectionArgs = {"aaa"};
//排序列
String sortOrder = ContactsContract.Contacts._ID;

//查询获得游标
Cursor c = cr.query(uri, null, null, null, sortOrder);

//遍历
for(c.moveToFirst();!c.isAfterLast();c.moveToNext())
{
Log.i("people","**********************************************************");
//获得联系人的ID号
String contactId = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
Log.i("people", "_ID="+contactId);
//获得联系人姓名
Log.i("people", "DISPLAY_NAME="+c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));
//查看该联系人有多少个电话号码
int phoneCount = c.getInt(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if(phoneCount>0)
{
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null);

for(phones.moveToFirst();!phones.isAfterLast();phones.moveToNext())
{
Log.i("people", "NUMBER="+phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
}

}
}
Log.i("people","----------------------------------------------------------");
}

//添加联系人,name+tel
public void insert()
{
ContentValues values = new ContentValues();
Uri rawContactUri = getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);

//插入姓名
values.clear();
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, "sq");
values.put(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, "c");
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);

//插入电话号码
values.clear();
values.put(ContactsContract.Contacts.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Contacts.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "13989297343");
values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: