Существует ли простой способ проверить, является ли вызывающий абонент контактом в Android?

Когда телефон на базе Android принимает вызов, он автоматически проверяет, существует ли вызов в своей собственной базе данных контакта. Я задавался вопросом, существует ли простой способ получить доступ к той информации. У меня есть a PhoneStateListener это выполняет определенные действия во время состояния дозвона, и я хочу проверить, находится ли вызывающий абонент в списке контактов.

Есть ли способ сделать это, не проходя Контакты ContentProvider?

6
задан Anthony Forloney 3 February 2010 в 16:54
поделиться

1 ответ

Телефонное приложение также использует контакты ContentProvider ; Я не уверен, почему вы хотели бы этого избежать. Кроме того, это единственный общедоступный способ доступа к этой информации.

Преобразование числа в имя (в данном случае до версии 2.0) в любом случае достаточно просто:

Uri uri = Uri.withAppendedPath(Phones.CONTENT_FILTER_URL, Uri.encode(number));

String name = null;
Cursor cursor = context.getContentResolver().query(uri, 
                    new String[] { Phones.DISPLAY_NAME }, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
    name = cursor.getString(cursor.getColumnIndex(Phones.DISPLAY_NAME));
    cursor.close();
}
5
ответ дан 16 December 2019 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: