0

自从他们弃用该类型以来,这个问题还没有得到回答Contacts.People,我能找到的所有答案仍然涉及它的使用。不使用People.NAMEandPeople.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.NAMEor有任何关系的东西People.NUMBER,所以说“只需阅读文档ContactsContract”的答案完全没有帮助。

也许在它已经被标记为[重复]之后编辑它没有什么意义,因为没有人会读它。

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

4

1 回答 1

0

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

于 2013-11-18T18:45:00.303 回答