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); }
相关文章推荐
- Android—ContentProvider读取系统联系人
- Android(java)学习笔记250:ContentProvider使用之获得系统联系人信息02(掌握)
- Android四大组件之ContentProvider获取系统的联系人及联系人电话
- Android -- ContentProvider, 读取和保存系统 联系人
- Android -- ContentProvider, 读取和保存系统 联系人
- Android-数据存储(Content Provider ,调用系统 联系人 ContentProvider实现查询和增加联系人)
- Android(java)学习笔记249:ContentProvider使用之获得系统联系人信息01
- 26.获取系统联系人ContentProvider
- android监听系统联系人修改
- Android学习篇章38-ContentProvider-获取联系人信息
- Android系统联系人全特效实现(上),分组导航和挤压动画
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- Android 获取系统联系人
- Android系统联系人全特效实现(上),分组导航和挤压动画
- Android初级开发(七)——内容提供器—读取系统联系人
- Android开发之Intent跳转到系统应用中的拨号界面、联系人界面、短信界面
- Android 跳转到系统联系人获取姓名和手机号
- Android 获取系统的联系人
- Android系统联系人全特效实现(下),字母表快速滚动