2017-11-06 30 views
0

를 사용하여 연락처 이름, 전화 번호, 이메일 정보를 얻기 위해 우리가 사용하는 이메일 주소를 얻을 수있는 방법 URI우리가이 URI</p> <pre><code>ContactsContract.CommonDataKinds.Phone.CONTENT_URI </code></pre> <p>를 사용하여 연락처 이름과 전화 번호를 얻을 수 있습니다 로더

ContactsContract.CommonDataKinds.Email.CONTENT_URI 

하지만, , 어떻게 이러한 두 uri를 로더에 전달하고 코드에서와 같이 커서 로더를 다시 계산할 수 있습니다. 이 코드에서 난 단지 이름과 번호를 반환하고있어하지만 어떻게 내가 어떻게 내가

ContactsContract.CommonDataKinds.Email.CONTENT_URI 

return new CursorLoader(this, 
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
       projection, 
       null, 
       null, 
       null); 

답변

1
모두 CommonDataKinds.Phone

CommonDataKinds.Email 실제로 대형의 일부에 전달할 수 있다는 얻기 위해 이메일을 얻을 수 있습니다 테이블 ContactsContract.Data, 해당 테이블에 관심이 없을 수도있는 많은 다른 정보가 포함되어 있으므로 Data.MIMETYPE을 사용하여 관심있는 항목 (전화 및 전자 메일) 만 선택할 수 있습니다.

그래서 CursorLoader 초기화가 같은 것을 할 수 있습니다 : 당신이 전화 당뿐 아니라 CommonDataKinds.Phone.CONTENT_URI에 질의 접촉 당 같은 일을 받고있어 좋아하지만

new CursorLoader(this, 
    ContactsContract.Data.CONTENT_URI, 
    projection, 
    ContactsContract.Data.MIMETYPE + " IN (" + CommonDataKinds.Phone.CONTENT_TYPE + ", " + CommonDataKinds.Email.CONTENT_TYPE + ")", 
    null, 
    null); 

, 참고, 당신은 지금 점점됩니다 전화 당 하나의 행 또는 전자 메일로 연락처별로 집계되지 않습니다.

투영에 Data.MIMETYPE을 추가하고이를 사용하여 현재 행이 전화 행인지 이메일 행인지 확인해야합니다.