Nfc mode

Где применяется NFC

Многие наслышаны о том, что эта технология позволяет быстро и бесконтактно оплачивать товары и услуги. На самом деле сфера ее применения гораздо шире и включает:

  • передачу файлов – например, фотографий или аудио, с одного смартфона на другой;
  • доступ к закрытым данным – когда NFC используется как электронный ключ;
  • для подтверждения личности – когда NFC будет содержать персональную информацию о владельце устройства;
  • для перевода средств с одного смартфона на другой – только при наличии NFC на обоих устройствах;
  • для вывода видео со смартфона на телевизор – для этого необходимо, чтобы соответствующим чипом было оснащено и мобильное устройство, и пульт ДУ;
  • для считывания специальных меток – в них может быть зашифрована любая информация: контакты компании или человека, адрес, ссылка на сайт и т. п.

Архитектура NFC

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

Рисунок 1. Сравнение технологий передачи данных ближнего действия.

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

Nfc mode

Рисунок 2. Семейства протоколов NFC

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

Все режимы более подробно описаны ниже.

Плюсы NFC-чипа в смартфоне

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

Разберем основные минусы NFC.

  1. Небольшой радиус работы. Это приносит некоторый дискомфорт при использовании. Хотя, в то же время, этот показатель создает максимальную защиту. Вы не сможете случайно произвести команду, оплатить покупку и т.д.
  2. Бесконтрольное создание модификаций для NFC. К примеру, разработчики «Сони» и «Хаоми» взялись за доработку технологии передачи. Они самостоятельно делают расходные материалы, которые осуществляют свою работу лишь с гаджетами их фирмы. Иными словами, чтобы использовать все опции NFC, вам придется приобретать смартфоны лишь конкретных марок. Сюда же входит установка специальных приложений от этого же разработчика.

Некоторые из недостатков исправляются постепенно. Разработчики не забрасывают свою технологию и постоянно вносят различные доработки.

  • Безопасность. Так как радиус действия чипа ограничен 10 см, никто за пределами этого круга не получит доступ к платежным данным или передаваемым файлам.
  • Скорость соединения. Менее одной секунды требуется устройству, чтобы подключиться к другому гаджету или терминалу. В старых мобильных телефонах и первых смартфонах эта процедура занимала до 15 секунд.
  • Энергоэффективность. Чип NFC использует в работе минимальное количество энергии. Это важно в современных смартфонах, которые демонстрируют не самые высокие показатели автономности.
  • Удобство. С помощью этой технологии упрощаются рутинные операции, а вы тратите на них меньше времени. Чтобы установить соединение с другим устройством, достаточно простого секундного касания.
  • Универсальность. Технология NFC совместима со многими другими бесконтактными решениями и может работать (хотя и с ограничениями) даже в выключенном смартфоне.

Введение в разработку приложений для Android, поддерживающих NFC

Для того чтобы пользоваться NFC в телефоне его нужно сначала включить. В старых версиях Андроида для этого нужно открыть приложение «Настройки» и перейти в раздел «Еще».

Nfc mode

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

В Android 8.1 расположение опции, которая включает модуль NFC немного отличается. Здесь нужно открыть приложение «Настройки» и перейти в раздел «Подключенные устройства».

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

Здесь будет доступна опция NFC, а также Bluetooth и другие.

Android поддерживает NFC в двух пакетах: android.nfc и android.nfc.tech.

NfcManager: Можно использовать устройства Android для управления всеми указанными адаптерами NFC, но, поскольку в большинстве случаев устройства Android поддерживают только один адаптер NFC, вызов NfcManager обычно осуществляется непосредственно с getDefaultAdapter для получения определенного адаптера.

Nfc mode

NfcAdapter: Работает в качестве агента NFC (наподобие сетевого адаптера в компьютере), с помощью которого сотовые телефоны получают доступ к оборудованию NFC для запуска обмена данными NFC.

NDEF: Стандарты NFC определяют общий формат данных. Он называется NFC Data Exchange Format (NDEF) и используется для хранения и передачи различной информации — от объектов с типом MIME до сверхкратких документов, передаваемых по радио, например URL-адресов. NdefMessage и NdefRecord являются двумя видами NDEF для форматов данных, определенных форумом NFC. Они используются в нашем образце кода.

