2010-07-27 102 views
1

我想使用Android阅读电话号码和姓名。我使用了下面的代码。它只能读取手机名称。我如何阅读电话号码。我在Android中很新。任何一个人都可以。如何使用Android阅读联系电话号码

ContentResolver cr = getContentResolver(); 

Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); 

if (cur.getCount() > 0) 
{ 

    while (cur.moveToNext()) 
    { 

     String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
     String name = cur.getString( cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));    
     if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) 
    { 
      Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null);  
     while (pCur.moveToNext()) 
      { 
       String lnumber = cur.getString(cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
      } 
     pCur.close(); 
    }     
    } 

在此先感谢。

+0

此代码看起来相当低效。你究竟想读什么?只是所有联系人的电话号码,没有其他详细信息? – 2010-07-27 11:33:30

回答

1

对不起,我错了代码中的东西。它的工作现在。 该代码将是:

而(pCur.moveToNext())
{
字符串L-NAME = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}}

2

使用一种简单的方法来阅读显示的姓名和电话号码下面的代码...!

Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null); 
while (phones.moveToNext()) 
{ 
    String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); 
    String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
} 
phones.close(); 

谢谢....!

相关问题