2013-11-25 4 views
1

응용 프로그램에 저장해야하는 확인 가능한 대화 상대 목록을 만들고 사용자가 일부 대화 상대를 확인하고 사용자의 기본 설정을 저장하도록 할 수 있습니다. 환경 설정 활동을 사용하여 모든 연락처를 체크 박스로 표시 할 수 있는지, 예 : 또는 사용자 정의 목록보기로 앱의 사용자 환경 설정을 저장할 수 있는지 여부를 알고 싶습니다.Android에서 확인할 수있는 연락처 목록

+0

그리고 지금까지 시도한 내용은 무엇입니까? –

답변

1

당신은 다음 코드를 사용하여 연락처 데이터를 얻을 수 있습니다 :

 Cursor cursor = getContentResolver().query(
         ContactsContract.Contacts.CONTENT_URI, null, null, 
         null, null); 

       cursor.moveToFirst(); 

       if (cursor.getCount() > 0) { 
        do { 

         try { 
          contactId = cursor 
            .getString(cursor 
              .getColumnIndex(ContactsContract.Contacts._ID)); 

          Uri contactUri = ContentUris.withAppendedId(
            Contacts.CONTENT_URI, 
            Long.parseLong(contactId)); 
          Uri dataUri = Uri.withAppendedPath(contactUri, 
            Contacts.Data.CONTENT_DIRECTORY); 

          Cursor phones = getContentResolver() 
            .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
              null, 
              ContactsContract.CommonDataKinds.Phone.CONTACT_ID 
                + " = " + contactId, 
              null, null); 
          if (phones.getCount() > 0) { 

           try { 
            Cursor nameCursor = getContentResolver() 
              .query(dataUri, 
                null, 
                Data.MIMETYPE + "=?", 
                new String[] { StructuredName.CONTENT_ITEM_TYPE }, 
                null); 
            nameCursor.moveToFirst(); 
            do { 

             String firstName = nameCursor 
               .getString(nameCursor 
                 .getColumnIndex(Data.DATA2)); 

             String displayname = cursor 
               .getString(cursor 
                 .getColumnIndex(Contacts.DISPLAY_NAME_ALTERNATIVE)); 

             lastName = nameCursor 
               .getString(nameCursor 
                 .getColumnIndex(Data.DATA3)); 

            } while (nameCursor.moveToNext()); 
            nameCursor.close(); 

           } catch (Exception e) { 

           } 
          } 
          phones.close(); 
         } 

         catch (Exception t) { 

         } 

        } while (cursor.moveToNext()); 

        } 

을 연락처 이름 또는이 link를 볼 수있는 사용자 지정 목록을 만드는,이 데이터를 표시하는 사용자 정의 어댑터를 만들 필요가 원하는 무엇이든의 목록 가져 오기 후 및 this.

//////////////////////

편집 :

당신이 다음 코드를 사용하여 전화 번호를 얻을 수

:

String number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
+0

Thanx Shayan Pourvatan,하지만 사용자가 일부 연락처를 확인할 수있는 목록 미리보기에 연락처 배열을 제공 할 수 있습니까? 그리고 가능하지 않으면 사용자가 목록 뷰의 사용자 지정 어댑터에서 확인한 연락처를 쉽게 저장할 수 있습니까? 사용자 선호도의 형태로. – user3033262

+0

네, 하나의리스트에'display name'이나'firstname + lastname'을 쉽게 추가 할 수 있고 adapter로 설정할 수 있습니다. 그리고 사용자가 연락처를 확인하면 이름과 원하는 것을 얻을 수 있습니다. 하지만 사용자 정의 어댑터를 만들기위한 링크를 참조하십시오 당신을 위해 유용 –

+0

내 대답은 올바른 마크가 같은 문제를 가진 다른 사람들이 그 대답을 사용할 수 있다고 생각한다면 –