Тип метки nfc не поддерживается samsung galaxy. NFC на Android - что это такое

Изначально, технология Near Field Communication (NFC ) получила максимальное распространение в качестве технологии для совершения бесконтактных платежей. Вы можете использовать смарт-карту со встроенным NFC чипом как проездной в общественном транспорте, как платежную карту в учреждениях розничной торговли, как «умную» визитку или как бесконтактную карту-ключ.

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

Что такое NFC?

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

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

В операционной системе Android, поддержка NFC появилась в версии Android 4.0 Ice Cream Sandwich - её встроенная функция Beam позволяет обмениваться файлами между устройствами.

Зачем нужно NFC, если уже есть Bluetooth?

Как вы помните, NFC чаще всего используется при оплате различных товаров или услуг, а в этом случае Bluetooth не совсем подходит. Во-первых, из-за своего большого радиуса действия (есть вероятность перехвата ваших платежных данных). А во-вторых - соединение между двумя NFC устройствами, в отличие от Bluetooth, происходит практически мгновенно.

Есть ли на вашем устройстве поддержка NFC?

Не все телефоны и планшеты имеют NFC адаптеры. Имеет ли ваш планшет поддержку NFC? Как проверить его наличие?

Некоторые производители, такие как Samsung, размещают надпись Near Field Communication прямо на батарее своих смартфонов, другие – такие как Sony, размещают на устройстве логотип NFC.

Однако, проще всего проверить наличие NFC адаптера в телефоне или планшете, можно через его меню настроек:

Перейдите в меню настроек своего Android устройства

В разделе «Беспроводные сети» нажмите «Еще…»

Здесь вы должны увидеть пункты настроек NFC:

Активация NFC

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

Перейдите в раздел Настройки -> Беспроводные сети -> Еще...

Отметьте «галочкой» пункт «разрешить обмен данными при совмещении планшета с другим устройством»

При этом автоматически включится функция Android Beam.

Если Android Beam не включается автоматически, просто нажмите на него и выберите «Да», чтобы включить его.

Когда Android Beam отключен, это ограничивает возможности обмена NFC данными между смартфонами или планшетами.

Обмен данными с помощью NFC

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

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

Ни одно из устройств не должно находиться в спящем режиме или иметь заблокированный экран.

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

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

Передача данных через NFC

Поместите задние панели устройств друг против друга.

Подождите, пока не появится подтверждение того, что оба устройства обнаружили друг друга и на экране отправителя не появится надпись «нажмите, чтобы передать данные»:

Кликните по экрану и передача данных начнется:

Вы услышите звуковое подтверждение, как в начале, так и по окончанию передачи данных.

Обмен приложениями

С помощью NFC вы не можете обмениваться APK файлами. Вместо этого, устройство-отправитель передает другому устройству ссылку на это приложение в Google Play Маркет, а получатель открывает страницу в Маркете с предложением о его установке.

Обмен веб-страницами

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

Обмен видео YouTube

Опять же, при обмене видео YouTube, передача самого файла не производится – просто второе устройство откроет это же видео на сайте YouTube.

Использование NFC меток.

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

NFC чипы достаточно малы, и они могут быть встроены куда угодно – в визитные карточки, браслеты, этикетки товаров, наклейки, ценники и прочие предметы. Они могут содержать данные о человеке, URL-адрес, информацию о товаре и даже команды, которые должен будет выполнить ваш телефон или планшет при касании этих меток.

Для чтения данных из NFC меток (или для записи информации в них) вам, конечно же, понадобится специальное приложение.

Например, с помощью программы Яндекс.Метро вы можете узнать, сколько поездок осталось на одноразовой карточке Московского метрополитена, а программа NFC App Launcher позволит запрограммировать ваш телефон или планшет на выполнение определенных действий, разместив соответствующую информацию в NFC метке.

Заключение

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

Сейчас почти у каждого есть карты с поддержкой NFC, которыми можно оплатить покупку в одно касание, а ещё лучше это сделать смартфоном или даже умными часами 😉 Есть карты, которыми можно оплатить проезд, а также пополнить баланс с телефона (жаль вот только ввели такую систему не во всех городах, а в некоторых предпочли «изобрести велосипед» и использовали карты, которые несовместимы с NFC). А ещё можно просто прикоснуться телефоном к наушникам, и они сами образуют пару с вашим телефоном и в некоторых случаях даже включают Bluetooth.

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

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

Итак, разберёмся в механике работы RFID и NFC и в том, чем они отличаются.

