Using nfc with android

Разработка NFC приложений для Android

Архитектура технологии NFC

NFC основана на RFID технологии с частотой 13.56 МГц и рабочей дистанцией до 10 см. Скорость обмена данными составляет до 424 кб/сек. По сравнению с другими коммуникационными технологиями, основным преимуществом NFC является быстрота и простота использования. На рисунке ниже видно расположение NFC среди других коммуникационных технологий.

Технология NFC имеет три режима: эмуляция NFC-карты, пиринговый режим и режим чтения/записи.

В режиме эмуляции карты NFC представляет собой аналог чипованной RFID карты со своим модулем безопасности, позволяющим защищать процесс покупки. В пиринговом режиме вы можете делиться информацией, например визитной карточкой, с другими NFC устройствами. В также можете устанавливать WiFi или Bluetooth соединения посредством NFC для передачи больших объемов данных. Режим чтения/записи предназначен для чтения или изменения NFC меток с помощью NFC устройств.
Каждый режим более подробно описан ниже.

Режим эмуляции NFC карты

NFC модуль обычно состоит из двух частей: NFC контроллера и элемента безопасности (ЭБ). NFC контроллер отвечает за коммуникации, ЭБ – за шифрацию и дешифрацию чувствительной к взлому информации.

ЭБ подключается к NFC контроллеру посредством шины SWP (Single Wire Protocol) или DCLB (Digital Contactless Bridge). Стандарты NFC определяют логический интерфейс между хостом и контроллером, позволяя им взаимодействовать через RF-поле. ЭБ реализуется с помощью встроенного приложения или компонента ОС.

Существует три варианта реализации ЭБ: можно встроить его в SIM-карту, SD-карту или в NFC чип.

Операторы связи, такие как CMCC (China Mobile Communication Corporation), Vodafone или AT&T обычно используют решение на SIM-карте, поощряя своих абонентов бесплатной заменой старых SIM-карт на новые, оснащенные NFC.

Пиринговый режим

Два NFC устройства могут легко взаимодействовать друг с другом напрямую, обмениваясь небольшими файлами. Для установления Bluetooth/WiFi соединения необходимо обменяться XML файлом специального формата. В этом режиме ЭБ не используется.

Режим записи/чтения

В данном режиме NFC устройство может читать и записывать NFC метки. Хорошим примером применения является чтение информации с оснащенных NFC «умных» постеров.

Введение в разработку NFC под Android

Android поддерживает NFC с помощью двух пакетов: android.nfc и android.nfc.tech.
Основными классами в android.nfc являются:
NfcManager: Устройства под Android могут быть использованы для управления любыми обнаруженными NFC адаптерами, но поскольку большинство Android устройств поддерживают только один NFC адаптер, NfcManager обычно вызывается с getDefaultAdapter для доступа к конкретному адаптеру.
NfcAdapter работает как NFC агент, подобно сетевому адаптеру на ПК. С его помощью телефон получает доступ к аппаратной части NFC для инициализации NFC соединения.
NDEF: Стандарты NFC определяют общий формат данных, называемый NFC Data Exchange Format (NDEF), способный хранить и передавать различные типы объектов, начиная с MIME и заканчивая ультра-короткими RTD-документами, такими как URL. NdefMessage и NdefRecord – два типа NDEF для определенных NFC форумом форматов данных, которые будут использоваться в коде-примере.
Tag: Когда устройство Android обнаруживает пассивный объект типа ярлыка, карты и т.д., он создает объект типа «метка», помещая его далее в целевой объект и в заключении пересылая в соответствующий процесс.
Пакет android.nfc.tech также содержит множество важных подклассов. Эти подклассы обеспечивают доступ к функциям работы с метками, включающими в себя операции чтения и записи. В зависимости от используемого типа технологий, эти классы разбиты на различные категории, такие как NfcA, NfcB, NfcF, MifareClassic и так далее.
Когда телефон со включенным NFC обнаруживает метку, система доставки автоматически создает пакет целевой информации. Если в телефоне имеется несколько приложений, способных работать с этой целевой информаций, пользователю будет показано окно с предложением выбрать одно из списка. Система доставки меток определяет три типа целевой информации, в порядке убывания приоритета: NDEF_DISCOVERED, TECH_DISCOVERED, TAG_DISCOVERED.
Здесь мы используем целевой фильтр для работы со всеми типами информации начиная с TECH_DISCOVERED до ACTION_TECH_DISCOVERED. Файл nfc_tech_filter.xml используется для всех типов, определенных в метке. Подробности можно найти в документации Android. Рисунок ниже показывает схему действий при обнаружении метки.

Читайте также:  Adblock как удалить с андроида

Пример 1. Разработка NFC приложения для чтения/записи меток.

Следующий пример показывает функции чтения/записи NFC метки. Для того, чтобы получить доступ к аппаратной части NFC и корректно обрабатывать NFC информацию, объявите эти позиции в файле AndroidManifest.xml.

Минимальную версию SDK, которую должно поддерживать ваше приложение — 10, объявите об этом в файле AndroidManifest.xml

Следующий целевой вызов демонстрирует функцию чтения. Если широковещательное сообщение системы равняется NfcAdapter.ACTION_TAG_DISCOVERED, тогда вы можете считать информацию и показать ее.

Следующий код демонстрирует функцию записи. Перед тем, как определить значение mytag, вы должны убедиться, что метка определена и только потом вписать в нее свои данные.

В зависимости от прочитанной информации вы можете выполнить дополнительные действия, такие как запуск какого-либо задания, переход по ссылке и т.д.

Пример 2. Разработка NFC-приложения, использующего карты MifareClassic

В этом примере для чтения мы будем использовать карты MifareClassic и соответствующий им тип метки. Карты MifareClassic широко используются для различных нужд, таких как идентификация человека, автобусный билет и т.д. В традиционной карте MifareClassic область хранения разбита на 16 зон, в каждой зоне 4 блока, и каждый блок может хранить 16 байт данных.
Последний блок в зоне называется трейлером и используется обычно для хранения локального ключа чтения/записи. Он содержит два ключа, А и В, 6 байт длиной каждый, по умолчанию забитые 00 или FF, в зависимости от значения MifareClassic.KEY_DEFAULT.
Для записи на карту Mifare вы, прежде всего, должны иметь корректное значение ключа (что играет защитную роль), а также успешно пройти аутентификацию.

Пример того, как читать карту MifareClassic:

Источник

Как подключить и настроить NFC на Андроиде

Android NFC могут пользоваться владельцы разных смартфонов. Эта функция позволяет делать покупки онлайн и в реальной жизни с помощью бесконтактной оплаты. Чтобы NFC в телефоне работало исправно, необходимо провести его базовую настройку.

Что такое NFC на Андроиде?

NFC (с англ. Near Field Communication) — технология передачи данных между устройствами на близком расстоянии. Работа функции основывается на встроенном специальном чипе в обоих устройствах, позволяющем принять сигнал с данными. К примеру, пользователь может отправлять мультимедийные файлы со смартфона на умные часы, или с фотоаппарата на смартфон.

Технология NFC также объединяет приложения и способы оплаты, сохраненные на каждом устройстве. Для совершения покупок при помощи смартфона достаточно выполнить базовые действия:

  • Настроить оплату в специальном приложении;
  • Подключить внешний модуль или активировать NFC внутри телефона;
  • Поднести смартфон к терминалу и дождаться завершения платежа.

Данные для оплаты можно сохранить сразу на нескольких устройствах. Для этого следует скачать приложение с пометкой Pay на Плэй Маркет или App Store на все гаджеты со встроенным чипом NFC и добавить в него банковскую или виртуальную карту, с которой при каждой покупке будут списываться средства.

Читайте также:  Как определить андроид или ios

