Софт nfc

NFC приложения для Android

Программа была запущена в 2015 году. Работает на всех смартфонах с базой Андроид с внедренной NFC-опции. Основные функции:

  • эмулирует банковские карты (Visa, MasterCard);
  • регистрирует карты лояльности (дисконты);
  • можно оплачивать товары на заправках, в кафе и магазинах.

Преимущества:

  • удобный интерфейс;
  • запускается и обрабатывает запросы быстро;
  • высокая степень безопасности (не работает на перепрошитых смартфонах);
  • синхронизируется со смарт-часами.

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

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

Эта программа для оплаты телефоном с помощью NFC действует с 2015 года. Работает на всех устройствах с ОС Android KitKat версии  4.4 и выше, которые оснащены функцией NFC. К середине 2017 года заявлено 15 стран покрытия и 2 в проекте на конец года.

К наиболее популярным функциям относятся:

  • эмуляция банковских карт (Visa, MasterCard);
  • регистрация карт лояльности, бонусных систем, транспортных;
  • осуществление бесконтактных платежей в супермаркетах, магазинах, на заправках, в кафе и ресторанах;
  • возможность интернет-платежей (на сайтах, где есть специальная пометка).

Плюсы и минусы

ПлюсыМинусы
Удобный интерфейс (в том числе и русскоязычный)Ограниченное количество специальных бесконтактных терминалов
Быстрый запуск и обработка платежаОграниченный список локальных банков-партнёров
Доступен в магазине Google PlayЛимиты на суммы к оплате
Отсутствие внутренних комиссий (бесплатная установка)
Не поддерживает рутированные или перепрошитые смартфоны (в целях безопасности)
Не передаёт на терминал платёжных реквизитов
Платёжные ключи генерируются сервером Google и кодируются специальными сервисами токенизации
Совместима со смарт-часами

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

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

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

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

Софт nfc

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

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

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

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

NFC: кратко и по делу

NFC стал серьезным конкурентом Bluetooth, так как имеет больше преимуществ. Во-первых, устройства «распознают» друг друга быстрее – всего за 0,5 секунды. Во-вторых, сокращенный радиус действия позволяет обезопасить технологию.

Софт nfc

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

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

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

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

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

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

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

Софт nfc

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

Приложения NFC: как пользоваться, можно ли передавать приложения

Перед тем, как мы рассмотрим 3 топовые программы NFC, сначала ответим на вопрос, передаются ли приложения данным методом. Да, это возможно. Функция предусмотрена для тех, кто не любит тратить время на поиск программ в Play Market и их установку.

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

Чтобы передать приложение на другое устройство, нужно поднести смартфон с включенным NFC к девайсу другого пользователя. Система просканирует программу и откроет ссылку на её скачивание в Play Store за 1 секунду.

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

Samsung Payр

Этот сервис разработан и запущен в 2015 году специально для пользователей устройств «Самсунг» (по принципу айфонов). Работает на моделях, начиная с Samsung Galaxy Note5.

Программа позволяет использовать такие функции, как:

  • регистрация банковских карт;
  • загрузка пакетов лояльности (подарочных, накопительных);
  • оплата по транспортным картам;
  • оплата в магазинах и других физических точках продажи товаров и предоставления услуг;
  • оплата онлайн и в отдельных приложениях (со специальными пометками);
ПреимуществаНедостатки
Функция эмуляции магнитной полоски даёт возможность работать с контактными и бесконтактными терминаламиСовместимость только с устройствами от «Самсунг»
Защита данных тройной аутентификацией: графический ключ, отпечаток пальца, сканирование сетчатки глазаЛимит на количество (не более 10)
Участие в подарочно-накопительных акциях Samsung RewardsПоддерживает не все банки и платёжные системы
Токенизация (генерирование случайных ключей) через Samsung KnoxОграниченное количество стран, где внедрена служба

Программа, как и Android Pay, была выпущена в 2015 году. Работает только на смартфонах марки Samsung. Особенности приложения:

  • регистрирует банковские реквизиты и карты лояльности;
  • помогает расплатиться безналичным методом быстро и без комиссий.

Основные преимущества:

  • благодаря магнитной полоске (эмулированной) работает с контактными и бесконтактными терминалами;
  • данные защищаются графическим ключом, отпечатком пальца;
  • доступ к участию в акциях магазинов;
  • генерирует случайный подбор ключей.

Android Pay

Недочеты: приложение распознают только смартфоны Самсунг. Также далеко не все банки принимают оплату Samsung Pay (уточняйте у своей организации).

Пример: Разработка приложения для чтения и записи информации на базе 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();
	}

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

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

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

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

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

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

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