gpt4 book ai didi

Android 获取随机联系人

转载 作者:行者123 更新时间:2023-11-29 18:20:36 25 4
gpt4 key购买 nike

我正在尝试从手机的联系人列表中随机获取联系人,但不会明显降低手机的速度。这意味着我不能只抓取所有联系人并将它们粘贴到一个数组中,然后从该数组中随机选择一个。我希望能够获得随机联系人,而不必先获得所有联系人。这可能吗?如果可能,我该怎么做?

最佳答案

已更新为使用未弃用的代码。基于此答案的查询:How to read contacts on Android 2.0

Cursor managedCursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, null, null, null); 

然后就是获取 Cursor 的大小了:

int size = managedCursor.getCount();

随机拿一个,阅读它并检查它是否有电话号码。如果不是,请选择另一个:

boolean found = false;
Random rnd = new Random();
while(!found) {
int index = rnd.nextInt(size);
managedCursor.moveToPosition(index);
String name = managedCursor.getString(people.getColumnIndex(PhoneLookup.DISPLAY_NAME));
found = Boolean.parseBoolean(managedCursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)));
if (found) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId, null, null);
while (phones.moveToNext()) {
String phoneNumber = phones.getString(phones.getColumnIndex( ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.d("Phone found:", phoneNumber);
}
phones.close();
}
}

否则我不明白你怎么能随机挑选一个。这不应该减慢手机的速度,除非它是一个非常大的联系人列表。

现在它检查电话号码是否存在,如果找到则读取所有电话号码。如果不是,它会选择另一个条目。

关于Android 获取随机联系人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5759385/

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