遇到一个难题,请大家帮帮忙。是这样的一段代码:
public static String findNameByNumber(Context ctx, String number) {
String name = null;
Uri uri2 = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, number);
Cursor cursor = ctx.getContentResolver().query(uri2,
new String[] { "display_name" }, null, null, null);
if (cursor.getCount() == 0) {
return null;
} else {
// cursor 返回时,默认指向的是 第一行的上一行,即 -1 行 ,而所有的数据是从 第 0行开始的。
cursor.moveToNext();
name = cursor.getString(0);// cursor 仅查询一列内容,所以取的时候,列的索引值为 0
}
return name;
}
这个代码中 Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, number),我看出来是对uri进行的拼接,拼接好了之后,应该是这样的:content://com.android.contacts/phone_lookup/""这是字符串 。很明显查的是contact2数据库中的表phone_lookup表。然后到下面这段,我就怎么也搞不明白了,
Cursor cursor = ctx.getContentResolver().query(uri2,new String[] { "display_name" }, null, null, null); 他查询的是“dispaly_name”字段,但是这个phone_lookup表中并没有这个叫做"dispaly_name"字段呀。请问这是怎么回事呀