2011-03-16 3 views
0

연락처의 모든 전화 번호를 가져 오려고합니다. 커서가있는 연락처와 연결된 번호를 쿼리 할 때 모든 번호의 중복 된 항목이 표시됩니다. 스누핑을 한 후에는 링크 된 프로필 (예 : Google 프로필 및 전화 연락처 프로필) 때문일 것으로 생각됩니다. 숫자를 추출하는 코드는 다음과 같습니다.Android 연락처 검색어 중복 됨

Cursor cursor = getContentResolver().query(
    Phone.CONTENT_URI, 
    new String[]{PhoneLookup.NUMBER}, 
    Phone.CONTACT_ID + "=?", 
    new String[]{id}, null); 
while(cursor.moveToNext()) { 
    String phoneNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
    Toast.makeText(getApplicationContext(), phoneNumber, Toast.LENGTH_LONG).show(); 
} 
cursor.close(); 

이 쿼리를 특정 프로필로 제한하는 방법이 있습니까? 미리 감사드립니다. 나는 이것을 잠시 찾아 보았고 어떤 해결책도 찾을 수 없었다.

답변

0

최근 비슷한 항목 (예 : group by 절 누락)으로 인해 어려움을 겪었으며 ContentProvider의 데이터를 임시 테이블에 삽입하고 결과를 테이블에 쿼리하여 해결할 수있었습니다.

ContentProvider 뒤에있는 데이터는 데이터베이스가 아닐 수도 있습니다. 그것은 XML, JSON, FileSystem 등일 수 있습니다 ... 그래서 이것들은 Group By 옵션이 없기 때문에 그것을 버렸습니다. 또한 count (_id)가 항상 작동한다고 가정 할 수는 없습니다.