diff options
Diffstat (limited to 'nfc-extras')
-rw-r--r-- | nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java | 22 | ||||
-rw-r--r-- | nfc-extras/java/com/android/nfc_extras/NfcExecutionEnvironment.java | 58 |
2 files changed, 69 insertions, 11 deletions
diff --git a/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java b/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java index 6001be92a322..e0c38b12229b 100644 --- a/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java +++ b/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java @@ -18,7 +18,6 @@ package com.android.nfc_extras; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; -import android.nfc.ApduList; import android.nfc.INfcAdapterExtras; import android.nfc.NfcAdapter; import android.os.RemoteException; @@ -208,17 +207,18 @@ public final class NfcAdapterExtras { return sEmbeddedEe; } - public void registerTearDownApdus(String packageName, ApduList apdus) { - try { - sService.registerTearDownApdus(packageName, apdus); - } catch (RemoteException e) { - attemptDeadServiceRecovery(e); - } - } - - public void unregisterTearDownApdus(String packageName) { + /** + * Authenticate the client application. + * + * Some implementations of NFC Adapter Extras may require applications + * to authenticate with a token, before using other methods. + * + * @param a implementation specific token + * @throws a {@link java.lang.SecurityException} if authentication failed + */ + public void authenticate(byte[] token) { try { - sService.unregisterTearDownApdus(packageName); + sService.authenticate(token); } catch (RemoteException e) { attemptDeadServiceRecovery(e); } diff --git a/nfc-extras/java/com/android/nfc_extras/NfcExecutionEnvironment.java b/nfc-extras/java/com/android/nfc_extras/NfcExecutionEnvironment.java index eb2f6f859191..63c2de200224 100644 --- a/nfc-extras/java/com/android/nfc_extras/NfcExecutionEnvironment.java +++ b/nfc-extras/java/com/android/nfc_extras/NfcExecutionEnvironment.java @@ -55,6 +55,64 @@ public class NfcExecutionEnvironment { */ public static final String EXTRA_AID = "com.android.nfc_extras.extra.AID"; + /** + * Broadcast action: A filtered APDU was received. + * + * <p>This happens when an APDU of interest was matched by the Nfc adapter, + * for instance as the result of matching an externally-configured filter. + * + * <p>The filter configuration mechanism is not currently defined. + * + * <p>Always contains the extra field {@link EXTRA_APDU_BYTES}. + * + * @hide + */ + public static final String ACTION_APDU_RECEIVED = + "com.android.nfc_extras.action.APDU_RECEIVED"; + + /** + * Mandatory byte array extra field in {@link #ACTION_APDU_RECEIVED}. + * + * <p>Contains the bytes of the received APDU. + * + * @hide + */ + public static final String EXTRA_APDU_BYTES = + "com.android.nfc_extras.extra.APDU_BYTES"; + + /** + * Broadcast action: An EMV card removal event was detected. + * + * @hide + */ + public static final String ACTION_EMV_CARD_REMOVAL = + "com.android.nfc_extras.action.EMV_CARD_REMOVAL"; + + /** + * Broadcast action: An adapter implementing MIFARE Classic via card + * emulation detected that a block has been accessed. + * + * <p>This may only be issued for the first block that the reader + * authenticates to. + * + * <p>May contain the extra field {@link #EXTRA_MIFARE_BLOCK}. + * + * @hide + */ + public static final String ACTION_MIFARE_ACCESS_DETECTED = + "com.android.nfc_extras.action.MIFARE_ACCESS_DETECTED"; + + /** + * Optional integer extra field in {@link #ACTION_MIFARE_ACCESS_DETECTED}. + * + * <p>Provides the block number being accessed. If not set, the block + * number being accessed is unknown. + * + * @hide + */ + public static final String EXTRA_MIFARE_BLOCK = + "com.android.nfc_extras.extra.MIFARE_BLOCK"; + NfcExecutionEnvironment(NfcAdapterExtras extras) { mExtras = extras; } |