/**@class android.nfc.tech.NfcA @extends android.nfc.tech.BasicTagTechnology Provides access to NFC-A (ISO 14443-3A) properties and I/O operations on a {@link Tag}. <p>Acquire a {@link android.nfc.tech.NfcA} object using {@link #get}. <p>The primary NFC-A I/O operation is {@link #transceive}. Applications must implement their own protocol stack on top of {@link #transceive}. <p class="note"><strong>Note:</strong> Methods that perform I/O operations require the {@link android.Manifest.permission#NFC} permission. */ var NfcA = { /**@hide */ EXTRA_SAK : "sak", /**@hide */ EXTRA_ATQA : "atqa", /**Get an instance of {@link android.nfc.tech.NfcA} for the given tag. <p>Returns null if {@link android.nfc.tech.NfcA} was not enumerated in {@link Tag#getTechList}. This indicates the tag does not support NFC-A. <p>Does not cause any RF activity and does not block. @param {Object {Tag}} tag an NFC-A compatible tag @return {Object {android.nfc.tech.NfcA}} NFC-A object */ get : function( ) {}, /**Return the ATQA/SENS_RES bytes from tag discovery. <p>Does not cause any RF activity and does not block. @return {Number} ATQA/SENS_RES bytes */ getAtqa : function( ) {}, /**Return the SAK/SEL_RES bytes from tag discovery. <p>Does not cause any RF activity and does not block. @return {Number} SAK bytes */ getSak : function( ) {}, /**Send raw NFC-A commands to the tag and receive the response. <p>Applications must not append the EoD (CRC) to the payload, it will be automatically calculated. <p>Applications must only send commands that are complete bytes, for example a SENS_REQ is not possible (these are used to manage tag polling and initialization). <p>Use {@link #getMaxTransceiveLength} to retrieve the maximum number of bytes that can be sent with {@link #transceive}. <p>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 {@link IOException} if {@link #close} is called from another thread. <p class="note">Requires the {@link android.Manifest.permission#NFC} permission. @param {Object {byte[]}} data bytes to send @return {Number} bytes received in response @throws TagLostException if the tag leaves the field @throws IOException if there is an I/O failure, or this operation is canceled */ transceive : function( ) {}, /**Return the maximum number of bytes that can be sent with {@link #transceive}. @return {Number} the maximum number of bytes that can be sent with {@link #transceive}. */ getMaxTransceiveLength : function( ) {}, /**Set the {@link #transceive} timeout in milliseconds. <p>The timeout only applies to {@link #transceive} on this object, and is reset to a default value when {@link #close} is called. <p>Setting a longer timeout may be useful when performing transactions that require a long processing time on the tag such as key generation. <p class="note">Requires the {@link android.Manifest.permission#NFC} permission. @param {Number} timeout timeout value in milliseconds */ setTimeout : function( ) {}, /**Get the current {@link #transceive} timeout in milliseconds. <p class="note">Requires the {@link android.Manifest.permission#NFC} permission. @return {Number} timeout value in milliseconds */ getTimeout : function( ) {}, };