2 * 根据电话号码取得联系人姓名
3 */
4 public static String getContactNameByPhoneNumber(Context context, String address) {
5 String[] projection = { ContactsContract.PhoneLookup.DISPLAY_NAME,
6 ContactsContract.CommonDataKinds.Phone.NUMBER };
7
8 // 将自己添加到 msPeers 中
9 Cursor cursor = context.getContentResolver().query(
10 ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
11 projection, // Which columns to return.
12 ContactsContract.CommonDataKinds.Phone.NUMBER + " = '"
13 + address + "'", // WHERE clause.
14 null, // WHERE clause value substitution
15 null); // Sort order.
16
17 if (cursor == null) {
18 Log.d(TAG, "getPeople null");
19 return null;
20 }
21 for (int i = 0; i < cursor.getCount(); i++) {
22 cursor.moveToPosition(i);
23
24 // 取得联系人名字
25 int nameFieldColumnIndex = cursor
26 .getColumnIndex(ContactsContract.PhoneLookup.DISPLAY_NAME);
27 String name = cursor.getString(nameFieldColumnIndex);
28 return name;
29 }
30 return null;
31 }
32
33 /**
34 * 获取所有联系人内容
35 * @param context
36 * @param address
37 * @return
38 */
39 public static String getContacts(Context context) {
40 StringBuilder sb = new StringBuilder();
41
42 ContentResolver cr = context.getContentResolver();
43 Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
44 null, null, null);
45
46 if (cursor.moveToFirst()) {
47 do {
48 String contactId = cursor.getString(cursor
49 .getColumnIndex(ContactsContract.Contacts._ID));
50 String name = cursor
51 .getString(cursor
52 .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
53 //第一条不用换行
54 if(sb.length() == 0){
55 sb.append(name);
56 }else{
57 sb.append("\n" + name);
58 }
59
60 Cursor phones = cr.query(
61 ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
62 null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID
63 + " = " + contactId, null, null);
64 while (phones.moveToNext()) {
65 String phoneNumber = phones
66 .getString(phones
67 .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
68 // 添加Phone的信息
69 sb.append("\t").append(phoneNumber);
70
71 }
72 phones.close();
73
74 } while (cursor.moveToNext());
75 }
76 cursor.close();
77 return sb.toString();
联系人头像
// 取得Intent中的頭像
ivShowImage = (ImageView) findViewById(R.id.call_log_detail_contact_img);
//通话电话号码获取头像uri
Uri uriNumber2Contacts = Uri
.parse("content://com.android.contacts/"
+ "data/phones/filter/"+ strPhoneNumber);
Cursor cursorCantacts = SApplication.nowSApplication
.getContentResolver().query(uriNumber2Contacts, null,null,
null,null);
if(cursorCantacts.getCount() >0) {//若游标不为0则说明有头像,游标指向第一条记录
cursorCantacts.moveToFirst();
Long contactID = cursorCantacts.getLong(cursorCantacts
.getColumnIndex("contact_id"));
Uri uri = ContentUris.withAppendedId(
ContactsContract.Contacts.CONTENT_URI, contactID);
InputStream input = ContactsContract.Contacts
.openContactPhotoInputStream(
SApplication.nowSApplication
.getContentResolver(), uri);
btContactImage = BitmapFactory.decodeStream(input);
Log.i("info","bt======"+ btContactImage);
ivShowImage.setImageBitmap(btContactImage);
} else{//么有头像设置默认头像
ivShowImage
.setImageResource(R.drawable.call_log_contact_image2);
}