summaryrefslogtreecommitdiffstats
path: root/core/java/android/nfc
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2011-01-23 22:12:25 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-23 22:12:25 -0800
commitc896d85c15d8a6c98c93df57d88481b89eb878f5 (patch)
treec06aef8c8d6ce58bed7bcaf88ea65d98c4ec5cac /core/java/android/nfc
parentda01b4abb817fcebdf33c27aaa6a1ac4a61beee0 (diff)
parent1e233af3a783d44843a6f2b895d00a5d3b0c29f0 (diff)
downloadframeworks_base-c896d85c15d8a6c98c93df57d88481b89eb878f5.zip
frameworks_base-c896d85c15d8a6c98c93df57d88481b89eb878f5.tar.gz
frameworks_base-c896d85c15d8a6c98c93df57d88481b89eb878f5.tar.bz2
Merge "Add operands to mifare classic increment, decrement." into gingerbread
Diffstat (limited to 'core/java/android/nfc')
-rw-r--r--core/java/android/nfc/tech/MifareClassic.java31
1 files changed, 19 insertions, 12 deletions
diff --git a/core/java/android/nfc/tech/MifareClassic.java b/core/java/android/nfc/tech/MifareClassic.java
index 1991de7..1b383f1 100644
--- a/core/java/android/nfc/tech/MifareClassic.java
+++ b/core/java/android/nfc/tech/MifareClassic.java
@@ -21,6 +21,7 @@ import android.nfc.TagLostException;
import android.os.RemoteException;
import java.io.IOException;
+import java.nio.ByteBuffer;
/**
* Technology class representing MIFARE Classic tags (also known as MIFARE Standard).
@@ -32,8 +33,8 @@ import java.io.IOException;
* 16 bytes, but the number of sectors and the sector size varies by product. MIFARE has encryption
* built in and each sector has two keys associated with it, as well as ACLs to determine what
* level acess each key grants. Before operating on a sector you must call either
- * {@link #authenticateSector(int, byte[], boolean)} or
- * {@link #authenticateBlock(int, byte[], boolean)} to gain authorize your request.
+ * {@link #authenticateSectorWithKeyA(int, byte[])} or
+ * {@link #authenticateSectorWithKeyB(int, byte[])} to gain authorization for your request.
*/
public final class MifareClassic extends BasicTagTechnology {
/**
@@ -322,35 +323,41 @@ public final class MifareClassic extends BasicTagTechnology {
/**
* Increment a value block, and store the result in temporary memory.
- * @param block
+ * @param blockIndex
* @throws IOException
*/
- public void increment(int blockIndex) throws IOException {
+ public void increment(int blockIndex, int value) throws IOException {
validateBlock(blockIndex);
checkConnected();
- byte[] cmd = { (byte) 0xC1, (byte) blockIndex };
+ ByteBuffer cmd = ByteBuffer.allocate(6);
+ cmd.put( (byte) 0xC1 );
+ cmd.put( (byte) blockIndex );
+ cmd.putInt(value); // ByteBuffer does the correct big endian translation
- transceive(cmd, false);
+ transceive(cmd.array(), false);
}
/**
* Decrement a value block, and store the result in temporary memory.
- * @param block
+ * @param blockIndex
* @throws IOException
*/
- public void decrement(int blockIndex) throws IOException {
+ public void decrement(int blockIndex, int value) throws IOException {
validateBlock(blockIndex);
checkConnected();
- byte[] cmd = { (byte) 0xC0, (byte) blockIndex };
+ ByteBuffer cmd = ByteBuffer.allocate(6);
+ cmd.put( (byte) 0xC0 );
+ cmd.put( (byte) blockIndex );
+ cmd.putInt(value); // ByteBuffer does the correct big endian translation
- transceive(cmd, false);
+ transceive(cmd.array(), false);
}
/**
* Copy from temporary memory to value block.
- * @param block
+ * @param blockIndex
* @throws IOException
*/
public void transfer(int blockIndex) throws IOException {
@@ -364,7 +371,7 @@ public final class MifareClassic extends BasicTagTechnology {
/**
* Copy from value block to temporary memory.
- * @param block
+ * @param blockIndex
* @throws IOException
*/
public void restore(int blockIndex) throws IOException {