1
나는 순간 내가 가진, 연락처가 적어도 하나 개의 전화 번호가있는 경우 결정하는 방법을 쓰기 위해 노력하고 있어요이 :안드로이드 HAS_PHONE_NUMBER
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
감사합니다.
디버거를 사용하여 버그가 어디 있는지 평가하는 것이 좋습니다. phones.moveToFirst가 true를 반환합니까? phones.getColumnIndex는 어떻습니까? –
안녕하세요 귀도, 답장을 보내 주셔서 감사합니다. 아니요 moveToFirst가 true를 반환하지 않습니다. 이것은 그 이드와 접촉이 존재하지 않는다는 것을 의미합니까? – Kanodi
[this] (http://developer.android.com/reference/android/database/Cursor.html#moveToFirst (\))에 따르면 커서가 비어 있으면 false를 반환합니다. 그래서, 당신의'query (...)'는 어떤 행도 반환하지 않습니다. – Stephen