使用ACTION_EDIT和startActivityForResult()获取已编辑联系人的详细信息

时间:2015-07-07 17:18:55

标签: android android-intent android-contentprovider android-contacts android-contentresolver

我正在维护我的应用程序的联系人列表。首先,我使用ACTION_PICKintent选择联系人。我将这些联系人与CONTACT_ID一起保存在我的本地数据库中。现在,用户可以选择编辑任何联系人以添加我的应用程序所需的一些额外信息。我用ACTION_EDIT触发了编辑意图。我这里有两个问题

  1. 我正在将CONTACT_ID保存到我的数据库中,以便在编辑意图中使用。第一个问题是这个版本在版本后会发生变化吗因为碰巧我无法再为同一个联系人打开联系编辑器。

  2. 第二个问题是如何读回此编辑联系人的所有详细信息?我在我的onActivityResult()中得到了这个。我试图使用相同的代码,我正在使用,但在编辑的情况下返回的数据结构似乎不同。

1 个答案:

答案 0 :(得分:0)

你可以使用像

这样的游标从联系人那里获取任何数据
String[] projection = new String[] {
     ContactsContract.PhoneLookup.DISPLAY_NAME,
     ContactsContract.PhoneLookup._ID};
// query time
Cursor cursor = _context.getContentResolver()
         .query("ContactsContract.Contacts.CONTENT_URI",
                  projection, null, null, null);

if(cursor != null) {
    while ( cursor.moveToNext()) {
        String name = cursor.getString(cursor.getColumnIndex(
                       ContactsContract.PhoneLookup.DISPLAY_NAME));
        // do other stuff
    }
}
cursor.close();

看看https://developer.android.com/training/contacts-provider/retrieve-details.html