Я занимаюсь разработкой приложения, которое должно отображать различное содержимое на основе информации, получаемой из тега NFC.
Основная идея:
Пользователь сканирует тег NFC -> Android отправляет Намерение -> моя деятельность получает намерение -> анализировать данные NFC из намерения -> извлекать содержимое из БД -> отображать.
Проблема в том, что я не уверен, где поставить код разбора Intent. Пока у меня есть 2 варианта:
1) Я получаю объект NFC Tag из Intent в своей деятельности -> читать данные и преобразовывать их из байта [] во что-то более удобное -> анализировать эти данные в ViewModel -> VM делает все остальное. Согласно документации Android, представление должно быть максимально простым. Но в моем случае Activity, похоже, выполняет слишком много работы, разбирая данные из намерений и преобразуя их. Кроме того, это определенно не View, связанный код.
2) Я получаю объект NFC Tag из Intent в своей деятельности -> передаю объект Intent в ViewModel -> ViewModel анализирует данные из Intent и делает все остальное. В этом случае Activity делает только передачу данных, поэтому она остается довольно простой, однако есть проблема с ViewModel, теперь ей нужно знать, как работать с объектом Intent и данными NFC. Согласно документации Android, ViewModel ничего не должен знать о специфических для Android вещах, то есть не должно быть android. * Импорта. Если я работаю с Intent и NFC в VM, мне придется импортировать некоторые классы для Android.
Какова наилучшая практика получения данных от Intents для соответствия MVVM?