1
연락처에 lookupkeys가 있습니다. 이제 lookupkeys를 사용하여 연락처 이미지를 Bitmap/InputStream으로 가져 오려고합니다. Android 설명서는 이미지를 가져 오는 데 도움이되지만 연락처 ID는 lookupkey가 아닙니다."lookupKey"를 사용하여 연락처 이미지를 얻는 방법?
public InputStream openPhoto(long contactId) {
Uri contactUri = ContentUris.withAppendedId(Contacts.CONTENT_URI, contactId);
Uri photoUri = Uri.withAppendedPath(contactUri, Contacts.Photo.CONTENT_DIRECTORY);
Cursor cursor = getContentResolver().query(photoUri,
new String[] {Contacts.Photo.PHOTO}, null, null, null);
if (cursor == null) {
return null;
}
try {
if (cursor.moveToFirst()) {
byte[] data = cursor.getBlob(0);
if (data != null) {
return new ByteArrayInputStream(data);
}
}
} finally {
cursor.close();
}
return null;
}
기둥에서 게시물로 달리기는하지만 도움이되지 않습니다. 감사합니다
편집 @Sreejith Krishnan R에 의해 제안하지만 로그 캣에서 다음 예외를 수신 한 시도 2012년 4월 9일이
09-04 03:16:26.359: E/AndroidRuntime(24008): java.lang.IllegalArgumentException: URI: content://com.android.contacts/contacts/lookup/0r272-382C544E2C562C382C4E582C42.2649i11.1987r6285-382C544E2C562C382C4E582C42.1987r6440-382C544E2C562C382C4E582C42.2829r6475-382C544E2C562C382C4E582C42/photo, calling user: com.xyz, calling package:com.xyz
09-04 03:16:26.359: E/AndroidRuntime(24008): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:144)
09-04 03:16:26.359: E/AndroidRuntime(24008): at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114)
@ t0mm13b 작업하지 않고 질문을 편집했습니다. –
[이것에 따라] (http://developer.android.com/reference/android/provider/ContactsContract.Contacts.html#CONTENT_LOOKUP_URI)'LOOKUP_KEY'를 첨부해야합니다 ** unencoded ** -'Uri.withAppendedPath (ContactsContracts.Contacts.CONTENT_LOOKUP_URI, lookup_key)'대신. – Joe
@coding crow 나는 대답을 업데이트했다. 당신은 그것을 사용할 수 있습니다 –