[英]checking phone number exist in the contact list in android
我試圖檢查聯系人列表中存在的號碼,我使用下面的代碼,但我總是在這一行出錯
Cursor cur = this.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
任何人都可以幫我找出問題,我已經允許在清單中閱讀我的聯系人
public String getContactName(String number)
{
String name = null;
Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
String[] mPhoneNumberProjection = { PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME };
Cursor cur = this.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
try
{
if (cur.moveToFirst())
{
name = cur.getString(cur.getColumnIndex(PhoneLookup.DISPLAY_NAME));
return name;
}
}
finally
{
if (cur != null)
cur.close();
}
return "unknown number";
}
這是我的錯誤日志!
試試這個代碼:(使用上下文)
public boolean contactExists(Context context, String number) {
/// number is the phone number
Uri lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
String[] mPhoneNumberProjection = { PhoneLookup._ID, PhoneLookup.NUMBER, PhoneLookup.DISPLAY_NAME };
Cursor cur = context.getContentResolver().query(lookupUri,mPhoneNumberProjection, null, null, null);
try {
if (cur.moveToFirst()) {
return true;
}
}
finally {
if (cur != null){
cur.close();
}
return false;
}
}
這個對我有用。 處理空指針異常。
public boolean contactExists(Context context, String number) {
if (number != null) {
ContentResolver cr = context.getContentResolver();
Cursor curContacts = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
while (curContacts.moveToNext()) {
String contactNumber = curContacts.getString(curContacts.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
if (number.equals(contactNumber)) {
return true;
}
}
return false;
} else {
return false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.