Данная опция очень удобна в семейном кругу, где все члены семьи используют одну карту для оплаты. Также пользователю больше не нужно беспокоиться о том, что он может забыть кошелек дома. Платежные средства всегда будут у него под рукой.

Приложения для бесконтактной оплаты имеют определенные системные требования. На ОС Андроид наиболее популярным является Google Pay. Он подходит для телефонов от разных производителей. Для его активации необходимы такие параметры смартфона:

  • Встроенный модуль NFC;
  • ОС Андроид версии 4.4. и выше;
  • Официальная прошивка;
  • Заблокированный загрузчик;
  • Отсутствие активных root-прав;
  • Сертификация телефона от Гугл.

Если NFC можно подключить извне, то программы для Android не будут работать на кастомной прошивке или нелицензированном смартфоне. Любителям расширенных настроек также придется от них отказаться в пользу бесконтактных платежей.

Можно ли установить модуль NFC на телефон?

Последние модели смартфонов чаще всего оснащены встроенным модулем NFC. Однако что делать тем, у кого старые версии телефонов?

В интернет-магазинах и салонах мобильной связи можно купить NFC модуль для смартфона в нескольких видах:

Внешние модули подходят для смартфонов, фотоаппаратов и умных часов. Они работают наравне со стандартным встроенным чипом и также могут передавать данные между устройствами.

Как встроить чип в устройство? Все очень просто: сим-карта или метка вставляются в обычный слот для SIM и карт памяти. Антенна NFC аккуратно прикрепляется к действующей сим-карте и остается вместе с ней внутри корпуса.

NFC антенну нельзя подключить смартфонам с боковым отверстием для сим-карт или несъемной задней крышкой.

Самый простой способ — обратиться к оператору сотовой связи и попросить замену обычной симки на карту со встроенным чипом. Однако следует учесть пару нюансов:

  • Замена сим-карты может повлечь смену номера телефона;
  • К симке следует привязать банковский счет;
  • Выбор банка остается за оператором.

После установки сим-карты NFC пользователь может совершать платежи с помощью смартфона. Сумма покупки будет списываться с банковского счета, прикрепленного к симке. После каждой транзакции на телефон будет приходить смс-уведомление от банка с указанным платежом.

Ещё один способ — приклеивание стикера со встроенным чипом NFC на корпус устройства. Каждый стикер имеет уникальный идентификационный номер и сертификацию.

Чтобы воспользоваться модулем, достаточно открыть заднюю крышку смартфона и прикрепить стикер к устройству. Далее на телефон нужно установить приложение NFC Tools, позволяющее настроить внешний модуль и осуществлять оплату.

Как включить NFC на Андроид?

Настроить NFC на Андроиде с готовым встроенным чипом гораздо проще. На всех смартфонах данной операционной системы настройка проходит одинаково.

Для активации NFC нужно открыть стандартные настройки телефона и перейти в раздел «Ещё». Его можно найти сразу в основном меню или вкладке «Беспроводные соединения».

В этом разделе находится опция бесконтактной оплаты. Напротив нее следует поставить галочку для активации или подвинуть флажок вправо (в зависимости от модели смартфона).

Также стоит обратить внимание на функцию Android Beam. Она тоже должна быть активной для отправки данных на другое устройство.

Во вкладке «Бесконтактная оплата» следует выбрать приложение, через которое по умолчанию будет проводиться платеж.

Если у пользователя нет подобных настроек в смартфоне, его модель не поддерживает передачу данных через NFC.

Как подключить платежное средство?

После успешной активации службы NFC следует загрузить приложение для бесконтактной оплаты. На Андроид чаще всего устанавливают Google Pay, так как к нему можно присоединить несколько карт от разных банков для оплаты. Некоторые пользователи любят приложения от конкретных банков, такие как Яндекс.Деньги. Владельцы Самсунг предпочитают Samsung Pay, поскольку данное приложение оптимизировано под их смартфоны.

Чтобы узнать, как платить через NFC с телефона Android, достаточно выполнить пару действий:

  1. Скачать приложение из Google Play;
  2. Добавить банковскую карту для оплаты;
  3. Поставить блокировку экрана для защиты данных.
