What is nfc adapter in android

Android — NFC Guide

NFC stands for Near Field Communication, and as the name implies it provides a wireless communication mechanism between two compatible devices. NFC is a short range wireless technology having a range of 4cm or less for two devices to share data.

How It Works

Like Bluetooth and WiFi, and all manner of other wireless signals, NFC works on the principle of sending information over radio waves. Through NFC data is send through electromagnetic induction between two devices.

NFC works on the bases of tags , it allows you to share some amount of data between an NFC tag and an android powered device or between two android powered devices. Tags have various set of complexities. The Data stored in the tag can be written in a variety of formats, but android APIs are based around a NFC standard called as NFC Data Exchange Format(NDEF)..

The transmission frequency for data across NFC is 13.56 megahertz, and data can be sent at either 106, 212 or 424 kilobits per second, which is quick enough for a range of data transfers from contact details to swapping pictures, songs and videos.

Android powered devices with NFC supports following three main modes of operations −

Three Modes of Operation

Reader/Writer Mode − It allows the NFC device to read or write passive NFC tags.

P2P mode − This mode allows NFC device to exchange data with other NFC peers.

Card emulation mode − It allows the NFC device itself to act as an NFC card, so it can be accessed by an external NFC reader.

How it works with Android

To get the permission to access NFC Hardware, add the following permission in your Android.Manifest file.

First thing to note is that not all android powered devices provide NFC technology. So to make sure that your application shows up in google play for only those devices that have NFC Hardware, add the following line in your Android.Manifest file.

Android provides a android.nfc package for communicating with another device. This package contains following classes −

It represents an immutable NDEF Message.

It represents an immutable NDEF Record.

It represents the local NFC adapter.

It wraps information associated with any NFC event.

It is a high level manager used to obtain an instance of an NfcAdapter.

It represents an NFC tag that has been discovered.

NFC tags system works in android with the help of some intent filters that are listed below:

Sr.No Classes & Description
1

This intent is used to start an Activity when a tag contains an NDEF payload.

This intent is used to start an activity if the tag does not contain NDEF data, but is of known technology.

This intent is started if no activities handle the ACTION_NDEF_DISCOVERED or ACTION_TECH_DISCOVERED intents.

To code an application that uses NFC technology is complex so don’t use it in your app unless necessary. The use of NFC is not common in devices but it is getting popular. Let’s see what is the future of this technology −

Future Applications

With this technology growing day by day and due to introduction of contact less payment systems this technology is getting a boom. A service known as Google Wallet is already introduced in the US which purpose is to make our smartphones a viable alternative to credit and transport cards.

Источник

NFC: Разбор технологии Near Field Communication

Все мы привыкли к такой данности в смартфоне как NFC. И вроде бы всё с этим ясно.

Многие не покупают смартфоны, где нет NFC, думая что это только про покупки. Но есть куча вопросов.

Но знали ли вы что еще умеет эта технология? Что делать если в вашем смартфоне нет NFC? Как использовать чип в iPhone не только для Apple Pay? Почему она не работает, особенно с карточками Мир?

А еще через него можно заряжать устройства…

Сегодня мы расскажем как она работает и разберем все подробности. И главное — почему это самая недооцененная технология в вашем смартфоне!

Как работает NFC?

Вы наверняка знаете, что NFC расшифровывается как Near Field Communication или по-русски — связь ближнего действия.

Но это не обычная передача данных по радиоволне. В отличие от Wi-Fi и Bluetooth NFC устроен хитрее. В основе лежит электромагнитная индукция. Это очень крутая штука из школьной программы, напомню.

Идея в том, что вы берете один проводник, в котором нет электричества. И кладете рядом с ним второй проводник, в котором есть электричество. И знаете, что? В первом проводнике, где электричества не было, начинает течь ток!

Когда мы впервые про нее узнали, подумали, что такое невозможно! Серьезно? Вы гоните! Пошли играть в Counter Strike, пацаны.

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

