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 Tag backing this TagTechnology object. | 
          
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 |