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

时间:2016-09-27 08:28:54

标签: android android-intent android-contacts

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

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

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

2 个答案:

答案 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")))