- From: François Beaufort via GitHub <sysbot+gh@w3.org>
- Date: Tue, 08 Dec 2020 10:58:12 +0000
- To: public-web-nfc@w3.org
Implementation is good. See https://source.chromium.org/chromium/chromium/src/+/master:services/device/nfc/android/java/src/org/chromium/device/nfc/NdefMessageUtils.java;drc=bf799475f9ff40b7e1e2be2fd3a68911c4f047ee;bpv=1;bpt=1;l=271 ```java private static NdefRecord createTextRecord(byte[] text) throws UnsupportedEncodingException { // Check that text byte array is not empty. if (text.length == 0) { return null; } NdefRecord nfcRecord = new NdefRecord(); nfcRecord.category = NdefRecordTypeCategory.STANDARDIZED; nfcRecord.recordType = RECORD_TYPE_TEXT; // According to NFCForum-TS-RTD_Text_1.0 specification, section 3.2.1 Syntax. // First byte of the payload is status byte, defined in Table 3: Status Byte Encodings. // 0-5: lang code length // 6 : must be zero // 7 : 0 - text is in UTF-8 encoding, 1 - text is in UTF-16 encoding. nfcRecord.encoding = (text[0] & (1 << 7)) == 0 ? ENCODING_UTF8 : ENCODING_UTF16; int langCodeLength = (text[0] & (byte) 0x3F); nfcRecord.lang = new String(text, 1, langCodeLength, "US-ASCII"); int textBodyStartPos = langCodeLength + 1; if (textBodyStartPos > text.length) { return null; } nfcRecord.data = Arrays.copyOfRange(text, textBodyStartPos, text.length); return nfcRecord; } ``` -- GitHub Notification of comment by beaufortfrancois Please view or discuss this issue at https://github.com/w3c/web-nfc/issues/566#issuecomment-740548497 using your GitHub account -- Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 8 December 2020 10:58:14 UTC