有三个步骤,这一过程。
1)权限
添加权限读取数据到您的联系人应用程序清单。
<uses-permission android:name="android.permission.READ_CONTACTS"/>
2)调用联系皮克
在您的活动,创建一个Intent,要求系统能够找到一个可以执行的活动,从在联系人的URI的项目取货行动。
Intent intent = new Intent(Intent.ACTION_PICK, People.CONTENT_URI);
呼叫startActivityForResult
,通过在本意向书(和一个请求代码整数PICK_CONTACT
在此示例)。 这将导致Android的推出是支持活动的登记,以ACTION_PICK
对People.CONTENT_URI
,然后回到这个)活动时作出的选择(或取消。
startActivityForResult(intent, PICK_CONTACT);
3)听力的结果
另外,在您的活动,覆盖onActivityResult
方法,听取了从返回的'选择一个联络人'活动,您在步骤2开始。 您应该检查返回的请求代码相匹配的价值你期待,而结果代码是RESULT_OK
。
你可以调用所选联络的URI getData()
意向书的数据参数。 为了选定联系人的姓名您需要使用该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;
}
}