2012-12-11 2 views
4

내가 상대의 표시 이름을 조회하기 위해 노력하고있어 반환 지금 여기질의 연락처 가끔 빈 커서

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
    case REQ_CODE_PICK_CONTACT: 
     if (resultCode == Activity.RESULT_OK) { 
      Uri contactUri = data.getData(); 

      ContentResolver cr = getActivity().getContentResolver(); 
      Cursor c = cr.query(contactUri, null, null, null, null); 

      if (c != null && c.moveToFirst()) { 
       //get the contact name 
      } 
     } 
     break; 
    } 
} 

문제입니다 : 커서가 빈 반환 일부 연락처가 들어

, 나는하지 않습니다 이유를 찾아라. 등 페이스 북, 구글, 전화

- //com.android.contacts/data/3032

이 열린 내가 노력 연락처 모든 종류의 같은 보이는 : 내용 : 이 나는 ​​모양, contactUri의 값을 확인

일부 연락처의 경우 커서가 결과와 함께 반환되며 이는 양호하며 이름을 추출 할 수 있습니다. 그러나 ContentUri가 정확히 같아도 Intent.getData()에서 비롯된 것으로 여겨지기도합니다. 페이스 북의 연락처입니다 빈 커서를 가지고

  • 모든 연락처 : 여기

    이 이상한 문제를 함께 할 수있는 뭔가가있을 수 있습니다 몇 가지 사실입니다. 우리는 위와 같이 보인다.

  • 모든 페이스 북 연락처가 다음과 같은 원인이됩니다. HTC One X가있는 경우, OS가 해당 연락처를 찾으면 연락처 사이에 "링크"할 수 있습니다 (예 : 비슷한 전화 번호를 발견하면 Gmail 계정 및 페이 스북 acount, 그들 사이에 "링크"제안). "Linked"가 아닌 페이스 북의 연락처 만 비어있게됩니다.

지금은 아이디어가 없습니다. 전에 만난 사람이 있습니까?

미리 감사드립니다.

+0

동일한 문제가 있습니다. 힌트를 찾았 니? – ticofab

답변

1

HTC Incredible S에서 동일한 문제가 발생하여 HTC 휴대 전화 문제 일 수 있다고 생각됩니다. 어쨌든, 내가 사용을 종료 한 해결 방법은 data 인 텐트로 돌아 오는 번들에서 전화 번호를 검색하는 것입니다. 당신이 PhoneLookup를 사용하여 연락처의 다른 데이터를 가져 오기 위해 일부 "역 논리"를 수행해야합니다 그 시점에서

final String phoneNumber = data.getStringExtra("android.intent.extra.PHONE_NUMBER"); 

.

+0

고마워, 나는 그 사람들을 무시하기로 결정했다. 어쨌든 전화 번호 만 필요하므로 페이스 북의 연락처는 포함되지 않습니다. – nbtk

+0

이 속임수로 전화 번호를 알아 내고 그 사람들을 포함시킬 수 있습니다 :) – ticofab

+0

시도해 보겠습니다. 고마워요 :) – nbtk