2013-03-15 5 views
2

기기에있는 모든 전화 번호가 포함 된 목록을 만들어야합니다.연락처 연락처 - 어떤 연락처를 표시해야합니까? (공개 그룹)

  Uri uri = Data.CONTENT_URI; 
    String[] PROJECTION = new String[] { Data.IN_VISIBLE_GROUP,// 0 
      Data.DISPLAY_NAME, // 1 
      Phone.NUMBER, // 2 
      Phone.TYPE, // 3 
      Phone.LABEL, // 4 
    }; 
    String SELECTION = Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE 
      + "' AND " + Data.IN_VISIBLE_GROUP + " = 1"; 
    String[] SELECTARGS = null; 
    String SORTORDER = null; 
    Cursor c = getContentResolver().query(uri, PROJECTION, SELECTION, 
      SELECTARGS, SORTORDER); 

내 넥서스 4의 코드를 실행, 디스플레이 옵션이 나는 사람들 응용 프로그램 (기본 연락처 관리자) 설정에 상관없이, 커서는 다음과 같습니다 : 그래서 내가 무슨 짓을했는지, 쿼리 ContactsContract.Data.CONTENT_URI했다 항상 같은 연락처로 가득 차 있습니다. 해당 설정에 따라 Data.IN_VISIBLE_GROUP의 값을 변경하면 안됩니까? 내가 놓친 게 있니?

답변

3

문서 ContactsContract.Data 변수 IN_VISIBLE_GROUP에게

INT를 방문하는 읽기 전용 ContactsContract.Contacts를 참조 IN_VISIBLE_GROUP.

이 연락처가 UI에 표시하도록되어 있는지의 지표

ContactsContract.Contacts을 따르고 찾는 IN_VISIBLE_GROUP 같이 설명한다. 연락처에 보이는 그룹에 속한 하나 이상의 원시 연락처가있는 경우 "1"; 그렇지 않으면 "0".

따라서 Data.IN_VISIBLE_GROUP은 피플 앱 공개 상태와 관련이 있습니다. 이 연락처에 대한 ContactsContract.CommonDataKinds.GroupMembershipGROUP_VISIBLE 상태를 반영

신고 : 나와 당신이 here 이동 당신이 그것을 클릭 한편


. 상수 값 "in_visible_group"

GROUP_VISIBLE가 참조 :이 그룹에 속하는 모든 연락처 사용자 인터페이스 표시되어야 하는지를 나타내는

플래그.

유형 : INTEGER (부울) 상수 값 : "group_visible"

고려하면 예상대로 작동합니다 마지막 2 따옴표를 복용!

+0

IN_VISIBLE_GROUP에 GROUP_VISIBLE이 반영되어 있지 않습니까? –