Они достигают разных вещей. Технологии, которые вы указываете в файле XML, действуют как фильтр намерений для вашей Деятельности. То есть, если фильтр соответствует, ваша активность будет запущена. Однако может быть больше действий, соответствующих фильтру, и в этом случае пользователю нужно будет выбрать приложение для обработки тега.
Технологии, которые вы устанавливаете программно с помощью enableForegroundDispatch()
, могут использоваться для обхода других приложений; если ваша активность находится на переднем плане, вы можете указать службе NFC отправить все теги NFC, которые соответствуют фильтру, вашей активности. Таким образом, даже если другое действие имеет точно такой же фильтр, средство выбора приложений не появится, и намерение перейдет прямо к вашему действию.
В большинстве приложений вы захотите и то и другое - это раздражает, когда выбирается Activity, когда вы сканируете тег в своем приложении. Обязательно сделайте фильтр точным - не фильтруйте то, что вас не интересует.