0

私は Android アプリで作業しています。私のアプリでは、連絡先の表示名と displaypic を表示する必要があります。連絡先の表示名を番号で取得するには、次のコードを使用しています。

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

正常に動作しています。このような連絡先displaypicを取得するのを手伝ってください。

4

1 に答える 1

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

}
于 2012-08-16T03:50:01.960 に答える