Android 联系人的读取,查询,添加
来源:互联网 发布:d算法 编辑:程序博客网 时间:2024/05/21 19:37
先加读和写权限:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
获取所有联系人,方法1:
<span style="font-size:14px;">/** * 获取联系人,方式1 */private void getContact1() {String uristring = "content://com.android.contacts/contacts";Uri uri = Uri.parse(uristring);ContentResolver resolver = getApplicationContext().getContentResolver();Cursor cursor = resolver.query(uri, new String[] { "_id" }, null, null,null);StringBuilder jpsb = new StringBuilder();while (cursor.moveToNext()) {int contactid = cursor.getInt(0);jpsb = jpsb.append("contactid = " + contactid);String uristring2 = "content://com.android.contacts/contacts/"+ contactid + "/data";Uri uri2 = Uri.parse(uristring2);Cursor datacCursor = resolver.query(uri2, new String[] {"mimetype", "data1", "data2" }, null, null, null);while (datacCursor.moveToNext()) {String type = datacCursor.getString(datacCursor.getColumnIndex("mimetype"));String data1 = datacCursor.getString(datacCursor.getColumnIndex("data1"));if (type.equals("vnd.android.cursor.item/name"))// 姓名{jpsb.append(",name =").append(data1);} else if (type.equals("vnd.android.cursor.item/phone_v2")) {// 电话jpsb.append(",phone = ").append(data1);}}jpsb.append("\n");if (datacCursor != null) {datacCursor.close();}}Log.i(TAG, jpsb.toString());textView.setText(jpsb.toString());if (cursor != null) {cursor.close();}}</span>获取联系人,方法2:
<span style="font-size:14px;">/** * 获取联系人,方式2 */private void getContact2() {string = "";count = 0;ContentResolver resolver = getApplicationContext().getContentResolver();Cursor cursor = resolver.query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null);while (cursor.moveToNext()) {// 取得联系人的名字索引int nameIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);String contact = cursor.getString(nameIndex);string += contact + ":";// 取得联系人的ID索引值String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));// 查询该位联系人的电话号码,类似的可以查询email,photoCursor phone = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "+ contactId, null, null);// 第一个参数是确定查询电话号,第三个参数是查询具体某个人的过滤值// 一个人可能有几个号码while (phone.moveToNext()) {String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));string = string + strPhoneNumber + " ;";}string += "\n";count++;phone.close();}cursor.close();Log.i(TAG, String.valueOf(count));// 设置显示内容textView.setText(string);// 这里需要将String写入文件}</span>
获取联系人,方法3:
public class GetNumber {private static String number;private static String contactName;private static List<PhoneInfo> lists = new ArrayList<PhoneInfo>();/** * 获取通讯录中的联系人姓名及电话号码 * * @param context * @return */public static List<PhoneInfo> getPhoneNum(Context context) {Cursor cursor = context.getContentResolver().query(Phone.CONTENT_URI,null, null, null, null);while (cursor.moveToNext()) {number = cursor.getString(cursor.getColumnIndex(Phone.NUMBER));contactName = cursor.getString(cursor.getColumnIndex(Phone.DISPLAY_NAME));PhoneInfo info = new PhoneInfo(number, contactName);// System.out.println("number :" + number + ",name: " +// contactName);lists.add(info);}return lists;}}
<span style="font-size:14px;">/** * 在同一个事务中完成联系人各项数据的添加 * * 添加联系人 * * @throws Exception */public void addContact() {String uriString = "content://com.android.contacts/raw_contacts";Uri uri = Uri.parse(uriString);ContentResolver resolver = getApplicationContext().getContentResolver();ArrayList<ContentProviderOperation> operations = new ArrayList<ContentProviderOperation>();ContentProviderOperation operation1 = ContentProviderOperation.newInsert(uri).withValue("account_name", null).build();operations.add(operation1);// 添加姓名uri = Uri.parse("content://com.android.contacts/data");ContentProviderOperation operation2 = ContentProviderOperation.newInsert(uri).withValueBackReference("raw_contact_id", 0).withValue("mimetype", "vnd.android.cursor.item/name").withValue("data2", "SB").build();operations.add(operation2);// 添加电话uri = Uri.parse("content://com.android.contacts/data");ContentProviderOperation operation3 = ContentProviderOperation.newInsert(uri).withValueBackReference("raw_contact_id", 0).withValue("mimetype", "vnd.android.cursor.item/phone_v2").withValue("data2", "2").withValue("data1", "18810466333").build();operations.add(operation3);try {resolver.applyBatch("com.android.contacts", operations);} catch (RemoteException e) {e.printStackTrace();} catch (OperationApplicationException e) {e.printStackTrace();} finally {}}</span>
代码下载:http://download.csdn.net/detail/leokelly001/8128721
0 0
- Android 联系人的读取,查询,添加
- Android 联系人的读取,查询,添加
- Android 联系人的读取查询添加
- Android 联系人的读取,查询,添加
- Android 自定义添加,查询联系人
- Android--读取通讯录并添加联系人
- Android--读取通讯录并添加联系人
- Android添加联系人信息并读取
- Android ContentProvider之读取、添加联系人
- Android读取联系人的信息
- Android读取联系人的信息
- Android读取手机的联系人
- 1读取、添加联系人
- 添加和读取联系人
- Android中联系人的操作(读取和写入联系人)
- Android 联系人开发- 查询联系人
- Android联系人2--联系人查询
- Android联系人4--联系人查询
- CSS浮动和清除浮动
- 父页面与子页面之间的调用方法
- Oracle监视sql执行
- PHP草根论之设计模式-代理模式
- 第11周项目3程序的多文件组织
- Android 联系人的读取,查询,添加
- 第11周项目2-求最大公约数
- hdoj 2874 Connections between cities 【Tarjan离线LCA】
- windows 安装python
- 杭州电子地图 高清15、17、19级别 谷歌电子地图资源
- 笔记:oracle的学习笔记1
- 轻松自学ThinkPHP3.0第一天·上午
- ArcEngine 经纬度坐标 画线
- shader 的入门