public TextRecord Parse(NdefRecord record) { Preconditions.CheckArgument(record.Tnf == NdefRecord.TnfWellKnown); var typeInfo = record.GetTypeInfo(); if (record.GetTypeInfo()[0] != NdefRecord.RtdText[0]) { throw new Exception(); } //Preconditions.CheckArgument(Arrays.Equals(record.GetTypeInfo()[0], NdefRecord.RtdText[0])); // Preconditions.CheckArgument(Array.Equals(record.GetType(), NdefRecord.RtdText)); var payload = record.GetPayload(); string textEncoding = (payload[0] & 0200) == 0 ? "UTF-8" : "UTF-16"; int languageCodeLength = payload[0] & 0077; Encoding enc = Encoding.GetEncoding("US-ASCII"); Encoding encText = Encoding.GetEncoding(textEncoding); string languageCode = enc.GetString(payload, 0, languageCodeLength); string text = encText.GetString(payload, languageCodeLength + 1, payload.Length - languageCodeLength - 1); return(new TextRecord(text)); /* * String textEncoding = ((payload[0] & 0200) == 0) ? "UTF-8" : "UTF-16"; * int languageCodeLength = payload[0] & 0077; * String languageCode = new String(payload, 1, languageCodeLength, "US-ASCII"); * String text = * new String(payload, languageCodeLength + 1, * payload.length - languageCodeLength - 1, textEncoding); * return new TextRecord(languageCode, text); */ }
public void ReadFromTag(Tag tag, Intent intent) { var messages = intent.GetParcelableArrayExtra(NfcAdapter.ExtraNdefMessages); Ndef ndef = Ndef.Get(tag); try { ndef.Connect(); NdefMessage[] ndefMessages = new NdefMessage[messages.Length]; for (int i = 0; i < messages.Length; i++) { ndefMessages[i] = (NdefMessage)messages[i]; } NdefRecord record = ndefMessages[0].GetRecords()[0]; byte[] payload = record.GetPayload(); var msg = System.Text.Encoding.UTF8.GetString(payload); msg = msg.Remove(0, 3); EditText AccNoetxt = FindViewById <EditText>(Resource.Id.AccNoetxt); AccNoetxt.Text = msg; PublicVariables.AccountNo = msg; ndef.Close(); } catch (Exception e) { Toast.MakeText(this, "Message: " + e.Message, ToastLength.Long).Show(); } }
private UriRecord ParseWellKnown(NdefRecord record) { //Preconditions.CheckArgument(Arrays.Equals(record.GetTypeInfo(), NdefRecord.RtdUri)); if (record.GetTypeInfo()[0] != NdefRecord.RtdUri[0]) { throw new Exception(); } // Preconditions.checkArgument(Arrays.equals(record.getType(), NdefRecord.RTD_URI)); // byte[] payload = record.getPayload(); /// * // * payload[0] contains the URI Identifier Code, per the // * NFC Forum "URI Record Type Definition" section 3.2.2. // * // * payload[1]...payload[payload.length - 1] contains the rest of // * the URI. // */ // String prefix = URI_PREFIX_MAP.get(payload[0]); // byte[] fullUri = // Bytes.concat(prefix.getBytes(Charset.forName("UTF-8")), Arrays.copyOfRange(payload, 1, // payload.length)); // Uri uri = Uri.parse(new String(fullUri, Charset.forName("UTF-8"))); // return new UriRecord(uri); var payload = record.GetPayload(); string prefix = Utility.UriMap(payload[0]); Encoding enc = Encoding.GetEncoding("UTF-8"); string text = enc.GetString(payload, 1, payload.Length - 1); return(new UriRecord(prefix + text)); }
private string ParseUriRecord(NdefRecord ndefRecord) { byte[] payload = ndefRecord.GetPayload(); // Get the Language Code int languageCodeLength = payload[0] & 0063; return(new String(System.Text.UTF8Encoding.ASCII.GetChars(payload), languageCodeLength + 1, payload.Length - languageCodeLength - 1)); }
/// <summary> /// /// </summary> /// <param name="ndefRecord"></param> /// <returns></returns> private string ParseNdefRecord(NdefRecord ndefRecord) { byte[] payload = ndefRecord.GetPayload(); // Get the Language Code int languageCodeLength = payload[0] & 0063; char[] payloadChars = UTF8Encoding.ASCII.GetChars(payload); var payloadValue = new String(payloadChars, languageCodeLength + 1, payload.Length - languageCodeLength - 1); return(payloadValue); }
private UriRecord ParseAbsolute(NdefRecord record) { /* * byte[] payload = record.getPayload(); * Uri uri = Uri.parse(new String(payload, Charset.forName("UTF-8"))); * return new UriRecord(uri); */ var payload = record.GetPayload(); Encoding enc = Encoding.GetEncoding("UTF-8"); string text = enc.GetString(payload); return(new UriRecord(text)); }
internal SmartPoster Parse(NdefRecord record) { /* * * Preconditions.checkArgument(record.getTnf() == NdefRecord.TNF_WELL_KNOWN); * Preconditions.checkArgument(Arrays.equals(record.getType(), NdefRecord.RTD_SMART_POSTER)); * try { * NdefMessage subRecords = new NdefMessage(record.getPayload()); * return parse(subRecords.getRecords()); * } catch (FormatException e) { * throw new IllegalArgumentException(e); * } */ Preconditions.CheckArgument(record.Tnf == NdefRecord.TnfWellKnown); //Preconditions.CheckArgument(Arrays.Equals(record.GetTypeInfo(), NdefRecord.RtdSmartPoster)); if (record.GetTypeInfo()[0] != NdefRecord.RtdSmartPoster[0]) { throw new Exception(); } NdefMessage subRecords = new NdefMessage(record.GetPayload()); return(Parse(subRecords.GetRecords())); }
protected override void OnNewIntent(Intent intent) { base.OnNewIntent(intent); if (_nfc_avaible && _do_scanning && intent.Action == NfcAdapter.ActionTagDiscovered) { Tag tag = intent.GetParcelableExtra(NfcAdapter.ExtraTag) as Tag; if (tag != null) { IParcelable[] raw_data = intent.GetParcelableArrayExtra(NfcAdapter.ExtraNdefMessages); if (raw_data != null) { NdefRecord record = (raw_data[0] as NdefMessage).GetRecords()[0]; if (record != null) { TagScanner._on_result(record.GetPayload()); _do_scanning = false; return; } } } } TagScanner._on_result(null); }
private string ReadText(NdefRecord record) { return(Encoding.UTF8.GetString(record.GetPayload())); }
public AndroidNdefRecord(NdefRecord nativeRecord) { TypeNameFormat = GetTypeNameFormat(nativeRecord.Tnf); Payload = nativeRecord.GetPayload(); }