android2.0contacts的一些方法

本文介绍如何使用Android API遍历电话本联系人信息,包括获取联系人的姓名、电话号码及电子邮件地址等,并提供了查询联系人备注的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

依次浏览你的电话本联系人

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,  
   
null, null, null, null);  
 
while (cursor.moveToNext()) {  
   
String contactId = cursor.getString(cursor.getColumnIndex(  
     
ContactsContract.Contacts._ID));  
   
String hasPhone = cursor.getString(cursor.getColumnIndex(  
     
ContactsContract.Contacts.HAS_PHONE_NUMBER));  
   
if (Boolean.parseBoolean(hasPhone)) {  
               
// You know have the number so now query it like this 
   
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();  
   
}  
   
Cursor emails = getContentResolver().query(  
     
ContactsContract.CommonDataKinds.Email.CONTENT_URI,  
     
null,  
     
ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId,  
     
null, null);  
   
while (emails.moveToNext()) {  
               
// This would allow you get several email addresses  
   
String emailAddress = emails.getString(  
      emails
.getColumnIndex(  
       
ContactsContract.CommonDataKinds.CommonDataColumns.DATA));  
   
}  
   emails
.close();  
 
}  
  cursor
.close(); 

 


得到电话本中的姓名和号码

Cursor people = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 
 
while(people.moveToNext()) { 
 
int nameFieldColumnIndex = people.getColumnIndex(PhoneLookup.DISPLAY_NAME); 
     
String contact = people.getString(nameFieldColumnIndex); 
 
int numberFieldColumnIndex = people.getColumnIndex(PhoneLookup.NUMBER); 
     
String number = people.getString(nameFieldColumnIndex); 
} 
 
people
.close(); 

如果你想得到一些 notes 

private String getNote(long contactId) {  
 
String note = null;  
 
String[] columns = new String[]  
                                   
{ ContactsContract.CommonDataKinds.Note.NOTE };  
 
String where = ContactsContract.Data.RAW_CONTACT_ID + " = ? AND " + ContactsContract.Data.MIMETYPE + " = ?";  
 
String[] whereParameters = new String[]{Long.toString(contactId),  
   
ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE};  
 
Cursor contacts = getContentResolver().query  
 
(ContactsContract.Data.CONTENT_URI, projection, where,  
    whereParameters
, null);  
 
if (contacts.moveToFirst()) {  
   rv
= contacts.getString(0);  
 
}  
  contacts
.close();  
 
return note;  
 
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值