2011-09-08 8 views
0

나는 페이스 북의 연락처 (사진 포함) 및 스카이프 연락처 (사진 포함)와 연결된 Google 연락처가 있습니다.연락처 사진을 올바르게 얻는 방법?

연락처 (주소록 응용 프로그램을 통해)에 대한 skype 사진을 선택했습니다. 주소록에는 선택된 (skype) 사진이 표시됩니다.

내 앱을 시작하십시오. 연락처 ID로 ContactsContracts.Contacts.CONTENT_URI에서 사진 ID를 요청하십시오. "Image"에 사진로드. 모두 잘 보인다 - 사진이로드되었습니다. 내 애플 리케이션을 마친다.

나는 연락처 (주소록 응용 프로그램을 통해)에 대한 페이스 북 사진을 선택합니다. 주소록에는 선택된 (페이스 북) 사진이 표시됩니다.

내 앱을 시작하십시오. 연락처 ID로 사진 ID를 다시 요청하십시오. 받은 사진의 아이디는 이전 아이디와 다릅니다. "Image"에 사진로드. 사진이로드되지 않았습니다. LogCat : "잘못된 비트 맵 URI에서 relolveUri가 실패했습니다 : ...". 왜??? 내 코드의

일부 부품 :

Cursor photoCursor = managedQuery(
    ContactsContract.Contacts.CONTENT_URI, 
    new String[]{ ContactsContract.Contacts.PHOTO_ID }, 
    ContactsContract.Contacts._ID + "=?", 
    new String[]{ contactId }, 
    null); 

String photoId = photoCursor.getString(photoCursor.getColumnIndex(ContactsContract.Contacts.PHOTO_ID)); 
Uri photoUri = Uri.withAppendedPath(ContactsContract.Data.CONTENT_URI, photoIdByContatId); 

ImageView imageView = (ImageView)findViewById(R.id.photo); 
imageView.setImageURI(photoUri); 

답변

0

이 시도,

Cursor photoCursor = managedQuery(

       new String[]{ContactsContract.Contacts._ID + "=?", 
       String.valueOf(ContactsContract.Contacts.Photo.MIMETYPE+ "=?")}, 
       new String[]{contactId, 
String.valueOf(ContactsContract.CommonDataKinds.Photo.CONTENT_ITEM_TYPE) } 
null); 
+0

MIMETYPE는 ContactsContract.Data.CONTENT_URI 필요합니다. ContactsContracts.CONTENT_URI에서 사진 ID를받습니다. – Eugene

+0

ContactsContract.Data.CONTENT_URI에서 사진 ID를 받으면 동일한 사진 ID로 두 개의 레코드가 반환됩니다. 이 ID는 내 것과 비슷합니다. – Eugene

관련 문제