Делитесь учетными данными Wifi через тег NFC без специальных приложений
Я ищу способ создания тега NFC, который разделяет учетные данные wifi моей сети, без того, чтобы мои гости не имели каких-либо специальных приложений NFC на своем телефоне (кроме тех, что поступают с телефоном).
Я рассматривал приложения и службы, такие как NFC Tag Writer, WifiTap, NFC Task Launcher и NFCLabels.com, но мне кажется, что мне нужно будет иметь приложения на гостевом мобильном телефоне, чтобы иметь возможность использовать его, но я не могу проверить его, поскольку у меня есть только один доступный для NFC телефон. (Да, я знаю, закручиваю свои мозги ни за что, но черт, странное поведение ничего нового...)
Моя ближайшая подсказка заключается в том, что WifiTap утверждает, что:
Приложение обрабатывает URI в формате wifi://[network ssid]/[wep | wpa | open]/[сетевой ключ]
Если это действительно универсально, это будет означать, что я мог бы делать то, что хочу, но я не нашел подтверждения. Итак, как я мог сделать то, что хочу, и правильно ли я нахожусь на верном пути с помощью WifiTap?
Ответы
Ответ 1
Существует официальный стандарт для такого рода ситуаций: Техническая спецификация передачи соединений NFC Forum. Однако в настоящее время это не поддерживается Android. Я не думаю, что в настоящее время существует какой-либо способ переноса учетных данных WiFi с помощью NFC без помощи специального приложения.
Один из способов сделать это - создать (или найти) приложение в Google Play Store, имеющее следующие свойства:
- Фильтр Intent для ACTION_NDEF_DISCOVERED и как URI URL-адрес приложения в Play Маркете.
- Фильтр Intent для ACTION_NDEF_DISCOVERED и как тип некоторого запатентованного типа (например, тип MIME)
Затем вы можете создавать теги с сообщением NDEF, содержащим следующие записи NDEF:
- Запись SmartPoster с URI Play Store и некоторый описательный текст (например, название приложения)
- Запись проприетарного типа, содержащего учетные данные Wi-Fi
- Запись приложения Android для приложения
В третьей записи убедитесь, что соответствующее приложение всегда будет запущено, или пользователь устройства будет перенаправлен в Play Store для его установки. Однако это работает только на ICS, но первая запись (в сочетании с фильтром 1-го намерения) служит для Gingerbread той же цели.
Ответ 2
Как написал Алекс в комментарии, вы можете теперь (начиная с Lollipop) записать тег, содержащий учетные данные Wi-Fi, непосредственно из настроек Android Wi-Fi: долгое нажатие на сеть → Write to NFC tag.
Кажется, что это тег в формате NDEF с типом application/vnd.wfa.wsc
MIME и маркером WPS NFC.
Соответствующий исходный код можно найти в platform/packages/apps/Settings/src/com/android/settings/wifi/WriteWifiConfigToNfcDialog.java
.
Ответ 3
Я создал app, который фактически пишет сети для стандартного тэга - проблема в том, что Android в настоящее время не распознает записи передачи и автоматически добавлять их. И, может быть, все в порядке - в конце концов, есть больше для добавления сети, чем просто добавления сети; вы можете, например, проверить композитор содержимого тега и т.д.
Кроме того, если вы хотите записать несколько тегов в одну сеть, просто не хватит места, чтобы сделать это справа (используя стандартизованные записи).
Ответ 4
У меня может быть неправильный конец палки, но с помощью приложений nfc, загруженных из магазина воспроизведения, вы можете написать сеть Wi-Fi на тег, который при сканировании с defult android 5.0.2. На схеме 7 2013 открывается окно с запросом подтверждения о соединении Wi-Fi, хотя это всегда было неудачно. O
Ответ 5
URI формы WIFI: T: WPA; S: SSID; P: PASSPHRASE;; будет устанавливать Wi-Fi, если кодируется QR-кодом и сканируется; но при кодировании в тег NFC он не распознается как URI. Это говорит мне о том, что API NFC недостаточно для Android.