Nfc навигация

Введение в разработку приложений для 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 навигация

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

Читайте ещё про NFC:  Как оплачивать проезд в метро телефоном

Samsung Galaxy S7 и Apple iPhone 6

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

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

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

Модели смартфонов, поддерживающие NFC

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

  • Apple iPhone (начиная с моделей 6S и 6S Plus);
  • новинки линейки Galaxy от Samsung и смартфоны других производителей на платформе Android (начиная с Android0).

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

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

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

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

Nfc навигация

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

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

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

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

Найдите вкладку «Беспроводные сети», затем «Ещё…» и если NFC доступно на устройстве, то там обязательно будет соответствующий пункт.

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

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

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

NFC

Последний блок в каждой области называется трейлером, он используется главным образом для сохранения локального ключа блока для чтения и записи данных. Он содержит два ключа, 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 на девайс. Но сделать это можно только при условии, что панельная крышка на обороте и отверстие для SIM-карты на вашем смартфоне /планшете являются съемными. Установить NFC в таком случае не составит труда.

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

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

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

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

  • NFC-симка. Сейчас доступны к покупке у большинства мобильных операторов. Узнать о наличии такой SIM можно в салоне связи. Вам нужно лишь установить готовую карту в телефон или планшет. Такой тип модуля является наиболее доступным и простым в установке.
  • NFC-антенна. Второй способ, для которого вам потребуется приобрести 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 не будет опубликован. Обязательные поля помечены *

Adblock
detector