关于android 联系人数据库处理

来源:互联网 发布:有关人工智能电影 编辑:程序博客网 时间:2024/05/01 12:32
最近项目需求需要把蓝牙通讯录同步到系统通讯录里面,需要对系统通讯录进行操作
1.操作数据库为:/data/data/com.android.providers.contacts/databases.contacts2.db
2.操作表:主要对data表进行操作

具体直接贴代码

public class ContactsUtil {
private static final String TAG = "ContactsUtil";
@SuppressWarnings("deprecation")
public static boolean insert(Context context,String name, String phoneNum,String address) {   
      if (name == null) {   
          Log.e(TAG, "The Name is not allow null!!");   
          return false;   
      }   
      try {   
      ContentValues values = new ContentValues();  
      Uri rawContactUri = context.getContentResolver().insert(RawContacts.CONTENT_URI, values);  
      long rawContactId = ContentUris.parseId(rawContactUri);//二、对联系人的基本操作(8)  
      // 向data表插入姓名数据  
      if (name != "")  
      {  
      values.clear();  
      values.put(Data.RAW_CONTACT_ID, rawContactId);  
      values.put(Data.MIMETYPE,   
      StructuredName.CONTENT_ITEM_TYPE);  
      values.put(StructuredName.GIVEN_NAME, name);  
      context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI,   
      values);  
      }  
      // 向data表插入电话数据  
      if (phoneNum != "")  
      {  
      values.clear();  
      values.put(Data.RAW_CONTACT_ID, rawContactId);  
      values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);  
      values.put(Phone.NUMBER, phoneNum);  
      values.put(Phone.TYPE, Phone.TYPE_MOBILE);  
      context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI,   
      values);  
      } 
    // 向data表插入地址数据  
      if (address != "")  
      {  
      values.clear();  
      values.put(Data.RAW_CONTACT_ID, rawContactId);  
      values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);  
      values.put(Phone.DATA8, address);  
      context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI,   
      values);  
      }
} catch (Exception e) {   
          Log.e(TAG, "InsertContact Error !!!!");   
          return false;   
      }   
      return true;   
   }
/**
* 删除指定联系人
* @param rawContactId
* @param context
*/
public void delete(Context context,long rawContactId){  
context.getContentResolver().delete(ContentUris.withAppendedId(
RawContacts.CONTENT_URI, rawContactId), null, null);  
}
/**
* 删除所有联系人
* @param context
*/
public static void deleteAllContacts(Context context){
context.getContentResolver().delete(RawContacts.CONTENT_URI, null, null);
}
/**

*仅仅用于判断该蓝牙设备是否有联系人

*/
public static boolean queryCurrentContacts(Context context,String address){
// 获取用来操作数据的类的对象,对联系人的基本操作都是使用这个对象  
ContentResolver cr = context.getContentResolver();  
String selection = Phone.DATA8 + " = ?";
String[] selectionArgs = {address};
Uri phoneUri=Uri.parse("content://com.android.contacts/data/phones");//对联系人的基本操作
// 查询contacts表的所有记录
Cursor cur = cr.query(phoneUri, null,selection,selectionArgs, null);
if ((null != cur) && (cur.getCount() > 0)){
Log.d(TAG, "查询到有数据数量为:"+cur.getCount());
return true;
}
return false;
}

}






部分转自http://blog.csdn.net/lksodit_yiyi/article/details/7887348

0 0
原创粉丝点击