Да, это возможно при использовании ContactsContract.PhoneLookup.CONTENT_FILTER_URI
в Android 2.0 и выше и Contacts.Phones.CONTENT_FILTER_URL
в Android 1.6 и более ранних.
Например, использование см. В документации по ContactsContract.PhoneLookup . Выдержка ниже:
// Android 1.6 and earlier (backwards compatible for Android 2.0+)
Uri uri = Uri.withAppendedPath(Contacts.Phones.CONTENT_FILTER_URL, Uri.encode(phoneNumber));
// Android 2.0 and later
Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));
// Query the filter URI
String[] projection = new String[]{ PhoneLookup.DISPLAY_NAME, ...
Cursor cursor = context.getContentResolver().query(uri, projection, ...
ОБНОВЛЕНИЕ : Формат номера телефона не имеет значения. Сравнение надежно и высоко оптимизировано на Android; это делается с помощью встроенной функции sqlite с именем PHONE_NUMBERS_EQUAL
. Для получения более подробной информации найдите кодовую базу для этого метода . Кстати, я не уверен, безопасно ли использовать эту функцию непосредственно в ваших собственных приложениях, но я бы не стал.