Data 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, который отправляется соответствующему действию.

Пакет 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 чип на вашем любимом смартфоне или планшете Android и включить при необходимости, вам необходимо перейти в Настройки -{amp}gt; Беспроводные сети (либо Дополнительные функции) -{amp}gt; NFC

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

Часто забываете свою банковскую кредитную карту? Тогда в таком случае, если ваш Android оборудован NFC чипом, то он сможет легко стать кредиткой картой!

Android Beam это способ передачи информации (как Bluetooth) через чип NFC. Стоит предупредить, что скорость передачи через Android Beam очень мала, поэтому стоит использовать только для переброски небольшой текстовой информации или веб адреса. Для этого нажмите кнопку «расшарить».

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

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

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

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

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

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

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

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

Читайте ещё про NFC:  Samsung Pay - удобный и безопасный платежный сервис

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

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

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

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

NFC

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

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

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

NFC-метки

Как работает NFC метка? Представьте ситуацию — вы встали утром, позавтракали, глянули что осталось в холодильнике, запустили Google Keep или Купи Батон, чтобы записать продукты в список, которые необходимо докупить, сели в автомобиль включили навигатор и Bluetooth, добрались до работы, перевели Android в режим «вибро» и запустили Evernote.

А ведь это все можно делать не каждый раз вручную, а на автомате! Как? С помощью NFC-меток и Android с NFC!

Что для этого надо?

  • Раздобудьте NFC-метки, либо если у вас есть бесконтактные карты оплаты метро (Москва, Киев, Харьков) или городского транспорта, или старые или не нужные карты банка с paypass.
  • Запускаем NFC ReTAG сканируем метку или карту (смотря что у вас есть в наличие), добавляем метку и даем ей имя в зависимости где она в дальнейшем будет находиться
  • Далее выбираем действие которое должно происходить на Android когда вы его подносите к метке — нажимаем кнопку «  Действие«. Создаем действие, например открытие приложение Google Keep.

После того как создали событие, можете прикрепить метку или карту к холодильнику (либо положить рядом). Теперь каждый раз когда вы будете на кухне, вы можете быстро открыть приложение Google Keep и записать заметку со списком необходимых покупок.

И еще один пример… Когда вы садитесь в своей автомобиль, в нем находится метка при сканировании которой автоматически включается навигатор и запускается Bluetooth.

  • Сканируем метку или карту, даем ей имя.
  • Задаем действия для карты — включить приложение навигатор, а также активировать беспроводную передачу данных Bluetooh Оставляем метку в машине и при каждой посадке не забываем сканировать ее!

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

Другие функции

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

Вот и все! Оставайтесь вместе с сайтом Android 1, дальше будет еще интересней! Больше статей и инструкций читайте в разделе Статьи и Хаки Android.

Как пользоваться NFC? Как настроить NFC для оплаты? Android-кредитная карта

Стандарт NFC предусматривает очень короткую дистанцию чтения, поэтому он и получил свое название. (Near Field Communication — «коммуникация ближнего поля», «ближняя бесконтактная связь»). Два NFC устройства и/или NFC метки должны быть на расстоянии около 1-2 см для обмена данными. Возможная дистанция считывания зависит от нескольких факторов, таких как размер NFC метки и тип NFC считывателя. Если необходима более длинная дистанция считывания, то вам следует использовать UHF или RFID технологии.

От чего зависит дистанция считывания NFC метки

  • Размер и форма NFC метки – В общем случае, чем больше NFC метка, тем больше дальность считывания. Это связано с тем, что чем больше NFC метка, тем больше ее антенна.

  • Окружающая среда – Такие факторы как наличие металлических поверхностей влияют на работу NFC метки.

  • Исполнение NFC метки – Чем больше различных материалов между антенной NFC метки и считывателем, тем хуже читается NFC метка. Например, силиконовым браслет со встроенной NFC меткой имеет более короткую дистанцию считывания, чем NFC наклейка.

  • Тип NFC считывателя – Обычно USB или Serial считыватели имеют более длинную дистанцию считывания, чем мобильные устройства с NFC модулем.

  • Тип NFC чипа – Некоторые NFC чипы имеют отличную дистанцию считывания, несмотря на малый размер.

Читайте ещё про NFC:  Киви ваучер что это, как создать, оплатить, получить код, активировать

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

Уникальный идентификатор (Unique Identifier — UID) NFC метки нельзя изменить. Этот идентификатор находится в защищенной области памяти NFC чипа. Он предназначен для идентификации NFC чипа.

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

