NfcF
class NfcF : TagTechnology
| kotlin.Any | |
| ↳ | android.nfc.tech.NfcF | 
Provides access to NFC-F (JIS 6319-4) properties and I/O operations on a Tag. 
Acquire a NfcF object using get. 
The primary NFC-F I/O operation is transceive. Applications must implement their own protocol stack on top of transceive. 
Note: Methods that perform I/O operations require the android.Manifest.permission#NFC permission.
Summary
| Public methods | |
|---|---|
| Unit | close() | 
| Unit | connect() | 
| static NfcF! | Get an instance of  | 
| ByteArray! | Return the Manufacturer bytes from tag discovery. | 
| Int | Return the maximum number of bytes that can be sent with  | 
| ByteArray! | Return the System Code bytes from tag discovery. | 
| Tag! | getTag() | 
| Int | Get the current  | 
| Boolean | |
| Unit | setTimeout(timeout: Int)Set the  | 
| ByteArray! | transceive(data: ByteArray!)Send raw NFC-F commands to the tag and receive the response. | 
Public methods
close
fun close(): Unit
| 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
fun connect(): Unit
| Exceptions | |
|---|---|
| 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
static fun get(tag: Tag!): NfcF!
Get an instance of NfcF for the given tag. 
Returns null if NfcF was not enumerated in Tag.getTechList. This indicates the tag does not support NFC-F. 
Does not cause any RF activity and does not block.
| Parameters | |
|---|---|
| tag | Tag!: an NFC-F compatible tag | 
| Return | |
|---|---|
| NfcF! | NFC-F object | 
getManufacturer
fun getManufacturer(): ByteArray!
Return the Manufacturer bytes from tag discovery.
Does not cause any RF activity and does not block.
| Return | |
|---|---|
| ByteArray! | Manufacturer bytes | 
getMaxTransceiveLength
fun getMaxTransceiveLength(): Int
Return the maximum number of bytes that can be sent with transceive.
| Return | |
|---|---|
| Int | the maximum number of bytes that can be sent with transceive. | 
getSystemCode
fun getSystemCode(): ByteArray!
Return the System Code bytes from tag discovery.
Does not cause any RF activity and does not block.
| Return | |
|---|---|
| ByteArray! | System Code bytes | 
getTag
fun getTag(): Tag!
| Return | |
|---|---|
| Tag! | the Tagbacking thisTagTechnologyobject. | 
getTimeout
fun getTimeout(): Int
Get the current transceive timeout in milliseconds. 
Requires the android.Manifest.permission#NFC permission.
| Return | |
|---|---|
| Int | timeout value in milliseconds | 
| Exceptions | |
|---|---|
| java.lang.SecurityException | if the tag object is reused after the tag has left the field | 
isConnected
fun isConnected(): Boolean
| Return | |
|---|---|
| Boolean | true if I/O operations should be possible | 
setTimeout
fun setTimeout(timeout: Int): Unit
Set the transceive timeout in milliseconds. 
The timeout only applies to transceive on this object, and is reset to a default value when #close is called. 
Setting a longer timeout may be useful when performing transactions that require a long processing time on the tag such as key generation.
Requires the android.Manifest.permission#NFC permission.
| Parameters | |
|---|---|
| timeout | Int: timeout value in milliseconds | 
| Exceptions | |
|---|---|
| java.lang.SecurityException | if the tag object is reused after the tag has left the field | 
transceive
fun transceive(data: ByteArray!): ByteArray!
Send raw NFC-F commands to the tag and receive the response.
Applications must not prefix the SoD (preamble and sync code) and/or append the EoD (CRC) to the payload, it will be automatically calculated.
A typical NFC-F frame for this method looks like:
LENGTH (1 byte) --- CMD (1 byte) -- IDm (8 bytes) -- PARAMS (LENGTH - 10 bytes)
Use getMaxTransceiveLength to retrieve the maximum amount of bytes that can be sent with transceive. 
This is an I/O operation and will block until complete. It must not be called from the main application thread. A blocked call will be canceled with IOException if #close is called from another thread. 
Requires the android.Manifest.permission#NFC permission.
| Parameters | |
|---|---|
| data | ByteArray!: bytes to send | 
| Return | |
|---|---|
| ByteArray! | bytes received in response | 
| Exceptions | |
|---|---|
| TagLostException | if the tag leaves the field | 
| java.io.IOException | if there is an I/O failure, or this operation is canceled | 
