Added in API level 17

NfcBarcode


class NfcBarcode : TagTechnology
kotlin.Any
   ↳ android.nfc.tech.NfcBarcode

Provides access to tags containing just a barcode.

Acquire an NfcBarcode object using get.

Summary

Constants
static Int

Kovio Tags

static Int

Public methods
Unit

Disable I/O operations to the tag from this TagTechnology object, and release resources.

Unit

Enable I/O operations to the tag from this TagTechnology object.

static NfcBarcode!
get(tag: Tag!)

Get an instance of NfcBarcode for the given tag.

ByteArray!

Returns the barcode of an NfcBarcode tag.

Tag!

Get the Tag object backing this TagTechnology object.

Int

Returns the NFC Barcode tag type.

Boolean

Helper to indicate if I/O operations should be possible.

Constants

TYPE_KOVIO

Added in API level 17
static val TYPE_KOVIO: Int

Kovio Tags

Value: 1

TYPE_UNKNOWN

Added in API level 17
static val TYPE_UNKNOWN: Int
Value: -1

Public methods

close

Added in API level 17
fun close(): Unit

Disable I/O operations to the tag from this TagTechnology object, and release resources.

Also causes all blocked I/O operations on other thread to be canceled and return with IOException.

Requires the android.Manifest.permission#NFC permission.

Exceptions
java.lang.Exception if this resource cannot be closed
java.io.IOException if an I/O error occurs
java.lang.SecurityException if the tag object is reused after the tag has left the field

connect

Added in API level 17
fun connect(): Unit

Enable I/O operations to the tag from this TagTechnology object.

May cause RF activity and may block. Must not be called from the main application thread. A blocked call will be canceled with IOException by calling #close from another thread.

Only one TagTechnology object can be connected to a Tag at a time.

Applications must call #close when I/O operations are complete.

Requires the android.Manifest.permission#NFC permission.

Exceptions
android.nfc.TagLostException if the tag leaves the field
java.io.IOException if there is an I/O failure, or connect is canceled
java.lang.SecurityException if the tag object is reused after the tag has left the field

get

Added in API level 17
static fun get(tag: Tag!): NfcBarcode!

Get an instance of NfcBarcode for the given tag.

Returns null if NfcBarcode was not enumerated in Tag.getTechList.

Does not cause any RF activity and does not block.

Parameters
tag Tag!: an NfcBarcode compatible tag
Return
NfcBarcode! NfcBarcode object

getBarcode

Added in API level 17
fun getBarcode(): ByteArray!

Returns the barcode of an NfcBarcode tag.

Tags of TYPE_KOVIO return 16 bytes:

    The first byte is 0x80 ORd with a manufacturer ID, corresponding to ISO/IEC 7816-6.

    The second byte describes the payload data format. Defined data format types include the following:

    • 0x00: Reserved for manufacturer assignment
    • 0x01: 96-bit URL with "http://www." prefix
    • 0x02: 96-bit URL with "https://www." prefix
    • 0x03: 96-bit URL with "http://" prefix
    • 0x04: 96-bit URL with "https://" prefix
    • 0x05: 96-bit GS1 EPC
    • 0x06-0xFF: reserved

    The following 12 bytes are payload:

    The last 2 bytes comprise the CRC.

Does not cause any RF activity and does not block.

Return
ByteArray! a byte array containing the barcode

See Also

    getTag

    Added in API level 17
    fun getTag(): Tag!

    Get the Tag object backing this TagTechnology object.

    Return
    Tag! the Tag backing this TagTechnology object.

    getType

    Added in API level 17
    fun getType(): Int

    Returns the NFC Barcode tag type.

    Currently only one of TYPE_KOVIO or TYPE_UNKNOWN.

    Does not cause any RF activity and does not block.

    Return
    Int the NFC Barcode tag type

    isConnected

    Added in API level 17
    fun isConnected(): Boolean

    Helper to indicate if I/O operations should be possible.

    Returns true if connect has completed, and #close has not been called, and the Tag is not known to be out of range.

    Does not cause RF activity, and does not block.

    Return
    Boolean true if I/O operations should be possible