Читайте также:  Смартфон android с чего начать

Рассмотрим действия подробно на примере Google Pay.

Как загрузить Android Pay на телефон? Для этого следует открыть Плэй Маркет и ввести название программы в поиске. Среди предложенных вариантов выбрать нужный и нажать кнопку «Установить».

Приложение загрузится в течение пары минут. После этого следует нажать кнопку «Открыть».

Программа запросит доступ к местоположению и данные от аккаунта Google. Затем попросит добавить банковскую карту в качестве основного платежного средства. Система принимает карты Visa, Mastercard или Maestro. Пользователю нужно внести:

  • Номер карты;
  • Окончание срока действия;
  • CVC код с оборотной стороны карты.

Далее следует указать номер телефона для подтверждения данных. На него придет смс с одноразовым паролем, который нужно указать в приложении.

После этого нужно активировать пользовательскую блокировку экрана. Поскольку приложение содержит конфиденциальные данные, оно требует дополнительную защиту от злоумышленников.

Для активации пароля следует открыть настройки смартфона и перейти в раздел «Экран блокировки». Здесь пользователь может выбрать графический ключ, отпечаток пальца, пин-код или Face ID для разблокировки.

После установки блокировки следует вновь открыть Google Pay. На экране появится основная страница с добавленной картой.

Если у владельца смартфона по каким-то причинам нет пластиковой карты, он может использовать виртуальную для бесконтактных платежей. Её можно открыть в любом приложении банка онлайн.

Эмуляция карты имеет те же данные, что и обычная пластиковая карта. Ее единственное отличие в том, что расплачиваться ею можно только через интернет-приложения.

Яндекс.Деньги, к примеру, изначально предлагает всем новым пользователям бесплатно открыть бесконтактную карту. Делается это за считанные минуты, после чего сразу можно совершать покупки с ее помощью.

Чтобы узнать, как добавить виртуальную карту, достаточно перейти в раздел «Оплата» и нажать на вкладку «Способ оплаты». Данные карты необходимо будет ввести вручную.

В Google Pay также есть раздел «Карты», куда можно добавить проездные билеты, карты лояльности и подарочные сертификаты. Этот раздел особенно полезен тем, кто осуществляет оплату метро телефоном NFC.

Практически у каждого жителя Москвы и Московской области есть персональный проездной. Карта Тройка на NFC Android легко прикрепляется через раздел «Карты» в Google Pay. После чего ее можно автоматически пополнять через приложение и использовать в любом общественном транспорте при помощи смартфона.

Как отключить карту от системы?

Чтобы деактивировать карту в Google Pay или любом другом приложении, достаточно открыть раздел «Оплата» и выбрать нужную карту. В правом верхнем углу будет значок, при нажатии на который появится опция «Отключить бесконтактную оплату». Через опцию также можно полностью удалить карту из системы.

Приложение или NFC не работает — что делать?

Если в работе NFC Android произошел сбой, либо приложение перестало реагировать на бесконтактную оплату, рекомендуется обратиться в службу поддержки.

На официальном сайте Google Pay есть раздел «Справка и поддержка», где находятся стандартные вопросы пользователей:

  • NFC и оплата что за функция?
  • Как встроить модуль NFC в устройство?
  • Как активировать карту в приложении?
  • Что обозначает ошибка при оплате?

В поле «Опишите проблему» следует ввести подходящий запрос и найти вариант ответа. Либо заполнить форму обращения на сайте с подробным описанием проблемы.

NFC на Андроид позволяет обмениваться данными между устройствами и проводить бесконтактную оплату. На многих смартфонах есть встроенный чип NFC. На гаджет можно установить внешний модуль, который будет работать наравне со стандартным чипом. Чтобы оплачивать покупки с помощью смартфона, достаточно иметь активный модуль NFС и приложение для бесконтактной оплаты с привязанной банковской картой.

Источник

Оцените статью