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

Введение в разработку приложений для Android, поддерживающих 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, который отправляется соответствующему действию.

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

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

NDEF_DISCOVERED, TECH_DISCOVERED, TAG_DISCOVERED

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

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

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

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

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

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

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

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

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

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

Проверяем девайс на наличие NFC

Данная технология может встретиться не только на смартфонах, но и на других девайсах, например, таблеты тоже обладают подобным функционалом. Приемник НФС занимает минимум места и обычно “комфортно” помещается между батареей аккумулятора и корпусной крышкой устройства. Как узнать, есть ли в вашем оборудовании такое новшество?

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

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

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

Стоит отметить, что данную технологию поддерживают операционки Android версии 4.0 и выше, в качестве встроенной в систему «Beam» функции. Для того чтобы проверить наличие модуля на своем телефоне, нужно зайти в его настройки, выбрать пункт беспроводных сетей и кликнуть на «Еще» (Дополнительно…).

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

Захотели попробовать технологию на практике, но не знаете, есть ли такая возможность именно на вашем устройстве? Давайте проверим.

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

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

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

Samsung Galaxy S7 и Apple iPhone 6

Найдите вкладку «Беспроводные сети», затем «Ещё…» и если 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();
	}

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

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

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

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

Активация NFC

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

  1. перейдите к разделу «Настройки» и далее «Беспроводные сети», «Ещё…», где ранее вы могли удостовериться в наличии NFC;
  2. подтвердите нажатием на пункт «Разрешить обмен данными при совмещении {amp}gt; название устройства {amp}gt; с другим»;
  3. на Android-cмартфоне сразу активируется Android Beam. Если этого не произошло, нажимайте на него и выбирайте «Да», чтобы не нарушить работу системы;

Устройства

Темпы внедрения приемопередатчиков NFC в серийно выпускаемых устройствах нельзя назвать стремительными. Первый мобильный телефон, оснащенный NFC (Nokia 6131), был выпущен еще в 2006 году. Затем на рынке появилось еще несколько моделей, однако ни одна из них так и не стала популярной.

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

Sony Xperia S — одна из новых моделей смартфонов, оснащенных встроенным приемопередатчиком NFC

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

Наряду со смартфонами были выпущены и другие типы устройств, оборудованные встроенными приемопередатчиками NFC. Так, осенью прошлого года компания Harman представила портативную АС JBL PlayUp, которая была разработана при участии Nokia специально для линейки смартфонов Lumia. Беспроводное подключение мобильных устройств к JBL PlayUp обеспечивают встроенный адаптер Bluetooth 2.

1 EDR с поддержкой профилей A2DP 1.2 и AVRCP 1.4, а также трансивер NFC. Это, в частности, позволяет воспроизводить музыку с аппаратов серии Nokia Lumia через динамики JBL PlayUp, просто прислонив смартфон к корпусу АС. Съемная литий-ионная батарея емкостью 1430 мА·ч обеспечивает работу системы JBL PlayUp в автономном режиме.

В ходе выставки CP 2013 компания Panasonic продемонстрировала специальную модификацию компактного цифрового фотоаппарата Lumix DMC-TZ40, оборудованную модулем приемопередатчика NFC. Такое решение позволяет без использования кабелей передавать фотографии на смартфон или другое устройство для оперативной публикации в социальных сетях или загрузки в «облачное» хранилище.

Портативная АС JBL PlayUp способна воспроизводить звуковой поток, транслируемый со смартфонов Nokia Lumia по NFC-соединению

На выставке CES 2013 корпорация Sony показала домашний сетевой накопитель Personal Content Station на базе жесткого диска емкостью 1 Тбайт. Одной из особенностей этой модели является встроенный трансивер NFC, благодаря которому процедура копирования медиафайлов с мобильных устройств на встроенный жесткий диск упрощена до предела: чтобы запустить процесс, достаточно положить аппарат на верхнюю панель корпуса Personal Content Station.

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

Не беспокойтесь, если вы не обнаружили встроенную функцию, есть способ подключить NFC на девайс. Но сделать это можно только при условии, что панельная крышка на обороте и отверстие для SIM-карты на вашем смартфоне /планшете являются съемными. Установить NFC в таком случае не составит труда.

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

Основные виды: чипы, сим-карты, внешние устройства, наклейки.  Последние из них бывают двух видов: пассивные — которые не дают возможности обмениваться данными, и активные- для передачи пользуются каналами связи Bluetooth и Wi-fi, что значительно повышает энергопотребление.

Такие стикеры крепятся к внешней оболочке телефона, что так же не очень практично.

Наиболее популярны следующие из них:

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

НФС расшифровка

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

NFC-метка представляет собой миниатюрное устройство в виде чипа, которое можно прикрепить практически везде: начиная с телефона и заканчивая внедрением под кожный покров!

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

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

Обмен данными через NFC

Технология может использоваться и для передачи файлов.

Для передачи данных необходимо сделать следующие шаги:

  1. убедиться в том, что вы прошли активацию NFС и Android Beаm;
  2. снять блокировку устройства, выйти из «режима сна»;
  3. проверить обнаружение устройств друг с другом;
  4. подключитесь;
  5. осуществите передачу данных между устройствами;
  6. в конце прозвучит специфический звуковой сигнал.

Преимущества и недостатки NFC

расположение модуля нфс

Главными плюсами являются:

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

Стоит выделить и минусы:

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

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

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

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