简单问题。 我想知道是否有共同的意图来显示联系人应用,以便用户可以看到联系人列表。
我注意到有选择联系人,显示联系人,添加和编辑联系人的意图,但所有这些都是针对一个联系人(所有写的here)...
我想我可以查询其中一个意图,看看哪个应用程序处理它,然后启动它,但是可能有更好的方法吗?
答案 0 :(得分:0)
您可以使用以下代码段
Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT);
在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;
}
}
答案 1 :(得分:0)
好的,使用" pskink"找到了答案。用户的评论:
startActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_APP_CONTACTS));
但是,IDE警告它需要API 15及更高版本。我想知道它之前是如何运作的。例如,发射器如何显示应用程序图标,知道哪个应用程序会打开它。
编辑:
对于以前版本的Android,您可以使用:
startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("content://contacts/people")))