通過電話號碼來獲取聯繫人姓名的程序如下,通過ContactsContract.PhoneLookup.CONTENT_FILTER_URI來獲取對應adress(電話號碼)的信息。
private String getContactName(String number) {
if (TextUtils.isEmpty(number)) {
return null;
}
final ContentResolver resolver = mResolver.get();
Uri lookupUri = null;
String[] projection = new String[] { PhoneLookup._ID, PhoneLookup.DISPLAY_NAME };
Cursor cursor = null;
try {
lookupUri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number));
cursor =resolver.query(lookupUri, projection, null, null, null);
} catch (Exception ex) {
ex.printStackTrace();
try {
lookupUri = Uri.withAppendedPath(android.provider.Contacts.Phones.CONTENT_FILTER_URL,
Uri.encode(number));
cursor = resolver.query(lookupUri, projection, null, null, null);
} catch (Exception e) {
e.printStackTrace();
}
}
String ret = null;
if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()) {
ret = cursor.getString(1);
}
cursor.close();
return ret;
}