Intent вложенный в другой Intent может стать уязвимостью вашего приложения. Проблема заключается в том что вы можете положить Intent, который должен запустить компонент вашего приложения, а это возможно только если он будет публично доступен (в манифесте стоит exported=“true”) либо открыт доступ приложениям подписанным таким же ключом как у вас.
Решением является использование PendingIntent, который в отличие от Intent всегда выполняет в Context в котором он был создан т.е. вызов будет происходить как будто все происходит внутри вашего приложения. Тем самым вам не придется открыть чего либо наружу. Заметили что все системные API принимают именно PendingIntent, а не Intent?