关于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
- 关于android 联系人数据库处理
- android 监听联系人数据库
- Android联系人数据库全
- android 联系人数据库
- Android联系人数据库
- android 联系人数据库
- Android 读取联系人数据库
- Android联系人数据库读取
- Android 联系人 数据库解析
- Android 联系人数据库操作
- 关于 android 联系人
- Android手机联系人数据库分析
- android 联系人数据库一些知识点
- Android 联系人数据库表详解
- Android 联系人数据库表详解
- 异常:读取联系人数据库异常处理
- 关于android 联系人,短信,电话记录,需要的uri,数据库中获取的小结,请看注释
- Android 联系人数据库介绍以及对联系人的基本操作
- ADB 常见问题
- 创建GitHub技术博客全攻略
- CSS3第二日--圆角边框
- maven mybatis generator自动生成代码
- Eclipse打war包
- 关于android 联系人数据库处理
- Flex 让组件动起来
- nodejs 设置proxy
- php导出excel表格
- Android Studio更新升级方法
- Swift开发IOS-UIButton
- window.open打开新窗口,防止浏览器阻止弹窗解决办法
- 转:Linux下/etc/shadow文件全面详解
- 影响布局的inline-block的空白符的问题