FileDocCategorySizeDatePackage
NfcB.javaAPI DocAndroid 5.1 API4403Thu Mar 12 22:22:10 GMT 2015android.nfc.tech

NfcB

public final class NfcB extends BasicTagTechnology
Provides access to NFC-B (ISO 14443-3B) properties and I/O operations on a {@link Tag}.

Acquire a {@link NfcB} object using {@link #get}.

The primary NFC-B I/O operation is {@link #transceive}. Applications must implement their own protocol stack on top of {@link #transceive}.

Note: Methods that perform I/O operations require the {@link android.Manifest.permission#NFC} permission.

Fields Summary
public static final String
EXTRA_APPDATA
public static final String
EXTRA_PROTINFO
private byte[]
mAppData
private byte[]
mProtInfo
Constructors Summary
public NfcB(android.nfc.Tag tag)

hide

        super(tag, TagTechnology.NFC_B);
        Bundle extras = tag.getTechExtras(TagTechnology.NFC_B);
        mAppData = extras.getByteArray(EXTRA_APPDATA);
        mProtInfo = extras.getByteArray(EXTRA_PROTINFO);
    
Methods Summary
public static android.nfc.tech.NfcBget(android.nfc.Tag tag)
Get an instance of {@link NfcB} for the given tag.

Returns null if {@link NfcB} was not enumerated in {@link Tag#getTechList}. This indicates the tag does not support NFC-B.

Does not cause any RF activity and does not block.

param
tag an NFC-B compatible tag
return
NFC-B object


                                                         
         
        if (!tag.hasTech(TagTechnology.NFC_B)) return null;
        try {
            return new NfcB(tag);
        } catch (RemoteException e) {
            return null;
        }
    
public byte[]getApplicationData()
Return the Application Data bytes from ATQB/SENSB_RES at tag discovery.

Does not cause any RF activity and does not block.

return
Application Data bytes from ATQB/SENSB_RES bytes

        return mAppData;
    
public intgetMaxTransceiveLength()
Return the maximum number of bytes that can be sent with {@link #transceive}.

return
the maximum number of bytes that can be sent with {@link #transceive}.

        return getMaxTransceiveLengthInternal();
    
public byte[]getProtocolInfo()
Return the Protocol Info bytes from ATQB/SENSB_RES at tag discovery.

Does not cause any RF activity and does not block.

return
Protocol Info bytes from ATQB/SENSB_RES bytes

        return mProtInfo;
    
public byte[]transceive(byte[] data)
Send raw NFC-B commands to the tag and receive the response.

Applications must not append the EoD (CRC) to the payload, it will be automatically calculated.

Applications must not send commands that manage the polling loop and initialization (SENSB_REQ, SLOT_MARKER etc).

Use {@link #getMaxTransceiveLength} to retrieve the maximum number of bytes that can be sent with {@link #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 {@link IOException} if {@link #close} is called from another thread.

Requires the {@link android.Manifest.permission#NFC} permission.

param
data bytes to send
return
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

        return transceive(data, true);