Задать вопрос
@ImagineTables

Как заблокировать входящие по подстроке идентификатора?

Когда звонят, стандартный гугловский dialer отображает латиницей название организации. Вроде как, это называется "CNAP (Calling Name Presentation)", но я не уверен. Звонок маркирован, хорошо, но что дальше? Мне бы хотелось, чтобы он не проходил по наличию подстроки в названии, например, "bank".

Важно, что стандартный гугловский dialer отображает название организации в оффлайне. И блокировка тоже должна работать в оффлайне. Как этого добиться?

Я мельком почитал, там, типа, есть какой-то CallScreeningService API. В деталях не разбирался, прошу совета.
  • Вопрос задан
  • 25 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • AndroidSprint
    Android + Аутстаффинг: опыт работы в IT-команде
    8 месяцев
    Далее
  • Яндекс Практикум
    Android-разработчик
    12 месяцев
    Далее
  • Академия Эдюсон
    Android-разработчик + ИИ
    6 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
CallScreeningService работает не так просто как кажется: в onScreenCall() приходит урезанный Call.Details, только номер (handle) и служебные поля, getCallerDisplayName() там пустой.

Название организации, которое рисует гугловский dialer, это его собственный Business Caller ID, не CNAM, и публичного API к нему нет — так что фильтровать офлайн по подстроке названия не выйдет.

Рабочий вариант: свой CallScreeningService, номер из callDetails.getHandle(), сверка со своей локальной базой номер→категория, по совпадению "bank" в имени зовёшь respondToCall с setDisallowCall(true).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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