是否有显示地址簿应用程序的意图?

Is there an intent for showing the address book app ?

就像问题一样简单。 我想知道是否有显示联系人应用程序的共同意图,以便用户可以看到联系人列表。

我注意到有选择联系人、显示联系人、添加和编辑联系人的意图,但所有这些都是针对单个联系人的(全部写成 here)...

我想我可以查询其中一个意图,看看哪个应用程序处理它,然后启动它,但是否有更好的方法?

您可以使用下面的代码片段

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;
}
}

好的,使用 "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")))