Methods Summary |
---|
public static android.nfc.tech.NfcF | get(android.nfc.Tag tag)Get an instance of {@link NfcF} for the given tag.
Returns null if {@link NfcF} was not enumerated in {@link Tag#getTechList}.
This indicates the tag does not support NFC-F.
Does not cause any RF activity and does not block.
if (!tag.hasTech(TagTechnology.NFC_F)) return null;
try {
return new NfcF(tag);
} catch (RemoteException e) {
return null;
}
|
public byte[] | getManufacturer()Return the Manufacturer bytes from tag discovery.
Does not cause any RF activity and does not block.
return mManufacturer;
|
public int | getMaxTransceiveLength()Return the maximum number of bytes that can be sent with {@link #transceive}.
return getMaxTransceiveLengthInternal();
|
public byte[] | getSystemCode()Return the System Code bytes from tag discovery.
Does not cause any RF activity and does not block.
return mSystemCode;
|
public int | getTimeout()Get the current {@link #transceive} timeout in milliseconds.
Requires the {@link android.Manifest.permission#NFC} permission.
try {
return mTag.getTagService().getTimeout(TagTechnology.NFC_F);
} catch (RemoteException e) {
Log.e(TAG, "NFC service dead", e);
return 0;
}
|
public void | setTimeout(int timeout)Set the {@link #transceive} timeout in milliseconds.
The timeout only applies to {@link #transceive} on this object,
and is reset to a default value when {@link #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 {@link android.Manifest.permission#NFC} permission.
try {
int err = mTag.getTagService().setTimeout(TagTechnology.NFC_F, timeout);
if (err != ErrorCodes.SUCCESS) {
throw new IllegalArgumentException("The supplied timeout is not valid");
}
} catch (RemoteException e) {
Log.e(TAG, "NFC service dead", e);
}
|
public byte[] | transceive(byte[] data)Send raw NFC-F commands to the tag and receive the response.
Applications must not append the SoD (length) or EoD (CRC) to the payload,
it will be automatically calculated.
Use {@link #getMaxTransceiveLength} to retrieve the maximum amount 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.
return transceive(data, true);
|