Взаимодействие виджетов с системными приложениями на Android происходит через механизм intent-сообщений. 1 Intent — это сообщение, которое указывает системе, что нужно «сделать». 1 Например, открыть URL, написать письмо на определённый адрес, позвонить по номеру телефона или сделать фотографию. 1
Приложение создаёт intent и передаёт его системе, а система решает, какой компонент будет его выполнять. 1 Этот компонент запускается системой (в существующем процессе приложения или в новом, если он ещё не запущен), ему передаётся intent, и он его выполняет. 1
Каждая активность (и другие компоненты) указывают в манифесте приложения, какие intent-сообщения они готовы обрабатывать. 1 Система выбирает подходящий компонент среди установленных и запускает его. 1 Если в системе есть несколько активностей, которые готовы обработать intent, пользователю предоставляется выбор. 1
Некоторые виджеты только отображают информацию, другие выполняют действия при нажатии, например, запускают связанное приложение. 2 Для этого создаются обработчики событий нажатия, которые могут выполнять действия для виджета в целом или для любого элемента его макета, например, кнопки. 2
Для обмена данными между основным приложением и виджетом можно использовать различные prefs и хранилища. 3 Для их совместимости нужно прописать одинаковую AppGroup в настройки виджета и приложения. 3