/// <summary> /// Create NDEF Message from a span of bytes /// </summary> /// <param name="message">the message in span of bytes</param> public NdefMessage(ReadOnlySpan <byte> message) { int idxMessage = 0; while (idxMessage < message.Length) { var ndefrec = new NdefRecord(message.Slice(idxMessage)); Records.Add(ndefrec); idxMessage += ndefrec.Length; } }
/// <summary> /// Check if it's a valid Text Record /// </summary> /// <param name="ndefRecord">The NDEF Record to check</param> /// <returns>True if it's a valid Text Record</returns> public static bool IsTextRecord(NdefRecord ndefRecord) { if ((ndefRecord.Header.TypeNameFormat != TypeNameFormat.NfcWellKnowType) || (ndefRecord.Header.PayloadTypeLength != 1)) { return(false); } if (ndefRecord.Header.PayloadType?[0] != 0x54) { return(false); } return(true); }
/// <summary> /// Check if it's a valid NDEF Geo Record /// </summary> /// <param name="ndefRecord">A valid NDEF Record</param> /// <returns></returns> public static bool IsGeoRecord(NdefRecord ndefRecord) { if (!IsUriRecord(ndefRecord)) { return(false); } var uri = new UriRecord(ndefRecord); if (!uri.Uri.ToLower().StartsWith("geo:")) { return(false); } return(true); }
/// <summary> /// Check if it's a valid Media Record /// </summary> /// <param name="ndefRecord">A valid NDEF Record</param> /// <returns></returns> public static bool IsMediaRecord(NdefRecord ndefRecord) => ndefRecord.Header.TypeNameFormat == TypeNameFormat.MediaType;
/// <summary> /// Create a Media Record from a NDEF Record /// </summary> /// <param name="ndefRecord">A valid NDEF Record</param> public MediaRecord(NdefRecord ndefRecord) { Header = ndefRecord.Header; Payload = ndefRecord.Payload; }
/// <summary> /// Create a Text Record from a NDEF Record /// </summary> /// <param name="ndefRecord">A valid NDEF Record</param> public TextRecord(NdefRecord ndefRecord) { Header = ndefRecord.Header; Payload = ndefRecord.Payload; ExtractAll(); }
/// <summary> /// Create a Geo Record from a NDEF record /// </summary> /// <param name="ndefRecord">The NDEF record to create the Geo Record</param> public GeoRecord(NdefRecord ndefRecord) : base(ndefRecord) { ExtractAll(); }