2011-07-05 6 views
8

Android의 기본 제공된 주소록 공급자 URI에서 연락처를 쿼리하고 있습니다. 나는 단지 전화 연락처를 얻고 싶다; 이것을하기위한 일관된 방법이 있습니까? 전화 연락처의 계정 이름이 제조업체와 제조업체에 따라 다릅니다 (this question 참조). 일관성 있고 신뢰할 수있는 제조 업체 및 장치에 구애받지 않는 방식으로 PHONE 연락처 (SIM, Facebook, Twitter 등이 아닌)를 얻을 수있는 방법이 있습니까?Android에서 PHONE 연락처 만 선택하려면 어떻게해야하나요?

+0

전화 번호가있는 모든 연락처를 가져 오시겠습니까? 아니면 SIM 카드에서 가져온 모든 연락처를 의미합니까? – michaelg

+0

전화 번호, 이메일 또는 기타 등등 여부에 관계없이 "전화 상"주소록에 저장된 모든 연락처를 얻으려고했습니다. 내 쿼리를'accounts' 테이블과 결합하고 계정 이름'vnd.sec.contact.phone'을 찾고 그것을 할 수 있다고 생각했지만 온라인으로 읽으면 계정 이름이 제조업체 (그리고 아마도 장치 일까?) 인 것 같습니다. 특유한. – eidylon

답변

-1
  Cursor cursor = null; 

       try { 

        String selection = ContactsContract.Data._ID + " = ?"; 
        String[] selectionArgs = new String[] { id }; 
        String[] projection = new String[] { ContactsContract.PhoneLookup.NUMBER}; 

        cursor = getContentResolver().query(
          ContactsContract.Contacts.CONTENT_URI, 
          projection, selection, selectionArgs, null); 

        if (cursor == null || !cursor.moveToFirst()) 
         return; 

        String phone = cursor.getString(0); 



       } finally { 
        if (cursor != null && !cursor.isClosed()) 
         try { 
          cursor.close(); 
         } catch (Throwable ignore) { 
          // Ignored. 
         } 
       } 

"?" 사용자 ID 인 경우이 코드를 루프에 넣을 수 있습니다.

+0

이 코드를 잘못 읽지 않는 한, 전화 번호가있는 사람 (전화, 시뮬레이션, 페이스 북, 트위터 등)의 모든 연락처를 찾을 수 없습니까? 전화 번호가 있는지 여부에 관계없이 전화로만 연락처를 찾고 싶습니다. – eidylon

+0

당신의 말이 맞습니다. 나는 당신의 질문에 대해 오해했습니다. 나는 특정 사용자 (ID)의 전화 번호를 얻으려고했다고 생각했습니다. 나는 너에게 답을 찾으려고 노력할 것이다. 미안합니다. – vsm

+0

아무 문제 없지만, 어쨌든 노력에 감사드립니다! :) – eidylon

관련 문제