是否有显示地址簿应用程序的意图?
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")))
就像问题一样简单。 我想知道是否有显示联系人应用程序的共同意图,以便用户可以看到联系人列表。
我注意到有选择联系人、显示联系人、添加和编辑联系人的意图,但所有这些都是针对单个联系人的(全部写成 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")))