RFID

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

Теперь представьте, что Иван включил светильник, а его сосед, который сидит у себя дома, видит это и кратковременно включает светильник на своём крыльце, как будто передаёт Ивану «привет» со своего крыльца. Это активный RFID, он может работать на более длинные дистанции, так как приёмник имеет свой собственный источник питания и, более того, может генерировать собственный радиосигнал, не полагаясь на энергию, которую он поглотил от источника.

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

NFC

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

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

Например, можно прикоснуться телефоном с NFC к стереоустройству, у которого тоже есть NFC, и они опознают друг друга, узнают, что у обоих есть Wi-Fi модуль, и обменяются данными для последующего взаимодействия через Wi-Fi. После этого телефон начнёт трансляцию музыки на стереоустройство с помощью Wi-Fi. Телефон не будет транслировать музыку с помощью NFC по двум причинам:

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

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

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

Типы NFC-меток

Существует четыре типа меток, описанных NFC-форумом, все они базируются на RFID-протоколах. Это делает NFC метки частично совместимыми со многими уже существующими RFID системами (например, Mifare и FeliCa). Хотя эти более старые системы не поддерживают NDEF, они, однако, могут опознавать NFC метки, которые совместимы с ними. Например, считыватель RFID, который предназначен для работы с метками Mifare Ultralight, может считать идентификационный номер метки NFC 2 типа, хоть и не может прочитать закодированную NDEF информацию. Есть также пятый тип, который совместим с технологией, но при этом не является частью NFC-спецификации.

Типы 1, 2 и 4 основаны на ГОСТ Р ИСО/МЭК 14443A (состоит из четырёх частей: , , , ), тип 3 - на ГОСТ Р ИСО/МЭК 18092 . Более подробно про каждый из типов можно прочитать под спойлером.

Тип 1 :

  • Основан на ГОСТ Р ИСО/МЭК 14443A;
  • Нет защиты данных от коллизий (прим. - коллизии могут возникнуть; когда два активных источника передают данные одновременно);
  • Примеры: Innovision Topaz, Broadcom BCM20203.

Тип 2 :

  • Аналогично типу 1 основан на NXP/PhilipsMifareUltralight метках (ГОСТ Р ИСО/МЭК 14443A);
  • Может быть как только для чтения, так и для чтения/записи;
  • Содержит от 96 байт до 2 кбайт памяти;
  • Поддержка анти-коллизий;
  • Пример: NXP Mifare Ultralight.

Тип 3 :

  • Основан на метках SonyFeliCa (ГОСТ Р ИСО/МЭК 18092 и JIS-X-6319-4) без поддержки шифрования и аутентификации, которая предоставлена спецификацией FeliCa;
  • Скорость взаимодействия 212 или 424 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: Sony FeliCa.

Тип 4 :

  • Аналогично типу 1, тип 4 основан на ГОСТ Р ИСО/МЭК 14443A;
  • Может быть либо только для чтения, либо для чтения/записи;
  • 2, 4 или 8 кбайт памяти;
  • Скорость взаимодействия 106, 212 или 424 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP DESFire, SmartMX-JCOP.

Пятый тип является собственностью NXPSemiconductors и, вероятно, самым распространённым на сегодняшний день MifareClassictag (ГОСТ Р ИСО/МЭК 14443A):

  • Память: 192, 768 или 3584 байта;
  • Скорость взаимодействия 106 кбит/с;
  • Поддержка анти-коллизий;
  • Пример: NXP Mifare Classic 1K, Mifare Classic 4K, Mifare Classic Mini.

Алгоритм работы NFC

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

У NFC устройств есть два режима взаимодействия. Если инициатор излучает радиочастотные волны, а цель за счёт инициатора получает питание, то такой режим взаимодействия называют пассивным. При активном режиме у инициатора и цели свои собственные источники питания, и они независимы друг от друга. Данные режимы совпадают с режимами RFID.

NFC устройства также имеют три способа работы. Они могут работать в режиме чтения информации с цели или записи на неё. Они могут эмулировать карты, ведя себя как RFID-метки, когда они в поле другого NFC или RFID устройства. Или они могут работать в режиме peer-to-peer (P2P), в котором они обмениваются данными сразу в обоих направлениях.

Первым главным отличием NFC от RFID является способ взаимодействия peer-to-peer, который реализован с помощью ГОСТ Р ИСО/МЭК 18092. Обмен данными P2P реализуется двумя протоколами - протоколом подуровня управления логической связью (LLCP - logical link control protocol) и простым протоколом обмена данными NDEF (SNEP - simple NDEF exchange format).

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

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

