代码之家  ›  专栏  ›  技术社区  ›  Kakey

在Android中读取联系人

  •  1
  • Kakey  · 技术社区  · 16 年前

    我正在写一个程序来读取安卓.when我正在执行以下代码它成功获取名称,但未能获取电话号码并显示ArrayIndexoutofBoundException….代码是

    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);
        contactView.append(contact);
    
        int numberFieldColumnIndex = people.getColumnIndex(PhoneLookup.NUMBER);
    
        String number = people.getString(numberFieldColumnIndex);
        contactView.append(number);
    }
    
    1 回复  |  直到 16 年前
        1
  •  1
  •   Aaron Saunders    16 年前

    http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/

    boolean hasPhone = (Integer.parseInt(people.getString(
                           people.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0);  
     if (hasPhone)  
     {
         Cursor pCur = cr.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, 
                       null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", 
                       new String[]{id}, null);
         while (pCur.moveToNext()) {
            // process phone numbers
         } 
         pCur.close();
     }