Ах да. В каждой метке есть крошечная микросхема. Например, в банковских картах микрочип запускает даже простенькую версию Java. Каково?

Может быть вы ещё слышали аббревиатуру RFID. Её разработали лет на 30 раньше. Она расшифровывается как радиочастотная идентификация. И по сути только для идентификации и подходит. Во многих офисных центрах пропуска до сих пор с RFID.

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

NFC работает на частоте 13,56 МГц, что позволяет развить неплохую скорость от 106 до 424 Кбит/с. Так что mp3-файл скачается за пару минут, но только на расстоянии до 10 см.

Физически NFC — это маленькая катушка. Например в Pixel 4 прикреплена к крышке и выглядит вот так.

А так в Xiaomi Mi 10 Pro:

И тут как раз пора поговрить о том, что умеет делать NFC?

Работа этой технологии и смежных, вроде RFID, описаны в стандарте ISO 14443. Там еще много чего свалено в кучу: например, итальянский протокол Mifare и VME — это в банковских картах.

NFC — это своего рода USB Type-C в мире беспроводных технологий, если вы понимаете, о чем я.

Но главное вот что. NFC может работать в трех режимах:

  1. Активный. Когда девайс считывает или записывает данные с метки или карточки. Кстати, да, данные на NFC метки можно и записывать.
  2. Передача между равноправными устройствами. Это когда вы подключаете к смартфону беспроводные наушники или используете Android Beam — помните такое. Там по NFC происходило подключение, а сама передача файла шла уже по Bluetooth.
  3. Пассивный. Когда наше устройство прикидывается чем-то пассивным: платежной картой или проездным.

Зачем NFC, если есть Bluetooth и Wi-Fi, ведь у них и скорость, и радиус действия больше.

Бонусы NFC вот в чем:

  1. Мгновенное подключение — одна десятая секунды.
  2. Низкое энергопотребление — 15 мА. У Bluetooth до 40 мА.
  3. Теги не требуют собственного питания.
  4. И не столь очевидное — малый радиус действия, что необходимо для безопасности и оплаты.

Есть правда еще Bluetooth Low Energy, но это отдельная история.

Зачем? Что нам это даёт?

Помимо уже очевидных сценариев: пропуска, оплата и проездные — есть приложения, которые умеют класть деньги на карту «Тройка» и другие транспортные карты.

Есть приложение — Считыватель банковских карт. Оно например может показать последние транзакции по карте. Не уверен, что это очень этично, но приложение лежит в Play Market.

Кстати, многих интересует, почему Google и Apple Pay не работают с картами Мир? Дело не в технических особенностях. Просто платежная система не договорилась с сервисами. Платить можно через свое приложение под Android — Мир Pay. Правда оно глючное, а под iPhone его вовсе нет!

Кстати, лайфхак. Если у вашего Android нет NFC, но платить очень хочется, что делать? Можно положить карточку под чехол. Обращайтесь. Правда толстые чехлы могут не пропускать волны даже встроенного NFC — так что проверяйте.

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

  1. Те, на которые можно записывать информацию. Они выглядят как маленькие наклейки. Обычно доступный объем памяти — около 700 байт. Подобные выпускала компания Sony.

Тут можно хранить кучу всего, например:

  • Доступ к Wi-Fi для гостей
  • Записать контактные данные и использовать в качестве визитки
  • Настроить смартфон переходить в спящий режим ночью на тумбочке
  • Еще в нее можно сохранить какие-то данные, например пароль или токен от BitCoin. Только лучше в зашифрованном виде.

Такую метку прочитает любой телефон с NFC.

Что делать, если у вас нет NFC меток? Их можно заказать, стоят копейки.

Но можно взять обычную банковскую карту или транспортную, вроде «Тройки». Это закрытые для записи метки. Типичный пример — ваша банковская карта. На них нельзя ничего записать.

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