Tag: Согласно определению Android, этот класс представляет пассивные объекты, такие как радиометки, карточки и т. п. Когда устройство обнаруживает метку, Android создает объект tag и помещает его в объект Intent, который отправляется соответствующему действию.

Пакет android.nfc.tech также содержит множество важных подклассов. Эти подклассы обеспечиваю доступ к функциям технологии радиометок, в том числе к операциям чтения и записи. В зависимости от типа используемой технологии эти классы разделяются на различные категории, например NfcA, NfcB, NfcF, MifareClassic и пр.

NDEF_DISCOVERED, TECH_DISCOVERED, TAG_DISCOVERED

Мы используем здесь тип intent-filter для обработки всех типов от TECH_DISCOVERED до ACTION_TECH_DISCOVERED. Файл nfc_tech_filter.xml используется для всех типов, определенных в файле TAG. Подробные сведения см. в документации Android. На приведенном ниже рисунке показано действие соответствующего процесса при обнаружении телефоном радиометки.

Рисунок 6. Процесс работы при обнаружении метки NFC

Как активировать NFC в смартфоне

Nfc mode

Откройте меню настроек мобильного устройства, выберите раздел «Беспроводные сети»/«Беспроводные коммуникации» и найдите там одноименный пункт. Чаще всего он скрывается во вкладке «Еще…». Для активации функции просто поставьте галочку, которая разрешает обмен информацией при приближении смартфона к другому устройству или терминалу.

https://www.youtube.com/watch?v=Tvf5bvNuD_4

Если пункта NFC нет в разделе с перечнем беспроводных сетей, значит, смартфон не оснащен этим чипом. Многие производители мобильных гаджетов рекламируют данную функцию и размещают название о ней на аккумуляторах или задних крышках (как в Samsung), а то и прямо на корпусе (как в Sony). Однако это скорее исключение из правил.

Перечисленные способы подходят только для Android-смартфонов. В Apple-устройствах чип NFC появился в iPhone 6. Первое время он использовался только для сервиса Apple Pay, но в последних моделях смартфонов дополнительно поддерживается режим считывания.

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

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

@Override
	protected void onNewIntent(Intent intent){
		if(NfcAdapter.ACTION_TAG_DISCOVERED.equals(intent.getAction())){
		mytag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);  // get the detected tag
		Parcelable[] msgs =
intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
			NdefRecord firstRecord = ((NdefMessage)msgs[0]).getRecords()[0];
			byte[] payload = firstRecord.getPayload();
			int payloadLength = payload.length;
			int langLength = payload[0];
			int textLength = payloadLength - langLength - 1;
			byte[] text = new byte[textLength];
			System.arraycopy(payload, 1 langLength, text, 0, textLength);
			Toast.makeText(this, this.getString(R.string.ok_detection) new String(text), Toast.LENGTH_LONG).show();
					}
	}

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

If (mytag==Null){
	……
}
else{
……
write(message.getText().toString(),mytag);
……
}
	private void write(String text, Tag tag) throws IOException, FormatException {
		NdefRecord[] records = { createRecord(text) };
		NdefMessage  message = new NdefMessage(records);
// Get an instance of Ndef for the tag.
		Ndef ndef = Ndef.get(tag); // Enable I/O
		ndef.connect(); // Write the message
		ndef.writeNdefMessage(message); // Close the connection
		ndef.close();
	}

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

Nfc mode

Мы используем карту Mifare для теста считывания карты и используем тип TAG карты MifareClassic. Карта MifareClassic широко используется в самых различных целях: как удостоверение личности,для оплаты проезда на общественном транспорте и т. п. Память традиционной карты MifareClassic разделяется на 16 секторов, каждый сектор включает 4 блока, а каждый блок может содержать 16 байт данных.

Последний блок в каждой области называется трейлером, он используется главным образом для сохранения локального ключа блока для чтения и записи данных. Он содержит два ключа, A и B, длиной по 6 байт каждый, значение по умолчанию обычно равно FF или 0 для всего ключа согласно определению MifareClassic.KEY_DEFAULT.

