-1

ねえ、私には、電話の画像をアプリに表示するのに問題があるプログラマーがいます。次のコードは、彼が連絡先の写真を取得するために使用しているものです。

private long getContactIdFromNumber(String number) {
    Cursor c = null;
    try {
        String[] projection = new String[] { Contacts.Phones.PERSON_ID };
        Uri contactUri = Uri.withAppendedPath(
                Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(number));
        c = getContentResolver().query(contactUri, projection, null, null,
                null);

        if (c.moveToFirst()) {
            long contactId = c.getLong(c
                    .getColumnIndex(Contacts.Phones.PERSON_ID));
            return contactId;
        }
    } finally {
        c.close();
    }
    return -1;
}

private boolean initPhoto() {
    boolean result = true;
    try {
        contactPhoto = People.loadContactPhoto(getApplicationContext(),
                ContentUris.withAppendedId(People.CONTENT_URI,
                        getContactIdFromNumber(phoneNumber)),
                R.drawable.header, null);
    } catch (Exception e) {
        result = false;
    }
    return result;
}

if (initPhoto()) {
   contact1.setImageBitmap(contactPhoto);
   contact2.setImageBitmap(contactPhoto);
   contact3.setImageBitmap(contactPhoto);
}

電話番号と画像を連絡しましたが、アプリに読み込まれません。正しい電話番号を取得していることを確認するために、上記のコードで彼は何を探す必要がありますか?

4

2 に答える 2

0

連絡先契約の代わりに連絡先を使用する必要がありますか?連絡先はAPIレベル5で非推奨になりました。

電話番号の写真を読み込もうとしている場合は、ContactsContract.PhoneLookupを使用してください。android.provider.ContactsContract.PhoneLookupのリファレンスドキュメントに例があります。そのテーブルをクエリすると、連絡先のLOOKUP_KEYが返されます。これを使用して、ContactsContract.Contacts.Photoをクエリします。

于 2012-12-18T21:20:36.743 に答える
0

番号の形式が正しくないことが判明しました。それはxxxxxxxxxxを探していました、そして、番号は電話でこのように(xxx)xxx-xxxxだったので、それは決して一致しませんでした。

于 2012-12-19T13:03:58.410 に答える