1

我正在尝试编写一种方法来确定联系人是否至少有一个电话号码,目前我有这个:

public boolean hasPhone() {
 Cursor phones = this.map.getContentResolver().query(
  ContactsContract.Contacts.CONTENT_URI,
  null,
  ContactsContract.Contacts._ID + "=" + this.contactId,
  null,
  null
 );
 boolean has = false;
 if(phones.moveToFirst()) {
  do {        
    if(Integer.parseInt(phones.getString(phones.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0) {
      has = true;
      break;
    }
  } while(phones.moveToNext());
 }
 return has;
}

该方法总是返回 false,即使我知道有问题的联系人有电话号码。我也知道contactId是正确的,因为我也用它来获取邮政地址等。

任何帮助将不胜感激,因为我即将把头发扯掉:p

谢谢。

4

1 回答 1

1

尝试这个。替换以下行

ContactsContract.Contacts._ID + "=" + this.contactId,

用这条线

ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + this.contactId,

看看这是否有效。

于 2011-05-22T01:54:02.150 回答