diff options
author | Nick Pelly <npelly@google.com> | 2012-01-24 13:22:58 -0800 |
---|---|---|
committer | Nick Pelly <npelly@google.com> | 2012-01-26 14:21:19 -0800 |
commit | 1f5badc1cb08f10ddf4b09aaaf34060a23999a51 (patch) | |
tree | 1ed4d116df4898dd11e85cd48b0d83a099cb006b /core/java/android | |
parent | 7e4ef61732d7de33e34f5935cfad51049f65116a (diff) | |
download | frameworks_base-1f5badc1cb08f10ddf4b09aaaf34060a23999a51.zip frameworks_base-1f5badc1cb08f10ddf4b09aaaf34060a23999a51.tar.gz frameworks_base-1f5badc1cb08f10ddf4b09aaaf34060a23999a51.tar.bz2 |
Add NdefMessage.getByteLength(), and more minor fixes:
Remove NdefMessage from dispatch(). It's already in the Tag.
/*package*/ cleanup
Fix sitemap after removal of NFCDemo
Change-Id: Ie1f6d9ea98144aa97f56bb709a33f5d0ef916e8b
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/nfc/INfcAdapter.aidl | 2 | ||||
-rw-r--r-- | core/java/android/nfc/NdefMessage.java | 30 | ||||
-rw-r--r-- | core/java/android/nfc/NfcAdapter.java | 4 | ||||
-rw-r--r-- | core/java/android/nfc/Tag.java | 16 | ||||
-rw-r--r-- | core/java/android/nfc/tech/BasicTagTechnology.java | 12 |
5 files changed, 41 insertions, 23 deletions
diff --git a/core/java/android/nfc/INfcAdapter.aidl b/core/java/android/nfc/INfcAdapter.aidl index d2afbb9..61bc324 100644 --- a/core/java/android/nfc/INfcAdapter.aidl +++ b/core/java/android/nfc/INfcAdapter.aidl @@ -44,5 +44,5 @@ interface INfcAdapter in IntentFilter[] filters, in TechListParcel techLists); void setForegroundNdefPush(in NdefMessage msg, in INdefPushCallback callback); - void dispatch(in Tag tag, in NdefMessage message); + void dispatch(in Tag tag); } diff --git a/core/java/android/nfc/NdefMessage.java b/core/java/android/nfc/NdefMessage.java index c83144f..dc501ab 100644 --- a/core/java/android/nfc/NdefMessage.java +++ b/core/java/android/nfc/NdefMessage.java @@ -158,7 +158,28 @@ public final class NdefMessage implements Parcelable { } /** - * Return this NDEF MEssage as raw bytes.<p> + * Return the length of this NDEF Message if it is written to a byte array + * with {@link #toByteArray}.<p> + * An NDEF Message can be formatted to bytes in different ways + * depending on chunking, SR, and ID flags, so the length returned + * by this method may not be equal to the length of the original + * byte array used to construct this NDEF Message. However it will + * always be equal to the length of the byte array produced by + * {@link #toByteArray}. + * + * @return length of this NDEF Message when written to bytes with {@link toByteArray} + * @see #toByteArray + */ + public int getByteArrayLength() { + int length = 0; + for (NdefRecord r : mRecords) { + length += r.getByteLength(); + } + return length; + } + + /** + * Return this NDEF Message as raw bytes.<p> * The NDEF Message is formatted as per the NDEF 1.0 specification, * and the byte array is suitable for network transmission or storage * in an NFC Forum NDEF compatible tag.<p> @@ -166,13 +187,10 @@ public final class NdefMessage implements Parcelable { * short record (SR) format and omit the identifier field when possible. * * @return NDEF Message in binary format + * @see getByteArrayLength */ public byte[] toByteArray() { - int length = 0; - for (NdefRecord r : mRecords) { - length += r.getByteLength(); - } - + int length = getByteArrayLength(); ByteBuffer buffer = ByteBuffer.allocate(length); for (int i=0; i<mRecords.length; i++) { diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java index 224a8bc..5176857 100644 --- a/core/java/android/nfc/NfcAdapter.java +++ b/core/java/android/nfc/NfcAdapter.java @@ -889,12 +889,12 @@ public final class NfcAdapter { * {@link android.Manifest.permission#WRITE_SECURE_SETTINGS} permission. * @hide */ - public void dispatch(Tag tag, NdefMessage message) { + public void dispatch(Tag tag) { if (tag == null) { throw new NullPointerException("tag cannot be null"); } try { - sService.dispatch(tag, message); + sService.dispatch(tag); } catch (RemoteException e) { attemptDeadServiceRecovery(e); } diff --git a/core/java/android/nfc/Tag.java b/core/java/android/nfc/Tag.java index 9fe0bed..f9b765c 100644 --- a/core/java/android/nfc/Tag.java +++ b/core/java/android/nfc/Tag.java @@ -108,14 +108,14 @@ import java.util.Arrays; * <p> */ public final class Tag implements Parcelable { - /*package*/ final byte[] mId; - /*package*/ final int[] mTechList; - /*package*/ final String[] mTechStringList; - /*package*/ final Bundle[] mTechExtras; - /*package*/ final int mServiceHandle; // for use by NFC service, 0 indicates a mock - /*package*/ final INfcTag mTagService; // interface to NFC service, will be null if mock tag - - /*package*/ int mConnectedTechnology; + final byte[] mId; + final int[] mTechList; + final String[] mTechStringList; + final Bundle[] mTechExtras; + final int mServiceHandle; // for use by NFC service, 0 indicates a mock + final INfcTag mTagService; // interface to NFC service, will be null if mock tag + + int mConnectedTechnology; /** * Hidden constructor to be used by NFC service and internal classes. diff --git a/core/java/android/nfc/tech/BasicTagTechnology.java b/core/java/android/nfc/tech/BasicTagTechnology.java index 913ae0e..b6b347c 100644 --- a/core/java/android/nfc/tech/BasicTagTechnology.java +++ b/core/java/android/nfc/tech/BasicTagTechnology.java @@ -18,7 +18,6 @@ package android.nfc.tech; import android.nfc.ErrorCodes; import android.nfc.Tag; -import android.nfc.TagLostException; import android.nfc.TransceiveResult; import android.os.RemoteException; import android.util.Log; @@ -28,12 +27,13 @@ import java.io.IOException; /** * A base class for tag technologies that are built on top of transceive(). */ -/* package */ abstract class BasicTagTechnology implements TagTechnology { +abstract class BasicTagTechnology implements TagTechnology { private static final String TAG = "NFC"; - /*package*/ final Tag mTag; - /*package*/ boolean mIsConnected; - /*package*/ int mSelectedTechnology; + final Tag mTag; + + boolean mIsConnected; + int mSelectedTechnology; BasicTagTechnology(Tag tag, int tech) throws RemoteException { mTag = tag; @@ -139,7 +139,7 @@ import java.io.IOException; } } /** Internal transceive */ - /*package*/ byte[] transceive(byte[] data, boolean raw) throws IOException { + byte[] transceive(byte[] data, boolean raw) throws IOException { checkConnected(); try { |