android通过查询电话号码获取联系人信息

  1. // 取得Intent中的頭像
  2. ivShowImage = (ImageView) findViewById(R.id.call_log_detail_contact_img);
  3. //通话电话号码获取头像uri
  4. Uri uriNumber2Contacts = Uri
  5. .parse("content://com.android.contacts/"
  6. + "data/phones/filter/" + strPhoneNumber);
  7. Cursor cursorCantacts = SApplication.nowSApplication
  8. .getContentResolver().query(uriNumber2Contacts, null, null,
  9. null, null);
  10. if (cursorCantacts.getCount() > 0) { //若游标不为0则说明有头像,游标指向第一条记录
  11. cursorCantacts.moveToFirst();
  12. Long contactID = cursorCantacts.getLong(cursorCantacts
  13. .getColumnIndex("contact_id"));
  14. Uri uri = ContentUris.withAppendedId(
  15. ContactsContract.Contacts.CONTENT_URI, contactID);
  16. InputStream input = ContactsContract.Contacts
  17. .openContactPhotoInputStream(
  18. SApplication.nowSApplication
  19. .getContentResolver(), uri);
  20. btContactImage = BitmapFactory.decodeStream(input);
  21. Log.i("info", "bt======" + btContactImage);
  22. ivShowImage.setImageBitmap(btContactImage);
  23. } else {//么有头像设置默认头像
  24. ivShowImage
  25. .setImageResource(R.drawable.call_log_contact_image2);
  26. }

获取联系人URL使用下面这个,小米手机会出现有些手机号码获取不了,号码如果是固话如(0208888888)也获取不到详情的问题:

context.getContentResolver().query(
Phone.CONTENT_URI,
projection,
Phone.NUMBER + " = '" + telephoneNumber + "'",
null,
null);

上一篇:【Android Developers Training】 98. 获取联系人列表


下一篇:Linux 缩减逻辑卷