Доля 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, которое имеет следующие свойства:
- фильтр намерений для ACTION_NDEF_DISCOVERED и как URI URL-адрес приложения в Play Маркете.
- фильтр намерений для ACTION_NDEF_DISCOVERED и как тип некоторого проприетарного типа (например, тип MIME)
затем вы можете создать теги с сообщением NDEF, содержащим следующие записи NDEF:
- запись SmartPoster с URI Play Store и некоторым описательным текстом (например, имя приложения)
- запись проприетарного типа, содержащая WiFi верительные грамоты
- Запись Приложения Для 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.