调用Android联系人列表的不推荐方法是什么?

时间:2013-11-18 18:35:27

标签: android contactscontract contact-list

这个问题没有得到解答,因为他们弃用了Contacts.People类型,我找到的所有答案仍然涉及它的使用。如何在不使用People.NAMEPeople.NUMBER的情况下完成?

换句话说,我已经知道你可以用以下方式启动联系人列表:

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
startActivityForResult(intent, 1);

...然后你必须创建一个名为onActivityResult的方法,它必须如下所示:

public void onActivityResult(int reqCode, int resultCode, Intent data) {
    super.onActivityResult(reqCode, resultCode, data);
    switch (reqCode) {
    case (1):
        if (resultCode == Activity.RESULT_OK) {
            Uri contactData = data.getData();
            Cursor c = this.getContentResolver()    
                       .query(contactData,
                            null,
                            null,
                            null,
                            null);

            if (c.moveToFirst()) {
                int contact_id = c.getInt(c
                        .getColumnIndexOrThrow(ContactsContract.?????????));
            }
        }
        break;
    }
}

...那么,我期望在Cursor c找到哪些未弃用的列名?我找不到有关此问题的任何更新文档,Google仅返回已弃用的People.NAMEPeople.NUMBER列的示例。

ContactsContract类是拜占庭式的......的东西,其中我找不到任何与People.NAMEPeople.NUMBER有关的内容,所以回答说“只是阅读ContactsContract的文档”是完全没有用的。

在将它标记为[重复]之后编辑它可能没什么意义,因为没有人会读它。

最糟糕的是,由于我无法发表评论,我不能要求澄清这个问题的其他版本。我不得不问一个新问题。

1 个答案:

答案 0 :(得分:0)

有关详细信息,请参阅以下链接 http://developer.android.com/training/contacts-provider/index.html