失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 安卓通讯录【联系人管理】

安卓通讯录【联系人管理】

时间:2020-02-23 19:52:04

相关推荐

安卓通讯录【联系人管理】

废话少说,直接上代码

/*** 添加姓名、电话号码到系统联系人** @param context上下文* @param contactName 姓名* @param phoneNumber 电话号码*/public static void addContact(Context context, String contactName, String phoneNumber) {//先查询要添加的号码是否已存在通讯录中, 不存在则添加. 存在则提示用户Uri uri = Uri.parse("content://com.android.contacts/data/phones/filter/" + phoneNumber);ContentResolver resolver = context.getContentResolver();//从raw_contact表中返回display_nameCursor cursor = resolver.query(uri, new String[]{ContactsContract.Data.DISPLAY_NAME}, null, null, null);if (cursor == null)return;if (cursor.moveToFirst()) {ToastUtils.showToast("存在相同号码");} else {// 创建一个空的ContentValuesContentValues values = new ContentValues();// 向RawContacts.CONTENT_URI空值插入,先获取Android系统返回的rawContactId,后面要基于此id插入值Uri rawContactUri = context.getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);long rawContactId = ContentUris.parseId(rawContactUri);//todo 添加姓名values.clear();values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);values.put(ContactsContract.Data.MIMETYPE, monDataKinds.StructuredName.CONTENT_ITEM_TYPE);// 内容类型values.put(monDataKinds.StructuredName.GIVEN_NAME, contactName);// 联系人名字context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);//添加数据//todo 添加电话values.clear();values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);values.put(ContactsContract.Data.MIMETYPE, monDataKinds.Phone.CONTENT_ITEM_TYPE);values.put(monDataKinds.Phone.NUMBER, phoneNumber);// 联系人的电话号码values.put(monDataKinds.Phone.TYPE, monDataKinds.Phone.TYPE_MOBILE);//电话类型context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);//添加数据//todo 添加Email邮件values.clear();values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);values.put(ContactsContract.Data.MIMETYPE, monDataKinds.Email.CONTENT_ITEM_TYPE);values.put(monDataKinds.Email.DATA, "zhangphil@");// 联系人的地址values.put(monDataKinds.Email.TYPE, monDataKinds.Email.TYPE_WORK);//电子邮件的类型context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);//添加数据//todo 添加组织机构名称values.clear();values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);values.put(ContactsContract.Data.MIMETYPE, anization.CONTENT_ITEM_TYPE);values.put(anization.DATA4, "产品经理");//职务values.put(anization.DATA1, "安荣科技有限公司");//公司context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);//添加数据ToastUtils.showToast("添加联系人成功");}cursor.close();}/*** 删除联系人*/public static void deleteContact(Context context, String name) {//根据姓名求idUri uri = Uri.parse("content://com.android.contacts/raw_contacts");ContentResolver resolver = context.getContentResolver();Cursor cursor = resolver.query(uri, new String[]{ContactsContract.Data._ID}, "display_name=?", new String[]{name}, null);if (cursor == null)return;if (cursor.moveToFirst()) {int id = cursor.getInt(0);//根据id删除data中的相应数据resolver.delete(uri, "display_name=?", new String[]{name});uri = Uri.parse("content://com.android.contacts/data");resolver.delete(uri, "raw_contact_id=?", new String[]{id + ""});Toast.makeText(context, "删除号码成功", Toast.LENGTH_SHORT).show();} else {Toast.makeText(context, "没有找到号码", Toast.LENGTH_SHORT).show();}cursor.close();}/*** 更改联系人*/public static void changeContact(Context context, String name, String newPhone) {//根据姓名求idUri uri = Uri.parse("content://com.android.contacts/raw_contacts");ContentResolver resolver = context.getContentResolver();Cursor cursor = resolver.query(uri, new String[]{ContactsContract.Data._ID}, "display_name=?", new String[]{name}, null);if (cursor == null)return;if (cursor.moveToFirst()) {int id = cursor.getInt(0);ContentValues values = new ContentValues();values.put("data1", newPhone);resolver.update(uri, values, "mimetype=? and raw_contact_id=?", new String[]{"vnd.android.cursor.item/phone_v2", id + ""});} else {Toast.makeText(context, "没有找到号码", Toast.LENGTH_SHORT).show();}cursor.close();}/*** 查询手机联系人*/public static void queryContactsShowData(Context context) {List<HashMap<String, String>> mContactList = new ArrayList<>();mContactList.clear();Cursor cursor = context.getContentResolver().query(monDataKinds.Phone.CONTENT_URI, null, null, null, null);if (cursor == null)return;while (cursor.moveToNext()) {String phoneName;String phoneNumber;HashMap<String, String> listItem = new HashMap<>();phoneName = cursor.getString(cursor.getColumnIndex(monDataKinds.Phone.DISPLAY_NAME));phoneNumber = cursor.getString(cursor.getColumnIndex(monDataKinds.Phone.NUMBER));listItem.put("phoneName", phoneName);listItem.put("phoneNumber", phoneNumber);mContactList.add(listItem);}cursor.close();}

搞定!

如果觉得《安卓通讯录【联系人管理】》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。