2011-10-05 4 views

답변

0

여기에서 : How to call Android contacts list?

내가 질문을 질문하도록되어 무엇을 100 % 잘 모르겠지만, 다음 코드는 사용자가 연락처 목록 함수를 호출 '도움이 될 것입니다, 다음, 연락처를 선택 [로 복귀하여 ] app에 연락처의 이름을 입력하십시오.

이 과정에는 세 가지 단계가 있습니다.

1) 권한

은 응용 프로그램 매니페스트에 연락처 데이터를 읽을 수있는 권한을 추가합니다. 당신의 활동 내에서 연락처 선택 도구

를 호출

<uses-permission android:name="android.permission.READ_CONTACTS"/> 

2), 연락처 URI의 항목에서 PICK 작업을 수행 할 수있는 활동을 찾을 수있는 시스템을 묻는 의도를 만들 수 있습니다. 이 텐트 (및 요청 코드의 정수이고,이 예에서는 PICK_CONTACT) 전달

Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI); 

통화 startActivityForResult. 그러면 People.CONTENT_URI에서 ACTION_PICK을 지원하도록 등록 된 활동을 Android가 실행하게 한 다음 선택이 완료되거나 취소 될 때이 활동으로 돌아갑니다. 결과 액티비티에서 또한

듣기

startActivityForResult(intent, PICK_CONTACT); 

3), 당신은 확인해야 2 단계에서 시작 활동 '연락처 선택'을의 반환을 수신 할 수있는 onActivityResult 메소드를 오버라이드 (override) 반환 된 요청 코드가 예상 한 값과 일치하고 결과 코드가 RESULT_OK임을 확인합니다.

데이터 인 텐트 매개 변수에서 getData()을 호출하여 선택한 연락처의 URI를 가져올 수 있습니다. 선택한 연락처의 이름을 얻으려면 해당 URI를 사용하여 새 쿼리를 만들고 반환 된 커서에서 이름을 추출해야합니다. 매니페스트에서

@Override 
public void onActivityResult(int reqCode, int resultCode, Intent data) { 
    super.onActivityResult(reqCode, resultCode, data); 

    switch (reqCode) { 
    case (PICK_CONTACT) : 
     if (resultCode == Activity.RESULT_OK) { 
     Uri contactData = data.getData(); 
     Cursor c = managedQuery(contactData, null, null, null, null); 
     if (c.moveToFirst()) { 
      String name = c.getString(c.getColumnIndexOrThrow(People.NAME)); 
      // TODO Whatever you want to do with the selected contact name. 
     } 
     } 
     break; 
    } 
} 
0

, 당신이 권한을 추가해야합니다

<uses-permission android:name="android.permission.READ_CONTACTS" /> 

다음 활동에서, 당신은 같은 것을 사용하는 것이 : 연락처를

ContentResolver cr = getContentResolver(); 
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, 
       null, null, null, null); 
     if (cur.getCount() > 0) { 
     while (cur.moveToNext()) { 
      String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      String name = cur.getString(
         cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 

      } 
    } 

이 질의를하고 도착 이드와 이름.

0

당신은 아마 연락처

Uri uri = Uri.parse(iduri); 
i.setData(uri); 
Intent i = new Intent(Intent.ACTION_EDIT); 
i.setData(Uri.parse(ContactsContract.Contacts.CONTENT_LOOKUP_URI + "/" + id)); 
startActivityForResult(i, some_int_EDIT_CONTACT); 

이상에 ACTION_EDIT 의도를 보낼

Uri contactUri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, read_id); 
i.setData(contactUri); 
startActivityForResult(i, some_int_EDIT_CONTACT); 

당신이 접촉 ID를 가지고 가정

관련 문제