+ * Validation is performed to make sure the Record format headers are valid,
+ * and the ID + TYPE + PAYLOAD fields are of the correct size.
+ *
+ * @hide
+ */
+ public NdefMessage(byte[] data) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Create an NDEF message from NDEF records.
+ */
+ public NdefMessage(NdefRecord[] records) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Get the NDEF records inside this NDEF message.
+ *
+ * @return array of zero or more NDEF records.
+ */
+ public NdefRecord[] getRecords() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Get a byte array representation of this NDEF message.
+ *
+ * @return byte array
+ * @hide
+ */
+ public byte[] toByteArray() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ throw new UnsupportedOperationException();
+ }
+
+ public static final Parcelable.Creator
+ * Immutable data class. An NDEF record always contains
+ *
+ * This class represents a logical (unchunked) NDEF record. The underlying
+ * representation may be chunked across several NDEF records when the payload is
+ * large.
+ */
+public class NdefRecord implements Parcelable {
+ /**
+ * Indicates no type, id, or payload is associated with this NDEF Record.
+ *
+ * Type, id and payload fields must all be empty to be a valid TNF_EMPTY
+ * record.
+ */
+ public static final short TNF_EMPTY = 0x00;
+
+ /**
+ * Indicates the type field uses the RTD type name format.
+ *
+ * Use this TNF with RTD types such as RTD_TEXT, RTD_URI.
+ */
+ public static final short TNF_WELL_KNOWN = 0x01;
+
+ /**
+ * Indicates the type field contains a value that follows the media-type BNF
+ * construct defined by RFC 2046.
+ */
+ public static final short TNF_MIME_MEDIA = 0x02;
+
+ /**
+ * Indicates the type field contains a value that follows the absolute-URI
+ * BNF construct defined by RFC 3986.
+ */
+ public static final short TNF_ABSOLUTE_URI = 0x03;
+
+ /**
+ * Indicates the type field contains a value that follows the RTD external
+ * name specification.
+ *
+ * Note this TNF should not be used with RTD_TEXT or RTD_URI constants.
+ * Those are well known RTD constants, not external RTD constants.
+ */
+ public static final short TNF_EXTERNAL_TYPE = 0x04;
+
+ /**
+ * Indicates the payload type is unknown.
+ *
+ * This is similar to the "application/octet-stream" MIME type. The payload
+ * type is not explicitly encoded within the NDEF Message.
+ *
+ * The type field must be empty to be a valid TNF_UNKNOWN record.
+ */
+ public static final short TNF_UNKNOWN = 0x05;
+
+ /**
+ * Indicates the payload is an intermediate or final chunk of a chunked
+ * NDEF Record.
+ *
+ * The payload type is specified in the first chunk, and subsequent chunks
+ * must use TNF_UNCHANGED with an empty type field. TNF_UNCHANGED must not
+ * be used in any other situation.
+ */
+ public static final short TNF_UNCHANGED = 0x06;
+
+ /**
+ * Reserved TNF type.
+ *
+ * The NFC Forum NDEF Specification v1.0 suggests for NDEF parsers to treat this
+ * value like TNF_UNKNOWN.
+ * @hide
+ */
+ public static final short TNF_RESERVED = 0x07;
+
+ /**
+ * RTD Text type. For use with TNF_WELL_KNOWN.
+ */
+ public static final byte[] RTD_TEXT = {0x54}; // "T"
+
+ /**
+ * RTD URI type. For use with TNF_WELL_KNOWN.
+ */
+ public static final byte[] RTD_URI = {0x55}; // "U"
+
+ /**
+ * RTD Smart Poster type. For use with TNF_WELL_KNOWN.
+ */
+ public static final byte[] RTD_SMART_POSTER = {0x53, 0x70}; // "Sp"
+
+ /**
+ * RTD Alternative Carrier type. For use with TNF_WELL_KNOWN.
+ */
+ public static final byte[] RTD_ALTERNATIVE_CARRIER = {0x61, 0x63}; // "ac"
+
+ /**
+ * RTD Handover Carrier type. For use with TNF_WELL_KNOWN.
+ */
+ public static final byte[] RTD_HANDOVER_CARRIER = {0x48, 0x63}; // "Hc"
+
+ /**
+ * RTD Handover Request type. For use with TNF_WELL_KNOWN.
+ */
+ public static final byte[] RTD_HANDOVER_REQUEST = {0x48, 0x72}; // "Hr"
+
+ /**
+ * RTD Handover Select type. For use with TNF_WELL_KNOWN.
+ */
+ public static final byte[] RTD_HANDOVER_SELECT = {0x48, 0x73}; // "Hs"
+
+ /**
+ * Construct an NDEF Record.
+ *
+ * Applications should not attempt to manually chunk NDEF Records - the
+ * implementation of android.nfc will automatically chunk an NDEF Record
+ * when necessary (and only present a single logical NDEF Record to the
+ * application). So applications should not use TNF_UNCHANGED.
+ *
+ * @param tnf a 3-bit TNF constant
+ * @param type byte array, containing zero to 255 bytes, must not be null
+ * @param id byte array, containing zero to 255 bytes, must not be null
+ * @param payload byte array, containing zero to (2 ** 32 - 1) bytes,
+ * must not be null
+ */
+ public NdefRecord(short tnf, byte[] type, byte[] id, byte[] payload) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Construct an NDEF Record from raw bytes.
+ *
+ * Validation is performed to make sure the header is valid, and that
+ * the id, type and payload sizes appear to be valid.
+ *
+ * @throws FormatException if the data is not a valid NDEF record
+ */
+ public NdefRecord(byte[] data) {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Returns the 3-bit TNF.
+ *
+ * TNF is the top-level type.
+ */
+ public short getTnf() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Returns the variable length Type field.
+ *
+ * This should be used in conjunction with the TNF field to determine the
+ * payload format.
+ */
+ public byte[] getType() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Returns the variable length ID.
+ */
+ public byte[] getId() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Returns the variable length payload.
+ */
+ public byte[] getPayload() {
+ throw new UnsupportedOperationException();
+ }
+
+ /**
+ * Return this NDEF Record as a byte array.
+ * @hide
+ */
+ public byte[] toByteArray() {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ throw new UnsupportedOperationException();
+ }
+
+ public static final Parcelable.Creator
+ *
+ * The TNF (Type Name Format) field indicates how to interpret the type field.
+ *