Если у вас Android, можно поставить приложение например MacroDroid или NFC ReTag. В них можно назначать примерно такие же действия на NFC-теги. Включать/выключать Wi-Fi и звонок, запускать приложения, включать ночной режим. Например, можно сделать так, что когда вы кладете телефон на карту «Тройка», у вас автоматом открывается канал Droider. Рекомендую!

Кстати вот так выглядит содержимое «Тройки».

А еще можете почитать на Habr.com про чувака, который вживил NFC-метку себе в руку.

Для чего еще может использоваться NFC?

Одна из перспективных штук — электронные билеты. В кино или на концерты. Сейчас это делают через QR-код и это не так круто, на мой взгляд. Хотя миллионы китайцев со мной не согласятся.

Про Apple

Что делать, если у вас iPhone? Все думают, что доступ к NFC закрыт на iPhone, но это не так. Начиная с iOS 11, то есть с 2017 года Apple открыла доступ для разработчиков. И уже есть множество приложух таких же как на Android. Например, NFC Tools.

Правда там остаются ограничения: транспортные и банковские карты, например, не сканируются. Нужны специальные метки, о которых мы уже говорили.

Что делать? В iOS 13 появилась Функция Команды (Siri). И вот она как раз имеет доступ к любым NFC-меткам. Так что тут можно настроить запуск музыки по карте «Тройка». Или включить умную лампочку. Или еще кучу всего. Команды — реально бомбическая штука. Не понимаю, почему в Android такого до сих пор нет.

Зарядка

Если к этому моменты вы решили, что все знаете об NFC и устали от этих унылых применений. То вот вам кое-что бомбическое.

Есть такая организация NFC Forum, которая сертифицирует NFC. Вообще у каждой технологии есть такая организация, и хорошо если она одна.

И вот на днях они выложили очередной апдейт стандарта. И знаете что? Теперь NFC поддерживает беспроводную зарядку. Да, по сути, это четвёртый режим работы.

Как спросите вы? Электромагнитная индукция, помните? При помощи нее.

К слову Qi-зарядка работает точно по такому же принципу. Только там катушка побольше.

Но есть одна проблема. Катушка у NFC маленькая, а значит и мощность зарядки маленькая — всего 1 Ватт.

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

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

Кстати 1 Ватт это не то чтобы слишком мало. Для сравнения со всеми iPhone кроме 11 Pro, кладут 5-ваттную зарядку. А мощность обратной беспроводной зарядки в современных флагманах колеблется на отметке 5 или 7 Вт.

Но есть одно но — на текущих моделях эта фича не заработает. Смартфоны с с такой фишкой скорее всего начнут появляться через год-полтора. Так что ждите рекламу этой штуки от Samsung.

Источник

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

Архитектура технологии NFC

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

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

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

Режим эмуляции NFC карты

NFC модуль обычно состоит из двух частей: NFC контроллера и элемента безопасности (ЭБ). NFC контроллер отвечает за коммуникации, ЭБ – за шифрацию и дешифрацию чувствительной к взлому информации.

ЭБ подключается к NFC контроллеру посредством шины SWP (Single Wire Protocol) или DCLB (Digital Contactless Bridge). Стандарты NFC определяют логический интерфейс между хостом и контроллером, позволяя им взаимодействовать через RF-поле. ЭБ реализуется с помощью встроенного приложения или компонента ОС.

Существует три варианта реализации ЭБ: можно встроить его в SIM-карту, SD-карту или в NFC чип.

Операторы связи, такие как CMCC (China Mobile Communication Corporation), Vodafone или AT&T обычно используют решение на SIM-карте, поощряя своих абонентов бесплатной заменой старых SIM-карт на новые, оснащенные NFC.

Пиринговый режим

Два NFC устройства могут легко взаимодействовать друг с другом напрямую, обмениваясь небольшими файлами. Для установления Bluetooth/WiFi соединения необходимо обменяться XML файлом специального формата. В этом режиме ЭБ не используется.

