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