Interface NFCISO7816Tag

  • All Superinterfaces:
    NFCNDEFTag, NFCTag, NSCoding, NSCopying, NSSecureCoding

    public interface NFCISO7816Tag
    extends NFCTag, NFCNDEFTag
    [@protocol] NFCISO7816Tag A @link NFCTagReaderSession @link/ reader session returns an instance conforming to this protocol when an ISO7816 compatible tag is detected. Unless it is specified all block completion handlers are dispatched on the session work queue that is associated with the tag. Your process requires to include the "com.apple.developer.nfc.readersession.formats" entitlement and the "com.apple.developer.nfc.readersession.iso7816.select-identifiers" key in the application's Info.plist to receive this tag object from the @link NFCTagReaderSessionDelegate @link/ delegate. [@link] NFCReaderErrorSecurityViolation @link/ will be returned from the @link NFCTagReaderSessionDelegate @link/ invalidation method if the required entitlement is missing or "com.apple.developer.nfc.readersession.iso7816.select-identifiers" does not contain at least one valid entry. When the reader discovered a compatible ISO7816 tag it automatically performs a SELECT command (by DF name) using the values provided in "com.apple.developer.nfc.readersession.iso7816.select-identifiers" in the specified array order. The tag is returned from the [NFCTagReaderSessionDelegate readerSession:didDetectTags:] call on the first successful SELECT command. The initialSelectedAID property returns the application identifier of the selected application. Tag will not be returned to the NFCTagReaderSessionDelegate if no application described in "com.apple.developer.nfc.readersession.iso7816.select-identifiers" is found. Tag must be in the connected state for NFCNDEFTag protocol properties and methods to work correctly.
    • Method Detail

      • applicationData

        NSData applicationData()
        The optional Application Data bytes extracted from the Type B Answer To Request response.
      • historicalBytes

        NSData historicalBytes()
        The optional historical bytes extracted from the Type A Answer To Select response.
      • identifier

        NSData identifier()
        The hardware UID of the tag.
      • initialSelectedAID

        java.lang.String initialSelectedAID()
        [@property] initialSelectedAID The Hex string of the application identifier (DF name) selected by the reader when the tag is discovered. This will match one of the entries in the "com.apple.developer.nfc.readersession.iso7816.select-identifiers" in the Info.plist.
      • proprietaryApplicationDataCoding

        boolean proprietaryApplicationDataCoding()
        Indicates if @link applicationData @link/ follows proprietary data coding. If false, the format of the application data is defined in the ISO14443-3 specification.
      • sendCommandAPDUCompletionHandler

        void sendCommandAPDUCompletionHandler​(NFCISO7816APDU apdu,
                                              NFCISO7816Tag.Block_sendCommandAPDUCompletionHandler completionHandler)
        sendCommandAPDU:completionHandler: Send a command APDU to the tag and receives a response APDU. Note that a SELECT command with a P1 value of 0x04 (seelction by DF name) will be checked against the values listed in the "com.apple.developer.nfc.readersession.iso7816.select-identifiers" in the Info.plist. Selecting an application outside of the permissible list will result in a NFCReaderErrorSecurityViolation error.
        Parameters:
        apdu - The command APDU object
        completionHandler - Completion handler called when the operation is completed. error is nil if operation succeeds. A @link NFCErrorDomain @link/ error is returned when there is a communication issue with the tag. responseData may be empty. Command processing status bytes (SW1-SW2) are always valid.