На физическом уровне NFC работает по алгоритму, описанному в ГОСТ для RFID (ГОСТ Р ИСО/МЭК 14443-2-2014), где говорится о маломощных радиосигналах частотой 13,56 МГц. Затем идёт уровень, который описывает разбивку потока данных на фреймы (ГОСТ Р ИСО/МЭК 14443-3-2014). Любые радиоконтроллеры, которые используются в телефоне, планшете или подсоединяются к компьютеру или микроконтроллеру, являются отдельными аппаратными компонентами. Они взаимодействуют с главным процессором посредством одного или нескольких стандартных последовательных протоколов между устройствами: универсальный асинхронный приёмопередатчик (UART), последовательный периферийный интерфейс (SPI), последовательная шина данных для связи интегральных схем (I2C) или универсальная последовательная шина (USB).

Над этим находится несколько протоколов команд RFID, базирующихся на двух спецификациях. NFC чтение и запись меток базируется на оригинальном RFID ГОСТ Р ИСО/МЭК 14443A. Протоколы Philips/NXP Semiconductors Mifare Classic и Mifare Ultralight и NXP DESFire совместимы с ГОСТ Р ИСО/МЭК 14443A. Обмен данными P2P NFC базируется на ГОСТ Р ИСО/МЭК 18092. Также на этом же стандарте базируются RFID-карты и метки Sony FeliCa, которые доступны в основном в Японии. Можно читать и записывать метки, основанные на этих стандартах, и не использовать NFC.

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

NDEF

NDEF используется для форматирования данных обмена между устройствами и метками. Данный формат типизирует все сообщения, которые используются в NFC, причём не важно для карты это или для устройства. Каждое NDEF-сообщение содержит одну или несколько NDEF-записей. Каждая из них содержит уникальный тип записи, идентификатор, длину и поле для информации, которую нужно сообщить.

Есть несколько распространённых типов NDEF-записей:

  1. Обычные текстовые записи. В них можно отправить любую строку, они не содержат инструкций для цели, но содержат метаданные об языке текста и кодировке.
  2. URI. Такие записи содержат данные об интернет-ссылках. Цель, получившая такую запись, откроет её в том приложении, которое сможет её отобразить. Например, веб-браузере.
  3. Умная запись. Содержит не только веб-ссылки, но и текстовое описание к ним, чтобы было понятно, что находится по этой ссылке. В зависимости от данных записи телефон может открыть информацию в нужном приложении, будь то SMS или e-mail, либо сменить настройки телефона (громкость звука, яркость экрана и т.д.).
  4. Подпись. Она позволяет доказать, что информация, которая была передана или передаётся, достоверна.

Можно использовать несколько видов записей в одном NDEF-сообщении.

Можно представить сообщение как параграф, а записи - как предложения. Параграф - определённая единица информации, которая содержит одно или несколько предложений. Тогда как предложение - меньшая единица информации, которая содержит всего одну идею. Например, можно в виде абзаца сделать приглашения на день рождения и написать в отдельных предложениях данные о дате, времени и месте проведения, а с помощью NDEF-сообщений передать друзьям напоминание об этом событии, где будет текстовое сообщение с описанием события, умную запись с местом и веб-ссылку с тем, как добраться до этого места.

Второе главное различие между NFC и RFID - формат обмена данными NFC (NDEF - NFC data exchange format). NDEF определяет формат данных в сообщениях, которые в свою очередь состоят из NDEF записей. Есть несколько видов записей, о которых будет рассказано более подробно чуть ниже. NDEF делает возможным с помощью программного кода управлять процессом чтения и записи NFC-меток, обмена данными при помощи peer-to-peer и эмулирования карт.

Структура NDEF

NDEF содержит информацию о байтовом представлении сообщений, которые могут содержать несколько записей. У каждой записи есть заголовок, в котором находятся метаданные (тип, длина и т.д.), и информацию для отправки. Если вернуться к аналогии с параграфом, то параграф формируется из предложений, относящихся к одной теме, так и в NDEF-сообщениях - хорошо, когда все записи относятся к одной тематике.

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

NDEF-запись содержит информацию для пересылки и метаданные, как эту информацию интерпретировать. Каждая запись может быть разного типа, о чем объявляется в заголовке этой записи. Также в заголовке описывается какое место занимает запись в сообщении, после заголовка следует информация. На рисунке ниже представлена полная информация о расположении бит и байт информации в NDEF-записи. Информация для пересылки занимает большую часть записи. Тип информации уточняет, как её интерпретировать, идентификатор информации опционален и используется для пересылки большого количества записей или перекрёстного обмена данными.

Какой длины может быть NDEF-сообщение?

Место на информацию в NDEF-записи ограниченно по размерам 2^32-1 байтами, однако можно делать цепочки записей внутри сообщения, чтобы переслать информацию большего размера. В теории нет ограничений на NDEF-сообщения, но на практике размер сообщения ограничивается возможностями устройств или меток, участвующих в обмене информацией. Если в обмене участвуют только устройства, то длина сообщения будет ограничена вычислительной мощностью самого слабого из устройств, но стоит учесть, что устройства придётся долго держать рядом для пересылки всех данных. При взаимодействии смартфона и карты длина сообщения будет ограничена размером памяти карты.

В общем, обмен данными через NFC достаточно быстрый. Человек подносит мобильное устройство к метке, происходит краткий обмен информацией, и человек идёт дальше. Данная технология не была спроектирована для длительных обменов информацией, потому что устройства в буквальном смысле должны находится в паре сантиметров друг от друга. Для того чтобы передать большой объем информации, устройства придётся держать друг рядом с другом длительное время, это может быть неудобным. Если нужно длительное взаимодействие между устройствами, то можно воспользоваться NFC для быстрого обмена данными о возможностях устройств и последующего включения одного из более подходящих способов передачи данных (Bluetooth, Wi-Fi и т.д.).

Читаем NDEF-сообщение

Когда телефон на Android считывает NFC-метку, он сначала её обрабатывает и распознает, а затем передаёт данные о ней в соответствующее приложение для последующего создания intent. Если с NFC может работать больше одного приложения, то появится меню выбора приложения. Система распознавания определяется тремя intent, которые перечислены в порядке важности от самой высокой до низкой:

  1. ACTION_NDEF_DISCOVERED: Этот intent используется для запуска аctivity, если в метке содержится NDEF-сообщение. Он имеет самый высокий приоритет, и система будет запускать его в первую очередь.
  2. ACTION_TECH_DISCOVERED: Если никаких activity для intent ACTION_NDEF_DISCOVERED не зарегистрировано, то система распознавания попробует запустить приложение с этим intent. Также этот intent будет сразу запущен, если найденное NDEF-сообщение не подходит под MIME-тип или URI, или метка совсем не содержит сообщения.
  3. ACTION_TAG_DISCOVERED: Этот intent будет запущен, если два предыдущих intent не сработали.

В общем случае система распознавания работает, как представлено на рисунке ниже.

Когда это возможно, запускается intent ACTION_NDEF_DISCOVERED , потому что он наиболее специфичный из трёх. Более того, с его помощью можно будет запустить ваше приложение.

Если activity запускается из-за NFC intent, то можно получить информацию с отсканированной NFC-метки из этого intent. Intent может содержать следующие дополнительные поля (зависит от типа отсканированной метки):

  • EXTRA_TAG (обязательное): объект Tag, описывающий отсканированную метку.
  • EXTRA_NDEF_MESSAGES (опциональное): Массив NDEF-сообщений, просчитанный с метки. Это дополнительное поле присуще только intent ACTION_NDEF_DISCOVERED .
  • EXTRA_ID (опциональное): Низкоуровневый идентификатор метки.

Ниже представлен пример, проверяющий intent ACTION_NDEF_DISCOVERED и получающий NDEF-сообщения из дополнительного поля.

Override fun onNewIntent(intent: Intent) { super.onNewIntent(intent) ... if (NfcAdapter.ACTION_NDEF_DISCOVERED == intent.action) { intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES)?.also { rawMessages -> val messages: List = rawMessages.map { it as NdefMessage } // Обработка массива сообщений. ... } } }

@Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); ... if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) { Parcelable rawMessages = intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES); if (rawMessages != null) { NdefMessage messages = new NdefMessage; for (int i = 0; i < rawMessages.length; i++) { messages[i] = (NdefMessage) rawMessages[i]; } // Обработка массива сообщений. ... } } }

Также объект Tag можно получить из intent, который будет содержать полезную информацию и позволит перечислить технологии метки:

val tag: Tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG)

Tag tag = intent.getParcelableExtra(NfcAdapter.EXTRA_TAG);

Создаём распространённые NDEF-записи

Существует несколько методов для создания NDEF-записи: createUri() , createExternal() и createMime() . Лучше использовать один из них во избежание ошибок, которые могут возникнуть при создании записи вручную. Все примеры, представленные ниже, следует отправлять первым сообщением при записи метки, либо сопряжением с другим устройством.

TNF_ABSOLUTE_URI (тип URI, зависит от типа)

Создать NDEF-запись TNF_ABSOLUTE_URI можно следующим образом:

Val uriRecord = ByteArray(0)..toByteArray(Charset.forName("US-ASCII")), emptyByteArray, emptyByteArray) }

NdefRecord uriRecord = new NdefRecord(NdefRecord..getBytes(Charset.forName("US-ASCII")), new byte, new byte);

TNF_MIME_MEDIA (MIME-тип, зависит от типа записи)

Создать NDEF-запись TNF_MIME_MEDIA можно следующим образом:

1. Используя метод createMime() :

Val mimeRecord = NdefRecord.createMime("application/vnd.com.example.android.beam", "Beam me up, Android".toByteArray(Charset.forName("US-ASCII")))

NdefRecord mimeRecord = NdefRecord.createMime("application/vnd.com.example.android.beam", "Beam me up, Android".getBytes(Charset.forName("US-ASCII")));

2. Создав NdefRecord вручную:

Val mimeRecord = Charset.forName("US-ASCII").let { usAscii -> NdefRecord(NdefRecord.TNF_MIME_MEDIA, "application/vnd.com.example.android.beam".toByteArray(usAscii), ByteArray(0), "Beam me up, Android!".toByteArray(usAscii)) }

NdefRecord mimeRecord = new NdefRecord(NdefRecord.TNF_MIME_MEDIA , "application/vnd.com.example.android.beam".getBytes(Charset.forName("US-ASCII")), new byte, "Beam me up, Android!".getBytes(Charset.forName("US-ASCII")));

Intent-фильтр для такой NDEF-записи будет таким:

TNF_WELL_KNOWN с RTD_TEXT (MIME-тип с записью простого текста)

Fun createTextRecord(payload: String, locale: Locale, encodeInUtf8: Boolean): NdefRecord { val langBytes = locale.language.toByteArray(Charset.forName("US-ASCII")) val utfEncoding = if (encodeInUtf8) Charset.forName("UTF-8") else Charset.forName("UTF-16") val textBytes = payload.toByteArray(utfEncoding) val utfBit: Int = if (encodeInUtf8) 0 else 1 shl 7 val status = (utfBit + langBytes.size).toChar() val data = ByteArray(1 + langBytes.size + textBytes.size) data = status.toByte() System.arraycopy(langBytes, 0, data, 1, langBytes.size) System.arraycopy(textBytes, 0, data, 1 + langBytes.size, textBytes.size) return NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, ByteArray(0), data) }

Public NdefRecord createTextRecord(String payload, Locale locale, boolean encodeInUtf8) { byte langBytes = locale.getLanguage().getBytes(Charset.forName("US-ASCII")); Charset utfEncoding = encodeInUtf8 ? Charset.forName("UTF-8") : Charset.forName("UTF-16"); byte textBytes = payload.getBytes(utfEncoding); int utfBit = encodeInUtf8 ? 0: (1 << 7); char status = (char) (utfBit + langBytes.length); byte data = new byte; data = (byte) status; System.arraycopy(langBytes, 0, data, 1, langBytes.length); System.arraycopy(textBytes, 0, data, 1 + langBytes.length, textBytes.length); NdefRecord record = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_TEXT, new byte, data); return record; }

Intent-фильтр для такой NDEF-записи будет таким:

TNF_WELL_KNOWN с RTD_URI (тип URI, базирующийся на полезной информации)

Создать NDEF-запись TNF_WELL_KNOWN можно следующим образом:

1. Используя метод createUri(String) :

val rtdUriRecord1 = NdefRecord.createUri("http://example.com")

NdefRecord rtdUriRecord1 = NdefRecord.createUri("http://example.com");

2. Используя метод createUri(Uri) :

Val rtdUriRecord2 = Uri.parse("http://example.com").let { uri -> NdefRecord.createUri(uri) }

Uri uri = Uri.parse("http://example.com"); NdefRecord rtdUriRecord2 = NdefRecord.createUri(uri);

3. Создав NdefRecord вручную:

Val uriField = "example.com".toByteArray(Charset.forName("US-ASCII")) val payload = ByteArray(uriField.size + 1) //добавление 1 для префикса URI payload = 0x01 //префикс http://www. к URI System.arraycopy(uriField, 0, payload, 1, uriField.size) //добавление URI к полезной информации val rtdUriRecord = NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, ByteArray(0), payload)

Byte uriField = "example.com".getBytes(Charset.forName("US-ASCII")); byte payload = new byte; //добавление 1 для префикса URI payload = 0x01; //префикс http://www. к URI System.arraycopy(uriField, 0, payload, 1, uriField.length); //добавление URI к полезной информации NdefRecord rtdUriRecord = new NdefRecord(NdefRecord.TNF_WELL_KNOWN, NdefRecord.RTD_URI, new byte, payload);

Intent-фильтр для такой NDEF-записи будет таким:

Более подробно про работу с NDEF-записями на Android можно почитать .

Использование NFC

Есть множество возможностей использования NFC:

  • Режим эмуляции карты позволяет использовать данную технологию для бесконтактных платежей, например Google Wallet, или для оплаты или получения билетов в общественном транспорте.
  • Есть несколько мобильных приложений, которые позволяют сохранить настройки для мобильного устройства на метках и в дальнейшем использовать их для быстрого изменения каких-либо настроек мобильного устройства (переход в режим виброзвонка, включения или выключения Wi-Fi на мобильном устройстве).
  • На рынке постепенно появляются устройства, поддерживающие NFC, - стереосистемы, телевизоры, которые позволяют создавать пару с телефоном или планшетом для удалённого управления.
  • NFC используется в системе здравоохранения для хранения идентификатора пациента и личных записей.
  • В сфере управления материально-техническими ресурсами можно использовать NDEF записи для хранения информации о месте отправления товаров, об их прохождении различных промежуточных пунктов и тому подобном.

Заключение

Технология NFC добавляет многообещающую функциональность к технологии RFID. Наиболее значимое нововведение - формат обмена данными NFC (NDEF), который предоставляет возможность форматировать обычные данные в одну из четырёх технологий меток NFC. NDEF может быть использован как для обмена данными между устройством и меткой, так и для обмена между устройствами. Это делает NFC пригодным не только как способ идентификации, но и как средство обмена короткими блоками данных.

Варвара Николаева

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

В интернете часто стали появляться сообщения и вопросы о том, что тип метки nfc не поддерживается. Да, в основном с этой проблемой сталкиваются пользователи аппаратов от гиганта Samsung, где часто упоминаются модели семейства Galaxy, но есть и другие модели аппаратов. Как таковых ответов на просторах Всемирной сети нет, и интерес к этому вопросу только возрастает. Мы же провели для вас тщательный анализ и выявили, с каким именно приложением возникает данная проблема, почему она появляется и возможно ли ее решить.

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

Карта «Тройка» — это специализированная карточка, которая позволяет быстро пополнять баланс для проезда на разном транспорте в Москве. Система была введена еще в 2013 году, и с тех пор активно развивается.

В 2015 году вышла первая версия приложения «Мой проездной», куда можно было закинуть все данные своей карты, используя технологию NFC и оплачивать проезд уже не картой, а смартфоном. И это вполне логично. Сейчас у каждого пользователя есть телефон, поэтому оплата таким образом, становится еще быстрее и удобнее. И если карту ты мог забыть дома, то уж телефон навряд ли забудешь!

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

Главная причина проблемы

Мало того, что ваш аппарат должен обладать встроенным NFC, так телефон должен быть совместим еще и с технологией Mifare Classic. Если этой совместимости нет, то и корректной работы вам никто не гарантирует. На каких смартфонах присутствует этот функционал, смотрите ниже в таблице.

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

Как узнать, поддерживает ли мой смартфон приложение?

Как минимум, должен быть смартфон на базе Android 4.0 и выше с поддержкой NFC.

Как и говорилось ранее, сама технология NFC должна поддерживать стандарт Mifare Classic, а проверить это можно лишь практическим путем.

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

Для удобства мы также представляем эту таблицу:

ALCATEL Acer Asus HTC HUAWEI
ONETOUCH POP S9 Liquid Express Padfone 2 One ASCENT P7
ONETOUCH IDOL2 Mini S Liquid Glow Padfone S Desire 610
Victoria 5035VG One X
922 One M8
One M9
One Max
Google Lenovo LG Motorola Samsung
Nexus 7 (2012 c NXP PN65) Sisley S90 Optimus 3D Max Droid Razr Nexus I9250
VIBE Z2 Optimus G Droid Razr HD Note II
P780 Optimus G Pro Droid Razr Maxx HD SIII
Vibe Z2 Pro (K920) Optimus 4X HD Moto X SIII Neo
Optimus L5 SIII Core
Optimus L7 Core DUOS
Optimus LTE S5 G900F
Optimus Vu
Prada 3.0
Optimus Vu2
G3
G4
ZTE Megafon MTC Wileyfox
Grand S Mint 975 Swift 2
PF200 Swift 2 Plus
Grand X
Render
Kis
Sprint Flash

Будет ли поддерживать ваш смартфон технологию или нет — зависит от самого разработчика. Если у производителя смартфонов подписан договор с компанией NXP Semiconductors, значит, поддержка осуществляться будет. Если нет — то и приложение «Мой проездной» корректно работать на таких устройствах не будет.

Нюансы, о которых многие не знали!

Оплачивать проезд можно не только с банковской карты, но еще и со счета мобильного телефона. Это поддерживается у большой тройки операторов – Билайн, МТС и МегаФон. Но и здесь есть нюансы.

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

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

Полный список поддерживаемых устройств вы можете просмотреть на сайте МТС .

Как видите, есть два варианта оплаты проезда в Москве, и какой именно выбрать — зависит только от вас.

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

Преимущество технологии NFC в том, что она может быть заключена как в активном чипе, так и в пассивной метке. Для работы последней не требуется энергия, о регулярной подзарядке можно забыть. При этом NFC-метки имеют минимальные размеры, что позволяет им находиться даже в каком-нибудь брелке. По сути каждая такая метка представляет собой маленькую антенну толщиной с бумажный лист. Её диаметр сравним с 5-рублевой монетой. Обмен данными занимает 0,1 с. Для этого к метке нужно приложить смартфон так, чтобы воздушный промежуток не превышал 5 см. Точнее говоря, расстояние измеряется между чипом и меткой - первый обычно находится где-то в области аккумулятора устройства.

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

Также NFC-метки продаются в виде отдельных аксессуаров. Они могут класться на стол, либо подвешиваться к связке ключей. Такие метки используются для управления «умным домом». А ещё с их помощью можно заставить смартфон автоматически переходить в определенный режим работы. Например, метка может находиться на торпеде автомобиля. В таком случае прикосновение к ней смартфона включит Bluetooth, после чего водитель будет общаться со звонящими посредством беспроводной гарнитуры. И не обязательно должно быть запрограммировано лишь одно действие. Помимо Bluetooth, может включиться любимая радиостанция, а также запуститься GPS-навигатор. Словом, всё зависит от фантазии пользователя!

Где купить NFC-метки?

Если вас интересуют метки в виде наклеек, которые использовать проще всего, то для этого придется посетить AliExpress . Именно здесь их выбор больше всего. Например, вы можете приобрести набор из десяти разных наклеек Ntag213 - стоимость такого комплекта не превышает 220 рублей.

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

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

Рассмотренные выше варианты имеют специфические рисунки. Если же вы вознамерились запрограммировать какие-то необычные команды, то вам нужны стикеры без всяких домиков, самолетов и прочих изображений. Например, 6 разноцветных наклеек , продающиеся примерно за 83 рубля (без учета доставки) располагают лишь логотипом беспроводной технологии NFC. При использовании таких стикеров вы будете ориентироваться на их цвет и местоположение.

Существует и ещё более упрощенный вариант. Вы можете купить 10 меток без рисунков . Это будут упомянутые в самом начале статьи тоненькие антенны. Далее вы можете своими руками изготовить какое-либо изображение, нанеся его на антенну, превратив её в полноценную NFC-метку. Проще всего для этой цели использовать принтер и самоклеящуюся бумагу.

Но не всегда требуется метка в виде стикера. В некоторых случаях она должна быть выполнена в виде аксессуара, который крепился бы к связке с ключами. Тогда необходима покупка набора из брелков NTAG215 . Антенны в них заключены внутрь пластикового корпуса. К ключам брелок крепится при помощи металлического кольца. На корпус можно наклеить любое нужное вам изображение.

Как записать NFC-метку?

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

Записать то или иное действие, которое будет совершаться смартфоном после прикосновения к NFC-метке, помогает специальная программа. Подобные приложения легко находятся в Google Play. Мы рекомендуем установить на свой девайс NFC Tools и NFC Tasks . Их интерфейс выполнен на английском языке. Но для работы с этими программами вполне хватает даже базовых знаний языка. В крайнем случае, можно воспользоваться .

Работать, например, с NFC Tools очень просто. Достаточно перейти во вкладку «Tasks », после чего остается лишь выбрать задачу, которую будет выполнять смартфон при его поднесении к конкретной NFC-метке. И не забудьте затем прикоснуться к стикеру или брелку.

Аналогичным образом устроены практически все программы, служащие для связи с NFC-метками. Какие-то предлагают на выбор простые команды. Другие - более сложные и составные. Не забывайте, что не все они являются бесплатными. Однако и дорогими такие приложения не бывают.

Подведение итогов

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

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

НФС в телефонах Samsung — что это?

Представляет собой технология универсальное решение для обмена данными между устройствами. Фактически, Samsung NFC позиционирует как бесконтактная сеть малого радиуса, которая работает на расстоянии между мобильными устройствами в пределах 10 сантиметров. Что примечательно, несмотря на возможность на таком расстоянии работы с открытыми данными, сеть является максимально безопасной. Информация не может быть утрачена, равно как и данные не получаются сторонними лицами. Фактически, сеть Samsung NFC намного безопаснее и соответствует высоким стандартам защищенности, нежели чем аналогичная bluetooth, которая была актуальной на протяжении полутора десятилетий.

Все смартфоны Galaxy с бесконтактной технологией

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

  • Galaxy S8 – представляет собой флагманскую модель, которая работает непосредственно на операционной системе Андроид версии 7,0. Поддерживает одновременно работу двух сим-карт, несмотря на то, что в мобильном телефоне предусмотрен один модуль связи. Размер экрана устройства составляет 5,8 дюймов, разрешение в пределах 2960х1440 пикселей. Камера устройства имеет разрешение в 12 Мп, предусмотрен автофокус;
  • Galaxy A5 – устройство бюджетного сегмента, основной упор в котором сделан исключительно на разрешении камеры. Как и старшая модификация работает на операционной системе Андроид, версии 6 и выше (в зависимости от установленной на момент продажи). Поддерживает одновременную работу двух сим-карт, между которыми необходимо переключаться во время использования телефона. Экран имеет диагональ в пределах 5,2 дюйма, разрешение составляет 1920х1080 пикселей. Достоинством агрегата является его камера, обладающая разрешением в пределах 16 Мп, с предусмотренным для обеспечения наилучшего качества съемки автофокусом;
  • Galaxy S7 – технология активно использовалась производителем и ранее, что и вылилось в создание целой серии устройств, поддерживающих принципиально новый стандарт беспроводной передачи данных. Смартфоны работают на операционной системе Андроид, версии 7.0, предусматривают возможность подключения двух сим-карт. Экран мобильного телефона выполнен стандартным для его сегмента рынка, имеет диагональ в пределах 5,1 дюйм, разрешение составляет на уровне 2560х1440 пикселей. Можно выделить качественную камеру, разрешение которой составляет 12 Мп, дополнительно есть в наличии и опция автофокуса.

Galaxy S8 на Яндекс Маркете

Galaxy A5 на Яндекс Маркете

Galaxy S7 на Яндекс Маркете

Работает ли Android Pay на телефонах Самсунг

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

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

Отличие Samsung Pay от Android Pay

Что представляет собой технология Samsung Pay на мобильных телефонах производителя Самсунг? Компания не только постаралась использовать в работе принятый стандарт беспроводной связи NFC, но и сделала возможным использование не только с отдельными наименованиями терминалов, которые поддерживают возможность проведения бесконтактной оплаты совершенных покупок. В своем решении активно используется технология собственной разработки, принявшей название MST (что переводится, как «магнитная безопасная передача»).

Благодаря уникальным возможностям новой технологии, пользователь сожжет без проблем обеспечивать оплату сделанной им покупки практически на любо типе терминала, который предусматривает использование банковской карты в качестве платежного инструмента. Для этого потребуется иметь в распоряжении только устройство, совместимое с платежным сервисом Самсунга, которое поддерживает данную «магнитную» технологию. Посредством использования МСТ, обеспечивается создание магнитного поля, по своим критериям полностью идентичного тому, которое имеет сигнал магнитной полосы, исходящей от банковской карты. Как показывает практика, даже сами продавцы в магазинах не знают о подобной возможности мобильных устройств и удивляются тому, что это реально работает на практике.

Как пользоваться NFC на Samsung

Для пользователя нет ничего проще, нежели чем научиться пользоваться технологией NFC на Samsung. Чтобы обеспечить передачу данных, необходимо всего лишь активировать программный чип (при условии, если мобильный телефон имеет его в своей конструкции).

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