【问题标题】:How to read contact number using Android [closed]如何使用 Android 读取联系人号码 [关闭]
【发布时间】:2012-01-24 21:34:02
【问题描述】:

我想使用 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();
    }                  
    }

提前致谢。

【问题讨论】:

  • 这段代码看起来相当低效。你到底想读什么?只有所有联系人的电话号码,没有其他详细信息?

标签: android


【解决方案1】:

使用以下代码可以轻松读取显示名称和电话号码...!

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();

谢谢....!

【讨论】:

    【解决方案2】:

    对不起,我在代码中搞错了。它现在在工作。 代码是:

    while (pCur.moveToNext())
    {
    字符串 lname = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
    } }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-09
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 2016-03-01
      • 2014-01-22
      • 1970-01-01
      相关资源
      最近更新 更多