2013-01-31 1 views
1

startActivityForResult를 사용하여 연락처를 선택한 다음 onActivityResult를 사용하여 결과를 가져 오려고합니다.android contact picker onActivityResult

나는이 예를 Java android how to use contact picker에 따라왔다. 하여 onActivityResult가 호출되지 않습니다 그러나

addButton.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
     Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 

      Log.d(this.getClass().getName(), "Add button"); 

      startActivityForResult(intent, PICK); 
     } 
    }); 

: 나는 내 AndroidManifest.xml에 문제가 될 수 있는지 궁금 해서요

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    Log.d(this.getClass().getName(), "onActivityResult"); 

    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == PICK && 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)); 

      Log.d(this.getClass().getName(), "Selected "+name); 
     } 
    } 

} // onActivityResult 

이 코드는 제대로 연락 선택기를 호출합니다. READ_CONTACTS 권한이 있습니다. 나는 주변에서 인터넷 검색을하고 활동을 시작하고 활동을 기다리는 활동에이 인 텐트 필터를 추가했으나 차이점도 없었다.

<intent-filter> 
      <action android:name="android.intent.action.PICK"/> 
      <category android:name="android.intent.category.DEFAULT"/> 
      <data android:scheme="content" android:path="contacts"></data> 
</intent-filter> 

전화 동작은 버튼을 누를 때 연락처 목록이 표시 될 것입니다하지만이 항목을 선택하면, 그것은 다시 내 응용 프로그램을 제어 할 수 없다.

제임스

답변

0

나는이 문제를 발견했다. 위의 코드에는 아무런 문제가 없었지만 TabActivity 내에있었습니다. Tab Fragments로 전환하여 문제를 해결했습니다.

관련 문제