Механизм поиска компонента по неявному интенту называется
Intent Resolution. Intent resolution сводится к тому, что система проверяет интент фильтры всех компонентов, которые прописаны в андроид манифестах установленных приложений, и интент фильтры броадкаст ресиверов,
зарегистрированных динамически.
Для поиска компонента проверяется совпадение по заданным в интенте атрибутам
action,
category и
data.
🔘 Если в интент добавлен action, то этот же action должен быть объявлен в
intent-filter компонента. Если фильтр компонента не содержит никакой action, то этот компонент сможет обрабатывать только интенты без action.
🔘 Если интент содержит категории (атрибут category), то интент фильтр компонента должен иметь все заданные категории.
🔘 Data в интенте – это
URI. При проверке совпадения по data сравнивается data
type и data
scheme+authority+path. Type может быть добавлен в интент явно методом
setType() или разрешен по схеме (scheme) объекта data.
Примеры разрешения интентов можно найти в
документации.