1

連絡先に少なくとも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 に答える