Расшифровка записей NDEF.

Поле Type Name Format (TNF) определяет тип содержимого, содержащегося в записи. Вот стандартные типы контента, которые вы можете найти в записи NDEF:

  • 0 — Empty: Запись не содержит никакой информации.
  • 1 — Хорошо известно: Данные определяются спецификацией определения типа записи (RTD), доступной на форуме NFC.
  • 2 — Многоцелевые расширения электронной почты Интернета (MIME): Это один из типов данных, обычно встречающихся в интернет-сообщениях, как определено RFC 2046.
  • 3 — Абсолютный унифицированный идентификатор ресурса (URI): Это указатель на ресурс, который следует за синтаксисом RFC 3986.
  • 4 — Внешний: Это пользовательские данные, которые зависят от формата, указанного спецификацией RTD.
  • 5 — Неизвестно: Тип данных неизвестен, а это значит, что вы должны установить длину типа в 0.
  • 6 — Без изменений: Некоторые полезные файлы разбиты на части, что означает, что данные слишком велики, чтобы соответствовать одной записи. В этом случае каждая запись содержит кусок данных — кусок. Этот ФНО указывает, что это не первая запись в куске — это одна из средних или завершающих записей. TNF не изменяется от данных, найденных в первой записи набора каналов.
  • 7 — Зарезервировано: Это значение зарезервировано для будущего использования.

Флаг IL указывает, содержит ли запись поле длины ID. Он не определяет длину ID — он просто сообщает вам, что это значение доступно.

Флаг SR определяет, является ли запись короткой. Короткая запись — одна с длиной полезной нагрузки {amp}lt;= 255 байт. Нормальные записи могут иметь длину полезной нагрузки, превышающую 255 байт, до 4 ГБ. Для многих случаев использования требуется максимальная экономичность размера сообщения. Флаг SR позволяет использовать заголовок сжатой записи, указывая длину полезной нагрузки в одном байте, вместо того, чтобы требовать нормальные четыре байта.

Сообщение NDEF может содержать несколько записей. Первая запись в сообщении имеет флаг MB (начало сообщения), установленный в true, чтобы вы знали, что это первая запись. Последняя запись в сообщении имеет флаг ME, чтобы вы знали, что это последняя запись. Во всех промежуточных записях установлены флаги MB и ME, равные false.

Поле Type Length содержит длину типа полезной нагрузки в байтах. Тип полезной нагрузки определяет точный вид данных, найденных в полезной нагрузке. Например, просто знать, что TNF является типом данных MIME, недостаточно — вы должны знать точный тип MIME (например, « text / plain ») для обработки данных.

Поле «Длина полезной нагрузки» содержит длину полезной нагрузки в байтах. Запись может содержать до 4, 294, 967, 295 байт (или 2 ^ 32 — 1 байт) данных.

Читайте ещё про NFC:  Акция от Тинькофф Банка «Автомобиль от AcademeG»

Поле ID Length содержит длину поля ID в байтах.

Следующий тип. Это определение точного вида данных, содержащихся в полезной нагрузке.

Поле ID предоставляет средства для внешних приложений для идентификации всей полезной нагрузки, переносимой в записи NDEF. Только первая запись содержит идентификатор; средние или завершающие записи NDEF не имеют поля идентификатора.

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

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

Пассивный — Активный

Пассивная NFC метка взаимодействует с активным NFC устройством, например, со смартфоном.

Активный — Активный

Активное NFC устройство, например, смартфон, взаимодействует с другим активным NFC устройством, например, бесконтактным терминалом оплаты.

Способы использования NFC

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

Для осуществления платежа через NFC потребуется:

  1. Банковская карта с пометкой paypass.
  2. Приложение соответствующего банка.
  3. Найти в меню приложения пункт NFC.
  4. Приложить карту к задней крышке телефона для считывания.
  5. Запомнить пароль для проведения платежных операций, высланный в SMS-сообщении.

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

1. Активируйте NFC — поставьте галочку напротив этого пункта в меню «Беспроводные сети», разблокировать смартфон и включить экран.

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

Какой NFC чип может хранить контакты (VCARD)?

Широко используемый NFC чип NTAG203 имеет 144 доступной для записи памяти. Этого недостаточно для записи полных контактный данных. Чип позволяет записать лишь небольшое количество полей (Например, фамилию, имя и телефон). Если вам нужна большая емкость, то рекомендуется использовать чип NTAG216, который имеет возможность записи 888 байт.

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

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

Adblock
detector