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);
- }
-