【问题标题】:take contacts display pic by number获取联系人按数字显示图片
【发布时间】:2012-08-10 15:11:13
【问题描述】:

我正在开发一个 Android 应用程序。在我的应用程序中,我必须显示联系人显示名称和显示图片。为了按号码获取联系人显示名,我使用以下代码。

 public String getContactDisplayNameByNumber(String number) {
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
    String name = " ";

    ContentResolver contentResolver = getContentResolver();
    Cursor contactLookup = contentResolver.query(uri, new String[] {BaseColumns._ID,
            ContactsContract.PhoneLookup.DISPLAY_NAME }, null, null, null);

    try {
        if (contactLookup != null && contactLookup.getCount() > 0) {
            contactLookup.moveToNext();
            name = contactLookup.getString(contactLookup.getColumnIndex(ContactsContract.Data.DISPLAY_NAME));

            //String contactId = contactLookup.getString(contactLookup.getColumnIndex(BaseColumns._ID));
        }
    } finally {
        if (contactLookup != null) {
            contactLookup.close();
        }
    }

    return name;
}

它工作正常。请帮我获取这样的联系人显示图片。

【问题讨论】:

  • 这可能是重复的stackoverflow.com/a/8695649/704374
  • @Akshay ..你是对的..但是这个问题只针对显示名称..这就是我没有检查的原因。谢谢您的帮助。如果您将其发布为答案,那么我可以接受。:)

标签: android android-contentprovider


【解决方案1】:

以下代码适用于我。

public Drawable getContactDisplaypicByNumber(String number) {
    Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));

    String contactId = null;
    InputStream input = null;
    String[] projection = new String[] {
            ContactsContract.PhoneLookup.DISPLAY_NAME,
            ContactsContract.PhoneLookup._ID};
        Drawable d=null;

    ContentResolver contentResolver = getContentResolver();
    Cursor contactLookup = contentResolver.query(uri,projection, null, null, null);


    if (contactLookup.moveToFirst()) {
        contactId = contactLookup.getString(contactLookup.getColumnIndex(ContactsContract.PhoneLookup._ID));

        Uri uri1 = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, Long.parseLong(contactId));
        input = ContactsContract.Contacts.openContactPhotoInputStream(contentResolver, uri1);


    }
    else {

        Log.v("ffnet", "Started uploadcontactphoto: Contact Not Found @ " + number);

        return d; // contact not found

    }

    if (input == null) {
        Log.v("ffnet", "Started uploadcontactphoto: No photo found, id = " + contactId + " name = " + name);
        d=getResources().getDrawable(R.drawable.ic_launcher);
        return d; // no photo
    } else {

        Log.v("ffnet", "Started uploadcontactphoto: Photo found, id = " + contactId + " name = " + name);
        d=Drawable.createFromStream(input, "");
        System.out.println("ddddddddddddddddddddddddddddddddd"+d);
        return d;
    }

}

【讨论】:

    猜你喜欢
    • 2021-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-01
    • 2014-01-19
    • 2014-01-14
    相关资源
    最近更新 更多