При записи на карту Mifare нужно сначала получить правильное значение ключа (для защиты). Перед тем как пользователь получит возможность чтения и записи данных в эту область, нужно пройти проверку подлинности.

Как оплачивать покупки с помощью NFC

Это самый популярный способ использования технологии, поэтому остановимся на нем подробнее. Вы можете прикрепить банковскую карту к смартфону с NFC, а затем прикладывать гаджет к платежным терминалам, чтобы оплатить товары и услуги. Самой карточкой при этом пользоваться не нужно – она может спокойно лежать в вашем кошельке или дома. Такая услуга будет доступна во всех POS-терминалах, которые поддерживают оплату бесконтактными картами.

Эта опция доступна на смартфонах с функцией Android Beam на устройствах Android версии 4.0 Ice Cream Sandwich или старше. С одного смартфона на другой можно пересылать любую информацию: фотографию, контакты пользователя, ссылку на сайт или видеоролик. Вы здорово экономите время, так как вам больше не придется пользоваться для этого облачными хранилищами, электронной почтой или мессенджерами.

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

  • снимите блокировку с обоих смартфонов;
  • активируйте в них NFC, а Android Beam запустится автоматически;
  • откройте файл, контакт или другой контент, которым вы хотите обменяться;
  • расположите смартфоны крышками друг к другу на расстоянии до 10 см;
  • ожидайте соединения.

логотип NFC

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

Для записи данных будем использовать NFC TagWriter. Пользоваться приложением довольно просто. Запускаем, тапаем по пункту Create, write and store, выбираем New, далее выбираем тип записываемых данных. Наиболее полезные типы: контакт, простой текст, телефонный номер, данные для Bluetooth-соединения, URI и приложение. В списке есть даже закладка веб-браузера и email-сообщение, но для чего они нужны, не совсем понятно.

Главный экран NFC TagWriter
Главный экран NFC TagWriter

Далее заполняем необходимые поля (например, адрес веб-сайта в случае с URI), нажимаем Next и попадаем на экран опций (скриншот «NFC TagWriter: опции сообщения»). Здесь можно указать приложение, которое будет запущено после прочтения метки (Add launch application) и установить защиту на перезапись сторонним устройством (Apply Soft Protection).

NFC TagWriter: опции сообщения
NFC TagWriter: опции сообщения

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

Как создать NFC-метку

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

Результатом считывания метки могут быть такие действия:

  • отправка SMS-сообщения или электронного письма;
  • включение или выключение Wi-Fi и Bluetooth;
  • соединение с другим устройством по протоколу Bluetooth;
  • перевод смартфона в «режим полета»;
  • запуск мобильного приложения;
  • переход по ссылке и многие другие.

Чтотакое Google Pay и Apple Pay?

Сегодня Google Pay, а до февраля 2018 года – Android Pay – это система электронных платежей с мобильных устройств, работающих на Android. С ней работают не только смартфоны, но и планшеты, смарт-часы и другие гаджеты. Количество стран, в которых функционирует сервис, приближается к двадцати. Россия примкнула к ним 23 мая 2017 года, а в числе первых были США, Великобритания и Сингапур.

В основе Android Pay лежит оплата с помощью NFC, который заменяет чип с PIN-кодом или магнитную ленту на банковской карте. Добавить в приложение данные о карте можно двумя способами: ввести их вручную или просто сфотографировать обе стороны карты встроенной камерой смартфона.

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

Как смартфон знает, что за покупки расплачивается именно владелец гаджета? Для этого используются разные способы подтверждения личности: пароль, сканер отпечатка пальца или радужки глаза. В целях безопасности данные платежной карты не передаются продавцу – последний получает только сгенерированный номер виртуального счета.

Похожим образом работает и Apple Pay – система мобильных платежей от компании Apple. Она доступна в России с октября 2016 года (а вообще почти в 30 странах мира) на смартфонах iPhone 6 и старше. Как и в случае с Google Pay, здесь используется технология «ближней бесконтактной связи», а принцип действия обеих систем идентичен за исключением нескольких деталей. После оцифровки банковской карты приложением Apple Pay вы сможете расплачиваться ею там, где это позволяют кассовые терминалы.

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

А вы уже пробовали использовать NFC в своем смартфоне?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *