在android中读取联系人

发布于 2024-12-29 09:27:16 字数 261 浏览 2 评论 0原文

是否可以从我的应用程序的联系人列表中读取多个联系人?? 我发现的是如何接收联系人列表并循环访问该列表。

如何在 Android 2.0 上读取联系人

但是是否可以从联系人列表中选择其中一些。我是否需要创建一个单独的布局来选择我选择的联系人,并使用联系人列表中的数据加载该布局?请帮忙。

Is it possible to read more than one contact from the contact list from my app.??
what i found is how to receive a list of contacts and loop through the list.

How to read contacts on Android 2.0

but is it possible to select a few of them from the list of contacts.do i need to create a seperate layout for selecting the contacts of my choice and load that layout with data from the contacts list?? please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

女皇必胜 2025-01-05 09:27:16

显然,您可以从联系人列表中选择您选择的联系人。但是您只需要在查询中找到适当的“where”子句(即您想要从列表中选择什么类型的联系人)。

是的,您需要创建单独的布局来显示它们。

例如:通过电话号码获取联系人

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, ContactsContract.Contacts.HAS_PHONE_NUMBER+"='true'", null, null);  // gives you the list of contacts who has phone numbers

while (cursor.moveToNext()) { 

     String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
     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));                 
      }
      phones.close(); 
}

希望我能正确理解您的要求。如果没有,请告诉我!

Obviously you are able to select contacts of your choice from list of contacts.But you just need to find a proper "where" clause in query(i.e. what type of contacts you want from list).

And yes,you need to create separate layout to show them up.

For Example: Getting contacts with phone number

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null, ContactsContract.Contacts.HAS_PHONE_NUMBER+"='true'", null, null);  // gives you the list of contacts who has phone numbers

while (cursor.moveToNext()) { 

     String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
     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));                 
      }
      phones.close(); 
}

Hope,i get your requirement correctly.If not,please let me know!

青春有你 2025-01-05 09:27:16
  1. 基本上,您需要遍历所有联系人及其独特的
    id 称为 contact_id。

  2. 避免在循环的游标内使用游标。

尝试这个演示应用程序。看看它以正确的 Android 方式读取联系人的速度有多快

附加源代码< /a>

  1. Basically you need to iterate through all contacts with their unique
    id called contact_id.

  2. Avoid using cursors inside cursors in the loop.

try this demo app. see how quickly it reads contacts in a proper android way

Source code attached

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文