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
This commit is contained in:
Nick Pelly
2011-06-17 10:56:39 -07:00
parent d76baeb4d8
commit 17523abb45
2 changed files with 12 additions and 14 deletions

View File

@@ -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);
}

View File

@@ -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) {
/**
* 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.registerTearDownApdus(packageName, apdus);
} catch (RemoteException e) {
attemptDeadServiceRecovery(e);
}
}
public void unregisterTearDownApdus(String packageName) {
try {
sService.unregisterTearDownApdus(packageName);
sService.authenticate(token);
} catch (RemoteException e) {
attemptDeadServiceRecovery(e);
}