NFC от «А» до «Я» подробно рассказываем что такое, и как NFC в телефоне изменит жизнь каждого

Введение

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

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

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

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

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

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

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

NFC от «А» до «Я» подробно рассказываем что такое, и как NFC в телефоне изменит жизнь каждого

Пакет 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 совместима со стандартом ISO 14443 и объединяет множество бесконтактных карт, в том числе банковские карты, поддерживающее MasterCard PayPass или VISA PayWave. Пластиковая карта содержит микропроцессор с ОС и платежным приложением для взаимодействия с данными конкретного клиента. Как только карту вставляют в терминал или проводят по нему, она получает энергию для запуска операционной системы. В случае с бесконтактными картами питание, как мы уже говорили, получается при помощи электромагнитного поля считывателя.

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

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

При совершении покупок свыше 1000 рублей вас могут попросить ввести PIN-код или поставить подпись на чеке — здесь уже все зависит от банка.

NFC от «А» до «Я» подробно рассказываем что такое, и как NFC в телефоне изменит жизнь каждого

Технология бесконтактных платежей – самая очевидная польза от NFC. Традиционная пластиковая карта с магнитной полосой – это небезопасно и долго. Ваши деньги зависят от цифр на фронтальной стороне карты, устаревшего и уязвимого интерфейса с магнитной полосой и от трёхзначного кода безопасности. Карту легко потерять, а её данные вы регулярно «светите» перед кассиром, когда даёте ему карту для оплаты.

С приходом технологий бесконтактной оплаты Visa payWave и MasterCard PayPass процесс транзакции стал проходить быстрее, однако уровень безопасности не повысился. По-настоящему правила игры изменились с появлением NFC в смартфонах и технологии эмуляции пластиковой карты с возможностью оплаты. Вы просто подносите смартфон к терминалу, как обычную карту, и всё – покупка оплачена.

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

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

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

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

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

NFC от «А» до «Я» подробно рассказываем что такое, и как NFC в телефоне изменит жизнь каждого

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

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

Метки

Например, садясь в машину, вы обычно повышаете яркость экрана до максимума и запускаете «Google Карты» для навигации. Чтобы проделать это, потребуется немало действий. Если же у вас есть NFC-метка, запрограммированная на эти действия, то достаточно прикоснуться к ней смартфоном – и всё произойдёт само собой.

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

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

Это еще один распространенный способ применения NFC в смартфоне. Метки NFC получили большую популярность в торговых и рекламных зонах: их встраивают в афиши, рекламные щиты, помещают на товары в магазинах. Обычно это небольшие стикеры, стоимость которых не превышает 50 рублей. Затраты минимальные, зато какой эффект! От получения более подробной информации о концерте или товаре до ссылки на трейлер нового фильма.

Вы можете создавать собственные NFC-метки, модернизировать их и затем использовать в повседневной жизни. Как правило, для этого используется сторонний софт вроде NFC TagWriter. Приложение довольно простое и позволяет записать на метку множество типов данных — от контакта и телефонного номера до закладки веб-браузера.

На самом деле NFC-метки — настоящий подарок, когда речь заходит об автоматизации. Например, можно наклеить метку на ноутбук и при помощи приложения Trigger настроить включение точки доступа, выбрав в качестве действия «Беспроводные и локальные сети». Решение попроще — записать пароль от Wi-Fi на метку, наклеить ее на роутер, и потом всякий раз, когда гости спросят пароль, отправлять их к NFC-метке. Или еще: установить метку около кровати и сделать так, чтобы при прикосновении на смартфоне включался авиарежим (опять же с помощью Trigger).

NFC от «А» до «Я» подробно рассказываем что такое, и как NFC в телефоне изменит жизнь каждого

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

И таких примеров применения NFC-меток еще очень и очень много. Зачастую появление новых кейсов ограничивается вовсе не технологией, а фантазией пользователя.

Открываем все двери

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

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

Пример: Разработка приложения для чтения и записи информации на базе NFC

Следующий обратный вызов класса переходов показывает функцию считывания. Если класс переходов вещания системы равен 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 от «А» до «Я» подробно рассказываем что такое, и как NFC в телефоне изменит жизнь каждого

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

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

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

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

Заключение

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

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

(за $321.99 по коду Mi5SGBS до 31.12) и

, так и во флагманах вроде

. Радует также разнообразие

Что с Apple и ее iPhone 7, спросите вы? Увы, но компания-производитель ограничивает работу чипа NFC в своем смартфоне, и его можно использовать только для платежной системы Apple Pay. Осенью, впрочем, она запустилась в России, так что хоть какой-то плюс.

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

А как вы используете NFC в повседневной жизни? Поделитесь с нами своим опытом в комментариях.

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

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