Доля WiFi учетные данные через NFC тег без специальных приложений

Я ищу способ создать NFC-тег, который разделяет учетные данные wifi моей сети без моих гостей, имеющих какие-либо специальные приложения NFC на своем телефоне (кроме того, что приходит с телефоном). Я смотрел на приложения и услуги, такие как NFC Tag Writer, WifiTap, NFC Task Launcher и NFCLabels.com, но мне кажется, что мне нужно было бы иметь приложения на гостевой мобильный телефон, а также иметь возможность использовать его, но я не могу проверить его, поскольку у меня есть только один телефон с поддержкой NFC доступный. (Да, я знаю, выкручивать мозги напрасно, но, черт возьми, странное поведение-это не ново...)

мой ближайший ключ является то, что государства WifiTap что:

приложение обрабатывает URIs в формате wifi: / / [network ssid] / [wep|wpa / open] / [сетевой ключ]

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

5 ответов


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

один из способов сделать это-создать (или найти) приложение в Google Play Store, которое имеет следующие свойства:

  1. фильтр намерений для ACTION_NDEF_DISCOVERED и как URI URL-адрес приложения в Play Маркете.
  2. фильтр намерений для ACTION_NDEF_DISCOVERED и как тип некоторого проприетарного типа (например, тип MIME)

затем вы можете создать теги с сообщением NDEF, содержащим следующие записи NDEF:

  1. запись SmartPoster с URI Play Store и некоторым описательным текстом (например, имя приложения)
  2. запись проприетарного типа, содержащая WiFi верительные грамоты
  3. Запись Приложения Для Android приложения

3-я запись будет убедиться, что правильное приложение всегда будет запущен или пользователь устройства будет перенаправлен в Play Store, чтобы установить его. Это работает только на ICS, однако, но 1-я запись (в сочетании с 1-м фильтром намерения) служит той же цели на прянике.


Как написал Алекс в комментарии, теперь вы можете (начиная с Lollipop) написать тег, содержащий учетные данные Wi-Fi непосредственно из настроек Android Wi-Fi: long-tap a network → запись в NFC tag.

похоже, это тег в формате NDEF с application/vnd.wfa.wsc тип MIME и токен" WPS NFC".

соответствующий исходный код можно найти в platform/packages/apps/Settings/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java.


Я создал app который на самом деле пишет сети для тегов стандартизированным способом - проблема в том, что Android в настоящее время не распознает записи передачи обслуживания и автоматически добавляет их. И, возможно, все в порядке - в конце концов, добавление сети-это больше, чем просто добавление сети; вы можете, например, проверить составитель содержимого тега и так далее.

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


У меня может быть неправильный конец палки, но с помощью приложения NFC tools, загруженного из play store, вы можете написать сеть wifi на тег, который при сканировании с defult android 5.0.2. На nexus 7 2013 открывается окно сообщения с запросом подтверждения соединения wifi, хотя это всегда не удалось bar o


URI формы WIFI:T:WPA;S:SSID;P: парольная фраза;; установит WiFi, если он закодирован в QR-код и отсканирован; но когда закодирован в тег NFC, он не распознается как URI. Это говорит мне о том, что API NFC не хватает в Android.