自从他们弃用该类型以来,这个问题还没有得到回答Contacts.People
,我能找到的所有答案仍然涉及它的使用。不使用People.NAME
andPeople.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.NAME
和People.NUMBER
列。
这个ContactsContract
类是一个拜占庭式的......东西,我找不到任何看起来与People.NAME
or有任何关系的东西People.NUMBER
,所以说“只需阅读文档ContactsContract
”的答案完全没有帮助。
也许在它已经被标记为[重复]之后编辑它没有什么意义,因为没有人会读它。
最糟糕的是,由于我不能发表评论,我不能要求澄清这个问题的其他版本。我得问一个新问题。