Режим записи/чтения

В данном режиме NFC устройство может читать и записывать NFC метки. Хорошим примером применения является чтение информации с оснащенных NFC «умных» постеров.

Введение в разработку NFC под Android

Android поддерживает NFC с помощью двух пакетов: android.nfc и android.nfc.tech.
Основными классами в android.nfc являются:
NfcManager: Устройства под Android могут быть использованы для управления любыми обнаруженными NFC адаптерами, но поскольку большинство Android устройств поддерживают только один NFC адаптер, NfcManager обычно вызывается с getDefaultAdapter для доступа к конкретному адаптеру.
NfcAdapter работает как NFC агент, подобно сетевому адаптеру на ПК. С его помощью телефон получает доступ к аппаратной части NFC для инициализации NFC соединения.
NDEF: Стандарты NFC определяют общий формат данных, называемый NFC Data Exchange Format (NDEF), способный хранить и передавать различные типы объектов, начиная с MIME и заканчивая ультра-короткими RTD-документами, такими как URL. NdefMessage и NdefRecord – два типа NDEF для определенных NFC форумом форматов данных, которые будут использоваться в коде-примере.
Tag: Когда устройство Android обнаруживает пассивный объект типа ярлыка, карты и т.д., он создает объект типа «метка», помещая его далее в целевой объект и в заключении пересылая в соответствующий процесс.
Пакет android.nfc.tech также содержит множество важных подклассов. Эти подклассы обеспечивают доступ к функциям работы с метками, включающими в себя операции чтения и записи. В зависимости от используемого типа технологий, эти классы разбиты на различные категории, такие как NfcA, NfcB, NfcF, MifareClassic и так далее.
Когда телефон со включенным NFC обнаруживает метку, система доставки автоматически создает пакет целевой информации. Если в телефоне имеется несколько приложений, способных работать с этой целевой информаций, пользователю будет показано окно с предложением выбрать одно из списка. Система доставки меток определяет три типа целевой информации, в порядке убывания приоритета: NDEF_DISCOVERED, TECH_DISCOVERED, TAG_DISCOVERED.
Здесь мы используем целевой фильтр для работы со всеми типами информации начиная с TECH_DISCOVERED до ACTION_TECH_DISCOVERED. Файл nfc_tech_filter.xml используется для всех типов, определенных в метке. Подробности можно найти в документации Android. Рисунок ниже показывает схему действий при обнаружении метки.

Пример 1. Разработка NFC приложения для чтения/записи меток.

Следующий пример показывает функции чтения/записи NFC метки. Для того, чтобы получить доступ к аппаратной части NFC и корректно обрабатывать NFC информацию, объявите эти позиции в файле AndroidManifest.xml.

Минимальную версию SDK, которую должно поддерживать ваше приложение — 10, объявите об этом в файле AndroidManifest.xml

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

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

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

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

В этом примере для чтения мы будем использовать карты MifareClassic и соответствующий им тип метки. Карты MifareClassic широко используются для различных нужд, таких как идентификация человека, автобусный билет и т.д. В традиционной карте MifareClassic область хранения разбита на 16 зон, в каждой зоне 4 блока, и каждый блок может хранить 16 байт данных.
Последний блок в зоне называется трейлером и используется обычно для хранения локального ключа чтения/записи. Он содержит два ключа, А и В, 6 байт длиной каждый, по умолчанию забитые 00 или FF, в зависимости от значения MifareClassic.KEY_DEFAULT.
Для записи на карту Mifare вы, прежде всего, должны иметь корректное значение ключа (что играет защитную роль), а также успешно пройти аутентификацию.

Пример того, как читать карту MifareClassic:

Источник

Читайте также:  Аккумуляторы для htc андроид
Оцените статью
Sr.No Filters & Features
1