2014-06-23 3 views
0

gmail이나 Facebook 및 연락처와 유사한 정보를 저장하는 다른 앱에서 반환 된 연락처가 아닌 Android 기기에서 연락처를 검색하려고합니다. 나는 폰갭 연락처 플러그인에서이 코드 블록과 주변 연주되었습니다휴대 전화 나 심 (sim)에 저장된 Android 기기 만 가져 오기

Cursor idCursor = mApp.getActivity().getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
    new String[] { ContactsContract.Data.CONTACT_ID }, 
    whereOptions.getWhere(), 
    whereOptions.getWhereArgs(), 
    ContactsContract.Data.CONTACT_ID + " ASC"); 

나는 다양한 인수를 수정하고 행운과 ContactsContract.RawContacts.ACCOUNT_TYPE를 기반으로 쿼리 시도. 위의 코드 블록을 수정하여 필요한 것을 얻을 수 있습니까? 연락처는 다음과 같은 속성에 의해 결정되는 일정한 접촉에 표시

답변

0

여부 :이 설명하기 위해 쿼리 중 하나를 수정

ContactsContract.Contacts.IN_VISIBLE_GROUP 

과는 접촉이 정말로 연락처 (하지가 반환 제거 Gmail과 역사, ... 등)과 같이 단순히 제공된 검색어와 일치하는 ID를 얻을 수

options.setWhere("(" + ContactsContract.Contacts.IN_VISIBLE_GROUP + " = 1 AND " + ContactsContract.Data.CONTACT_ID + " LIKE ?)"); 

코르도바 연락처 플러그인에서 원래 문제의 쿼리(), 수정하는 쿼리는 나중에 하나입니다 플러그인 코드에서 (더 정확하게 co getWhere() 기능을 rresponding하는)을 IN_VISIBLE_GROUP 특성을 고려하여 수정 :

Cursor c = mApp.getActivity().getContentResolver().query(ContactsContract.Data.CONTENT_URI, 
      columnsToFetch.toArray(new String[] {}), 
      idOptions.getWhere(), 
      idOptions.getWhereArgs(), 
      ContactsContract.Data.CONTACT_ID + " ASC"); 

나는 my github에 플러그인의 수정 된 버전을 개최했다. 내 버전은 검색어가없는 경우에만 작동합니다.