Android 读取通信录号码

读取通讯录关键用到了ContentResolver、Cursor类。

直接贴代码:

ContentResolver contentResolver = getContentResolver();
        Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        if (cursor.moveToFirst()) { // 游标移到结果集第一个行
        	int idColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts._ID); // id列的索引值
        	int dispalyNameColumnIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); // 用户名列的索引值
        	do {
        		String contactId = cursor.getString(idColumnIndex); // 获取用户Id值
        		String displayName = cursor.getString(dispalyNameColumnIndex); //获取用户名值
        		int phoneNumberCount = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); // 获取用户号码数量
        		if (phoneNumberCount > 0) {
        			Cursor phoneNumberCursor = getContentResolver().
        					query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, 
        							ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null); // 获取当前用户号码结果集
        			if (phoneNumberCursor.moveToFirst()) { //游标移到所有号码结果集第一个行
        				do {
        					String phoneNumber = phoneNumberCursor.getString(phoneNumberCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); // 获取号码
        				} while (phoneNumberCursor.moveToNext());
        			}
        			phoneNumberCursor.close(); // 关闭游标
        		}
        	} while(cursor.moveToNext()); 
        }
        cursor.close(); // 关闭游标


你可能感兴趣的:(android,String,null,query,通讯)