【发布时间】:2018-01-05 22:22:14
【问题描述】:
我想通过键入特定号码的 3-4 位来搜索 android 用户的联系人列表。我已经编写了以下方法来执行相同的操作,但这仅在我写完整的 10 位数字且不少于该数字时才有效。这意味着它仅适用于完全匹配。 例如,我想要以 98965 开头的数字……等等……但是当我输入完整的 9896511112 时,我只会给我一个匹配项
public static void getContactDetails(Context context, String number, int type) {
String[] projection = new String[]{
ContactsContract.PhoneLookup.DISPLAY_NAME,
ContactsContract.PhoneLookup._ID,
ContactsContract.PhoneLookup.LOOKUP_KEY,
ContactsContract.PhoneLookup.PHOTO_URI,
ContactsContract.PhoneLookup.NUMBER};
Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(number.trim() + "%"));
Cursor cursor = context.getContentResolver().query(contactUri, null, null, null, null);
while (Common.nonNull(cursor) && cursor.moveToNext()) {
String lookUpKey = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.LOOKUP_KEY));
String mobileNumber = cursor.getString(cursor.getColumnIndex(ContactsContract.PhoneLookup.NUMBER));
Log.e("I am found", "Found " + number);
}
cursor.close();
}
请帮我找出我的错误。
【问题讨论】:
标签: android sqlite contacts android-contacts