gpt4 book ai didi

Android 获取联系人到应用程序中

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:57:07 24 4
gpt4 key购买 nike

我正在尝试在应用程序内的 ListView 中显示用户电话中的联系人列表。我能够获取联系人,但有些联系人会有多个手机号码,所以我想多次显示那个人。

Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
String name, number = "";
String id;
c.moveToFirst();
for (int i = 0; i < c.getCount(); i++) {
name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));

if (Integer.parseInt(c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id },
null);
while (pCur.moveToNext()) {
number = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
}
Log.i("name ", name + " ");
Log.i("number ", number + " ");
c.moveToNext();

想要显示用户与他拥有的号码数量一样多的次数。我什至可以仅根据 10 位数长的手机号码将其列入候选名单吗?

Example

Name: John Doe
Number 1: xxxxxxxxx
Number 2: xxxxxxxxx

Name: Sarah
Number 1: xxxxxxxxx

这应该返回如下三个列表项

John Doe  xxxxxxxxx
John Doe xxxxxxxxx
Sarah xxxxxxxxx

最佳答案

你可以尝试这样的事情

List<PhoneItem> phoneNoList = new ArrayList<PhoneItem();
Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
String name, number = "";
String id;
c.moveToFirst();
for (int i = 0; i < c.getCount(); i++) {
name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
id = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));

if (Integer.parseInt(c.getString(c.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
Cursor pCur = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id },
null);
while (pCur.moveToNext()) {
phoneNoList.add(new PhoneItem(name, pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER))));
}
}
c.moveToNext();


}

for (PhoneItem row : phoneNoList) {
Log.i("name", row.name);
Log.i("number", row.number+"");
}

[...]

private class PhoneItem {
String name;
String phone;

public PhoneItem(String name, String phone) {
this.name = name;
this.phone = phone;
}
}

关于Android 获取联系人到应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16098768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com