Explicit, когда целевой компонент определяет само приложение.
INTENTS
Intent — намерение, абстрактное описание операции, которую необходимо выполнить. Эта пассивная структура данных используется для запуска действий и работает, как связующая прослойка, отвечающая за взаимодействие между компонентами кода внутри самого приложения и с другими программами.
Например, когда вы наводите камеру на QR-код с меню ресторана и вас перенаправляет в браузер, то переход возможен благодаря этой структуре. Или когда вы пересылаете фото из галереи в редактор, а из него в мессенджер, то каждая из этих программ использует Intents. Если вы не можете выбрать в выпадающем списке приложений то, куда хотите отправить файл, значит, разработчики программы не предусмотрели взаимосвязь и не использовали интенты.
В официальной документации Android, интенты — объекты класса для обмена сообщениями, которые можно использовать для запроса действия от другого компонента приложения. Intents используются для запуска: действий, в том числе дочерних, (Activity) и сервисов (Service) — т.е. любых функций и других программ. Они могут быть:
Implicit, когда операционная система оценивает доступные компоненты и выбирает подходящее.
Например, если вам прислали ссылку на YouTube видео, то при наличии одноименного приложения оно автоматически откроется в нем благодаря Explicit Intents. Если приложения нет или вам прислали, например, текстовый документ, то Implicit Intents откроет его в подходящем для чтения приложении. Кроме того, вам будут доступны варианты пересылки файла в другие программы, которыми вы пользуетесь, заранее отфильтрованые по тегу intent-filter, в виде списка. При этом, в зависимости от выбранного приложения, станут доступны другие действия, например, выбор контакта в мессенджере или типа публикации в социальной сети. Для каждого из этих взаимодействий создается отдельный Intent.
Intens одинаково важны для внешних взаимодействий, таких, как возможность делится, чем угодно в социальных сетях, так и для внутренних, чтобы удобно пересылать контент между приложениями на смартфоне или планшете. Доступ к картам, установка расширений, совместная работа — только малая часть того, что невозможно без интентов.
Intents отвечают за обмен данными с внешними сервисами, в частности, системами онлайн-оплаты. Без этого инструмента невозможно обеспечить перенаправление клиента на страницу оплаты, а также сопутствующие действия, например, переход в банковское приложение для подтверждения операции.
Intens всегда были частью кода Android, а начиная с iOS 6 они работают и в приложениях для этой операционной системы. Распространение намерений стало нужно для повышения удобства работы не только со смартфоном, но и с другими устройствами, как простой Bluetooth-гарнитурой, для подключения к ней, так и для более сложных устройств. Google и Apple дают разработчикам подробные инструкции, как при помощи Intens настроить взаимодействие приложения со смарт-часами и умными колонками. Intens в данном случае используются для организации работы с голосовым управлением Google Assistant и Siri. Разумеется, это может работать не только для установленных по умолчанию фирменных приложений, но и для любых других, чьи разработчики хотят вписать свой софт в экосистему.
Intents — обязательная часть любого приложения, которая отвечает за возможность взаимодействовать с другими программами и сервисами. Фактически, даже самое простое приложение, как календарь или список покупок, сейчас все равно нуждаются в интентах для того, чтобы пользователь мог добавлять карту проезда к событию или делится перечнем нужного с семьей. Именно Intents делают возможным онлайн-оплату, управление голосом, совместную работу и тысячи других простых и очень сложных функций.