Когда намерение посылается с данными метки, объект Tag всегда упаковывается в дополнительный пакет намерения с ключом EXTRA_TAG. Если метка содержит данные NDEF (Data Exchange Format — формат обмена данными), устанавливается еще одно дополнительное значение с ключом EXTRA_NDEF_MESSAGES. Наконец, намерение может иметь дополнительное значение идентификатора метки с ключом EXTRA_ID. Последние два дополнительных значения являются необязательными и зависят от наличия данных в метке. Все намерения NFC отправляются с использованием метода startActivity. Обратите внимание, что действительно обращаться к адаптеру NFC для получения сообщений NFC не понадобится. Сообщения в намерениях будут поступать в приложение подобно прочим намерениям, отправленным другими источниками, до тех пор, пока они соответствуют фильтру (или фильтрам) намерений.
На заметку! Важно отметить, что в устройстве Android, поддерживающем NFC, имеется экосистема NFC. Логика создания намерений NFC использует возможности, которые не отражены в Android SDK. Это значит, что просто создать самостоятельно фиктивную активность отправителя нельзя. Невозможно написать собственный код для взаимодействия с тем, что происходит в экосистеме NFC. Это также означает, что для тестирования приложения NFC понадобится использовать реальное устройство и реальные метки NFC — во всяком случае, до тех пор, пока в Google не введут некоторую поддержку отладки в эмуляторе или в DDMS (Dalvik Debug Monitor Server), либо там и там.
Значение действия в намерении метки зависит от того, какая информация обнаружена о найденной метке. Возможны три значения действия для такого намерения.
ACTION_NDEF_DISCOVERED. Это действие устанавливается, если в метке обнаружена полезная нагрузка NDEF. В таком случае Android затем ищет NdefRecord в первом экземпляре NdefMessage. Если NdefRecord представляет собой URI или запись SmartPoster, намерение получит URI в своем поле данных. Если найдена запись MIME, поле типа намерения будет установлено в тип MIME метки. После этого Android ищет подходящую активность для старта использования этого намерения и алгоритма сопоставления намерений. Если ни одной активности не найдено, это намерение отклоняется и Android пытается создать следующий тип намерения NFC.
ACTION_TECH_DISCOVERED http://www.remont-renault.ru/renault-zapchasti. Это действие устанавливается, если полезная нагрузка NDEF не обнаружена или не найдено ни одной активности NDEF, но технология меток существует. При таком сценарии Android добавляет к намерению метаданные, указывающие на то, какие технологии меток были обнаружены. Метка NFC может реализовывать более одной технологии, в особенности потому, что NDEF является скорее виртуальной технологией. Android ищет активность, которая со
ответствует этому намерению, и если находит, то отправляет ей намерение. Если же активность не найдена, Android передает намерение дальше и пытается создать третий тип намерения NFC.
ACTION_TAG_DISCOVERED. Последний вариант действия для метки NFC. Это действие выполняется, если все остальные потерпели неудачу в поиске подходящей активности. Намерение этого вида также не сопровождается данными или типом MIME. Если намерение не соответствует ни одной активности на устройстве, экосистема NFC отказывается от дальнейших попыток, а информация метки отбрасывается.
Опубликовал katy
February 18 2015 15:35:55 ·
0 Комментариев ·
3545 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.