Я знаю, что функция NFC в целом работает в моем приложении, потому что я возможность записывать URL-адреса, текст, а также устанавливать и отключать защиту паролем. Я пробовал следующее. Я получаю тег и две строки (ssid и пароль) в своей активности Main.java. Я разрабатывал новый класс под названием NFCUtils.java, который делает следующее:
Код: Выделить всё
public class NFCUtils{
public static void writeWifiConfigToTag(Tag tag, String ssid, String password) {
NdefRecord ssidRecord = createTextRecord(ssid, Locale.getDefault(), true);
NdefRecord passwordRecord = createTextRecord(password, Locale.getDefault(), true);
NdefMessage wifiMessage = new NdefMessage(NdefRecord.createMime("application/vnd.wfa.wsc",
ssid.getBytes(StandardCharsets.US_ASCII)),
ssidRecord,
passwordRecord);
// Write the NdefMessage to the tag
Ndef ndef = Ndef.get(tag);
try {
ndef.connect();
ndef.writeNdefMessage(wifiMessage);
ndef.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private static NdefRecord createTextRecord(String payload, Locale locale, boolean encodeInUtf8) {
byte[] langBytes = locale.getLanguage().getBytes(StandardCharsets.US_ASCII);
Charset utfEncoding = encodeInUtf8 ? StandardCharsets.UTF_8 : StandardCharsets.UTF_16;
byte[] textBytes = payload.getBytes(utfEncoding);
int utfBit = encodeInUtf8 ? 0 : (1
Подробнее здесь: [url]https://stackoverflow.com/questions/78355973/how-can-i-set-wifi-configuration-into-an-nfc-tag-so-that-when-tapped-it-automat[/url]
Мобильная версия