2016-09-27 1 views
0

질문과 같이 간단합니다. 사용자가 연락처 목록을 볼 수 있도록 연락처 앱을 표시 할 공통의 ​​의도가 있는지 알고 싶습니다.주소록 앱을 표시 할 의도가 있습니까?

내가 추가하고 연락처를 편집, 연락처를 따기 연락처를 보여주기위한 의도가났습니다 만, 그 모든 내가 추측

... 단일 접점 (모든 here을 작성)위한 그러한 의도 중 하나를 질의하고 어떤 앱이 그것을 처리 하는지를 볼 수 있으며, 단지 그것을 시작하지만 더 나은 방법이있을 수 있습니까?

startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_APP_CONTACTS)); 

:

+0

안녕의 [링크] 봐 (https://developer.android.com/이 training/contacts-provider/retrieve-names.html)을 Android 개발자 페이지에서 다운로드 할 수 있습니다. 다운로드 할 샘플이 있습니다. – Vall0n

+0

@ Vall0n 관련 없음. 연락처 목록을 요청하지 않았습니다. 나는 주소록 응용 프로그램에 갈 의도가 있는지 물었다. –

+0

오, 죄송합니다! 내 잘못이야. – Vall0n

답변

0

확인을이 코드를 추가 아래 코드

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
startActivityForResult(intent, PICK_CONTACT); 

을 사용할 수 있습니다, "pskink"사용자의 의견을 사용하여 답을 발견 그러나 IDE는 API 15 이상이 필요하다고 경고합니다. 전에 어떻게 작동했는지 궁금합니다. 예를 들어 발사기가 어떤 앱이 그것을 열 것인지를 알기 위해 앱 아이콘을 보여주었습니다.


편집 : 안드로이드의 이전 버전

, 당신은 사용할 수 있습니다

startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("content://contacts/people"))) 
+0

'Intent # ACTION_VIEW' 문서 참조 – pskink

+0

URI를 넣으시겠습니까?하지만 넣을 곳은 .setData (Uri.fromParts ("tel", "", null)))를 사용하면 연락처 응용 프로그램이 아닌 전화 응용 프로그램을 열 것입니다 ... –

+0

'Intent' docs, 너는 대답을 찾을거야. 당신의 질문에 – pskink

0

당신은 당신의 onActivityResult를에

@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.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
     // TODO Fetch other Contact details as you want to use 

    } 
    } 
    break; 
} 
} 
+0

필자가 작성한 것처럼 특정 연락처 화면을 열어보고 싶지 않습니다. –

관련 문제