Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 17523abb authored by Nick Pelly's avatar Nick Pelly
Browse files

NFC Adapter Extras API update.

Remove
o registerTearDownApdus()
o deregisterTearDownApdus()
They were already NO-OPS, and don't work in the general case.

Add
o authenticate(byte[] token)
This future proofs us for a more flexible access control scheme.

Change-Id: I4cb67ceeb63d61cbc333c9b244a96d8687402168
parent d76baeb4
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package android.nfc;

import android.nfc.ApduList;
import android.os.Bundle;


@@ -29,6 +28,5 @@ interface INfcAdapterExtras {
    Bundle transceive(in byte[] data_in);
    int getCardEmulationRoute();
    void setCardEmulationRoute(int route);
    void registerTearDownApdus(String packageName, in ApduList apdu);
    void unregisterTearDownApdus(String packageName);
    void authenticate(in byte[] token);
}
+11 −11
Original line number Diff line number Diff line
@@ -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);
        }