summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Baptiste Queru <jbq@google.com>2011-02-01 15:21:21 -0800
committerJean-Baptiste Queru <jbq@google.com>2011-02-01 15:21:21 -0800
commit72f43886fbf439457a79b0a6af247084f92f1197 (patch)
tree65006365fdae036738a3ab5c7f19ee0236c6aa19
parent22d197eb310d33c80361f57d39342260956c4987 (diff)
downloadframeworks_base-72f43886fbf439457a79b0a6af247084f92f1197.zip
frameworks_base-72f43886fbf439457a79b0a6af247084f92f1197.tar.gz
frameworks_base-72f43886fbf439457a79b0a6af247084f92f1197.tar.bz2
Really get the new GB APIs.
Change-Id: Ib2bc4d964ad925977ed58e466cc50ed3e89f5924
-rw-r--r--api/10.xml94
-rw-r--r--api/current.xml94
-rw-r--r--core/java/android/nfc/NfcAdapter.java6
-rw-r--r--core/java/android/nfc/Tag.java3
-rw-r--r--core/java/android/nfc/tech/BasicTagTechnology.java11
-rw-r--r--core/java/android/nfc/tech/Ndef.java64
-rw-r--r--core/java/android/nfc/tech/NdefFormatable.java32
-rw-r--r--core/java/android/nfc/tech/TagTechnology.java12
8 files changed, 165 insertions, 151 deletions
diff --git a/api/10.xml b/api/10.xml
index ad54650..e10b357 100644
--- a/api/10.xml
+++ b/api/10.xml
@@ -100906,7 +100906,7 @@
visibility="public"
>
</field>
-<field name="ACTION_TECHNOLOGY_DISCOVERED"
+<field name="ACTION_TECH_DISCOVERED"
type="java.lang.String"
transient="false"
volatile="false"
@@ -100975,29 +100975,12 @@
extends="java.lang.Object"
abstract="false"
static="false"
- final="false"
+ final="true"
deprecated="not deprecated"
visibility="public"
>
<implements name="android.os.Parcelable">
</implements>
-<method name="createMockTag"
- return="android.nfc.Tag"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="id" type="byte[]">
-</parameter>
-<parameter name="techList" type="int[]">
-</parameter>
-<parameter name="techListExtras" type="android.os.Bundle[]">
-</parameter>
-</method>
<method name="describeContents"
return="int"
abstract="false"
@@ -101145,19 +101128,6 @@
visibility="public"
>
</method>
-<method name="reconnect"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="IOException" type="java.io.IOException">
-</exception>
-</method>
</class>
<class name="IsoDep"
extends="android.nfc.tech.BasicTagTechnology"
@@ -101745,7 +101715,7 @@
deprecated="not deprecated"
visibility="public"
>
-<method name="canMakeReadonly"
+<method name="canMakeReadOnly"
return="boolean"
abstract="false"
native="false"
@@ -101807,7 +101777,7 @@
</exception>
</method>
<method name="getType"
- return="int"
+ return="java.lang.String"
abstract="false"
native="false"
synchronized="false"
@@ -101828,7 +101798,7 @@
visibility="public"
>
</method>
-<method name="makeReadonly"
+<method name="makeReadOnly"
return="boolean"
abstract="false"
native="false"
@@ -101859,10 +101829,10 @@
</exception>
</method>
<field name="MIFARE_CLASSIC"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="101"
+ value="&quot;com.nxp.ndef.mifareclassic&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -101870,10 +101840,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_1"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="1"
+ value="&quot;org.nfcforum.ndef.type1&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -101881,10 +101851,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_2"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="2"
+ value="&quot;org.nfcforum.ndef.type2&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -101892,10 +101862,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_3"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="3"
+ value="&quot;org.nfcforum.ndef.type3&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -101903,21 +101873,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_4"
- type="int"
- transient="false"
- volatile="false"
- value="4"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="OTHER"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="-1"
+ value="&quot;org.nfcforum.ndef.type4&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -101950,6 +101909,23 @@
<exception name="IOException" type="java.io.IOException">
</exception>
</method>
+<method name="formatReadOnly"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="firstMessage" type="android.nfc.NdefMessage">
+</parameter>
+<exception name="FormatException" type="android.nfc.FormatException">
+</exception>
+<exception name="IOException" type="java.io.IOException">
+</exception>
+</method>
<method name="get"
return="android.nfc.tech.NdefFormatable"
abstract="false"
@@ -102246,8 +102222,8 @@
visibility="public"
>
</method>
-<method name="reconnect"
- return="void"
+<method name="isConnected"
+ return="boolean"
abstract="true"
native="false"
synchronized="false"
@@ -102256,8 +102232,6 @@
deprecated="not deprecated"
visibility="public"
>
-<exception name="IOException" type="java.io.IOException">
-</exception>
</method>
</interface>
</package>
diff --git a/api/current.xml b/api/current.xml
index bf5fb5a..f4d9a2d 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -120167,7 +120167,7 @@
visibility="public"
>
</field>
-<field name="ACTION_TECHNOLOGY_DISCOVERED"
+<field name="ACTION_TECH_DISCOVERED"
type="java.lang.String"
transient="false"
volatile="false"
@@ -120236,29 +120236,12 @@
extends="java.lang.Object"
abstract="false"
static="false"
- final="false"
+ final="true"
deprecated="not deprecated"
visibility="public"
>
<implements name="android.os.Parcelable">
</implements>
-<method name="createMockTag"
- return="android.nfc.Tag"
- abstract="false"
- native="false"
- synchronized="false"
- static="true"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="id" type="byte[]">
-</parameter>
-<parameter name="techList" type="int[]">
-</parameter>
-<parameter name="techListExtras" type="android.os.Bundle[]">
-</parameter>
-</method>
<method name="describeContents"
return="int"
abstract="false"
@@ -120406,19 +120389,6 @@
visibility="public"
>
</method>
-<method name="reconnect"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<exception name="IOException" type="java.io.IOException">
-</exception>
-</method>
</class>
<class name="IsoDep"
extends="android.nfc.tech.BasicTagTechnology"
@@ -121006,7 +120976,7 @@
deprecated="not deprecated"
visibility="public"
>
-<method name="canMakeReadonly"
+<method name="canMakeReadOnly"
return="boolean"
abstract="false"
native="false"
@@ -121068,7 +121038,7 @@
</exception>
</method>
<method name="getType"
- return="int"
+ return="java.lang.String"
abstract="false"
native="false"
synchronized="false"
@@ -121089,7 +121059,7 @@
visibility="public"
>
</method>
-<method name="makeReadonly"
+<method name="makeReadOnly"
return="boolean"
abstract="false"
native="false"
@@ -121120,10 +121090,10 @@
</exception>
</method>
<field name="MIFARE_CLASSIC"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="101"
+ value="&quot;com.nxp.ndef.mifareclassic&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -121131,10 +121101,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_1"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="1"
+ value="&quot;org.nfcforum.ndef.type1&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -121142,10 +121112,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_2"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="2"
+ value="&quot;org.nfcforum.ndef.type2&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -121153,10 +121123,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_3"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="3"
+ value="&quot;org.nfcforum.ndef.type3&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -121164,21 +121134,10 @@
>
</field>
<field name="NFC_FORUM_TYPE_4"
- type="int"
- transient="false"
- volatile="false"
- value="4"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-<field name="OTHER"
- type="int"
+ type="java.lang.String"
transient="false"
volatile="false"
- value="-1"
+ value="&quot;org.nfcforum.ndef.type4&quot;"
static="true"
final="true"
deprecated="not deprecated"
@@ -121211,6 +121170,23 @@
<exception name="IOException" type="java.io.IOException">
</exception>
</method>
+<method name="formatReadOnly"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="firstMessage" type="android.nfc.NdefMessage">
+</parameter>
+<exception name="FormatException" type="android.nfc.FormatException">
+</exception>
+<exception name="IOException" type="java.io.IOException">
+</exception>
+</method>
<method name="get"
return="android.nfc.tech.NdefFormatable"
abstract="false"
@@ -121507,8 +121483,8 @@
visibility="public"
>
</method>
-<method name="reconnect"
- return="void"
+<method name="isConnected"
+ return="boolean"
abstract="true"
native="false"
synchronized="false"
@@ -121517,8 +121493,6 @@
deprecated="not deprecated"
visibility="public"
>
-<exception name="IOException" type="java.io.IOException">
-</exception>
</method>
</interface>
</package>
diff --git a/core/java/android/nfc/NfcAdapter.java b/core/java/android/nfc/NfcAdapter.java
index 4808032..d30a0c6 100644
--- a/core/java/android/nfc/NfcAdapter.java
+++ b/core/java/android/nfc/NfcAdapter.java
@@ -44,10 +44,10 @@ public final class NfcAdapter {
/**
* Intent to start an activity when a tag with NDEF payload is discovered.
* If the tag has and NDEF payload this intent is started before
- * {@link #ACTION_TECHNOLOGY_DISCOVERED}.
+ * {@link #ACTION_TECH_DISCOVERED}.
*
* If any activities respond to this intent neither
- * {@link #ACTION_TECHNOLOGY_DISCOVERED} or {@link #ACTION_TAG_DISCOVERED} will be started.
+ * {@link #ACTION_TECH_DISCOVERED} or {@link #ACTION_TAG_DISCOVERED} will be started.
*/
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
public static final String ACTION_NDEF_DISCOVERED = "android.nfc.action.NDEF_DISCOVERED";
@@ -63,7 +63,7 @@ public final class NfcAdapter {
* If any activities respond to this intent {@link #ACTION_TAG_DISCOVERED} will not be started.
*/
@SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
- public static final String ACTION_TECHNOLOGY_DISCOVERED = "android.nfc.action.TECH_DISCOVERED";
+ public static final String ACTION_TECH_DISCOVERED = "android.nfc.action.TECH_DISCOVERED";
/**
* Intent to start an activity when a tag is discovered.
diff --git a/core/java/android/nfc/Tag.java b/core/java/android/nfc/Tag.java
index aae75c9..45a3447 100644
--- a/core/java/android/nfc/Tag.java
+++ b/core/java/android/nfc/Tag.java
@@ -55,7 +55,7 @@ import java.util.Arrays;
* not cause any further RF activity or block. Note however that arrays passed to and
* returned by this class are *not* cloned, so be careful not to modify them.
*/
-public class Tag implements Parcelable {
+public final class Tag implements Parcelable {
/*package*/ final byte[] mId;
/*package*/ final int[] mTechList;
/*package*/ final String[] mTechStringList;
@@ -93,6 +93,7 @@ public class Tag implements Parcelable {
* @param id The tag identifier, can be null
* @param techList must not be null
* @return freshly constructed tag
+ * @hide
*/
public static Tag createMockTag(byte[] id, int[] techList, Bundle[] techListExtras) {
// set serviceHandle to 0 to indicate mock tag
diff --git a/core/java/android/nfc/tech/BasicTagTechnology.java b/core/java/android/nfc/tech/BasicTagTechnology.java
index 32a850d..7ec807a 100644
--- a/core/java/android/nfc/tech/BasicTagTechnology.java
+++ b/core/java/android/nfc/tech/BasicTagTechnology.java
@@ -53,15 +53,7 @@ import java.io.IOException;
}
}
- /**
- * Helper to indicate if {@link #connect} has succeeded.
- * <p>
- * Does not cause RF activity, and does not block.
- * @return true if {@link #connect} has completed successfully and the {@link Tag} is believed
- * to be within range. Applications must still handle {@link java.io.IOException}
- * while using methods that require a connection in case the connection is lost after this
- * method returns.
- */
+ @Override
public boolean isConnected() {
if (!mIsConnected) {
return false;
@@ -94,6 +86,7 @@ import java.io.IOException;
}
}
+ /** @hide */
@Override
public void reconnect() throws IOException {
if (!mIsConnected) {
diff --git a/core/java/android/nfc/tech/Ndef.java b/core/java/android/nfc/tech/Ndef.java
index c6804f9..39ff282 100644
--- a/core/java/android/nfc/tech/Ndef.java
+++ b/core/java/android/nfc/tech/Ndef.java
@@ -61,12 +61,31 @@ public final class Ndef extends BasicTagTechnology {
/** @hide */
public static final String EXTRA_NDEF_TYPE = "ndeftype";
- public static final int OTHER = -1;
- public static final int NFC_FORUM_TYPE_1 = 1;
- public static final int NFC_FORUM_TYPE_2 = 2;
- public static final int NFC_FORUM_TYPE_3 = 3;
- public static final int NFC_FORUM_TYPE_4 = 4;
- public static final int MIFARE_CLASSIC = 101;
+ /** @hide */
+ public static final int TYPE_OTHER = -1;
+ /** @hide */
+ public static final int TYPE_1 = 1;
+ /** @hide */
+ public static final int TYPE_2 = 2;
+ /** @hide */
+ public static final int TYPE_3 = 3;
+ /** @hide */
+ public static final int TYPE_4 = 4;
+ /** @hide */
+ public static final int TYPE_MIFARE_CLASSIC = 101;
+
+ /** @hide */
+ public static final String UNKNOWN = "android.ndef.unknown";
+
+ public static final String NFC_FORUM_TYPE_1 = "org.nfcforum.ndef.type1";
+
+ public static final String NFC_FORUM_TYPE_2 = "org.nfcforum.ndef.type2";
+
+ public static final String NFC_FORUM_TYPE_3 = "org.nfcforum.ndef.type3";
+
+ public static final String NFC_FORUM_TYPE_4 = "org.nfcforum.ndef.type4";
+
+ public static final String MIFARE_CLASSIC = "com.nxp.ndef.mifareclassic";
private final int mMaxNdefSize;
private final int mCardState;
@@ -118,18 +137,27 @@ public final class Ndef extends BasicTagTechnology {
* Get NDEF tag type.
* <p>Returns one of {@link #NFC_FORUM_TYPE_1}, {@link #NFC_FORUM_TYPE_2},
* {@link #NFC_FORUM_TYPE_3}, {@link #NFC_FORUM_TYPE_4},
- * {@link #MIFARE_CLASSIC} or {@link #OTHER}.
- * <p>Platforms of this API revision will always return one of the above
- * values. Platforms at future API revisions may return other values, which
- * can be treated as {@link #OTHER} by applications targeting this API.
+ * {@link #MIFARE_CLASSIC} or another NDEF tag type that is not yet in the
+ * Android API.
* <p>Android devices with NFC support must always correctly enumerate
* NFC Forum tag types, and may optionally enumerate
* {@link #MIFARE_CLASSIC} since it requires proprietary technology.
- * Devices that cannot enumerate {@link #MIFARE_CLASSIC} will use
- * {@link #OTHER} instead.
*/
- public int getType() {
- return mNdefType;
+ public String getType() {
+ switch (mNdefType) {
+ case TYPE_1:
+ return NFC_FORUM_TYPE_1;
+ case TYPE_2:
+ return NFC_FORUM_TYPE_2;
+ case TYPE_3:
+ return NFC_FORUM_TYPE_3;
+ case TYPE_4:
+ return NFC_FORUM_TYPE_4;
+ case TYPE_MIFARE_CLASSIC:
+ return MIFARE_CLASSIC;
+ default:
+ return UNKNOWN;
+ }
}
/**
@@ -217,10 +245,10 @@ public final class Ndef extends BasicTagTechnology {
/**
* Indicates whether a tag can be made read-only with
- * {@link #makeReadonly()}
+ * {@link #makeReadOnly()}
*/
- public boolean canMakeReadonly() {
- if (mNdefType == NFC_FORUM_TYPE_1 || mNdefType == NFC_FORUM_TYPE_2) {
+ public boolean canMakeReadOnly() {
+ if (mNdefType == TYPE_1 || mNdefType == TYPE_2) {
return true;
} else {
return false;
@@ -234,7 +262,7 @@ public final class Ndef extends BasicTagTechnology {
* This is a one-way process and can not be reverted!
* @throws IOException
*/
- public boolean makeReadonly() throws IOException {
+ public boolean makeReadOnly() throws IOException {
checkConnected();
try {
diff --git a/core/java/android/nfc/tech/NdefFormatable.java b/core/java/android/nfc/tech/NdefFormatable.java
index 2919c43..e2828b5 100644
--- a/core/java/android/nfc/tech/NdefFormatable.java
+++ b/core/java/android/nfc/tech/NdefFormatable.java
@@ -65,8 +65,25 @@ public final class NdefFormatable extends BasicTagTechnology {
/**
* Formats a tag as NDEF, if possible. You may supply a first
* NdefMessage to be written on the tag.
+ * <p>Either all steps succeed, or an IOException is thrown if any one step
+ * fails.
*/
public void format(NdefMessage firstMessage) throws IOException, FormatException {
+ format(firstMessage, false);
+ }
+
+ /**
+ * Formats a tag as NDEF, if possible. You may supply a first
+ * NdefMessage to be written on the tag.
+ * <p>Either all steps succeed, or an IOException is thrown if any one step
+ * fails.
+ */
+ public void formatReadOnly(NdefMessage firstMessage) throws IOException, FormatException {
+ format(firstMessage, true);
+ }
+
+ /*package*/ void format(NdefMessage firstMessage, boolean makeReadOnly) throws IOException,
+ FormatException {
checkConnected();
try {
@@ -101,6 +118,21 @@ public final class NdefFormatable extends BasicTagTechnology {
} else {
throw new IOException();
}
+ // optionally make read-only
+ if (makeReadOnly) {
+ errorCode = tagService.ndefMakeReadOnly(serviceHandle);
+ switch (errorCode) {
+ case ErrorCodes.SUCCESS:
+ break;
+ case ErrorCodes.ERROR_IO:
+ throw new IOException();
+ case ErrorCodes.ERROR_INVALID_PARAM:
+ throw new IOException();
+ default:
+ // Should not happen
+ throw new IOException();
+ }
+ }
} catch (RemoteException e) {
Log.e(TAG, "NFC service dead", e);
}
diff --git a/core/java/android/nfc/tech/TagTechnology.java b/core/java/android/nfc/tech/TagTechnology.java
index c8ccdcf..50df865 100644
--- a/core/java/android/nfc/tech/TagTechnology.java
+++ b/core/java/android/nfc/tech/TagTechnology.java
@@ -121,6 +121,7 @@ public interface TagTechnology extends Closeable {
* @see #connect()
* @see #close()
* @throws IOException
+ * @hide
*/
public void reconnect() throws IOException;
@@ -137,4 +138,15 @@ public interface TagTechnology extends Closeable {
* @see #reconnect()
*/
public void close() throws IOException;
+
+ /**
+ * Helper to indicate if {@link #connect} has succeeded.
+ * <p>
+ * Does not cause RF activity, and does not block.
+ * @return true if {@link #connect} has completed successfully and the {@link Tag} is believed
+ * to be within range. Applications must still handle {@link java.io.IOException}
+ * while using methods that require a connection in case the connection is lost after this
+ * method returns.
+ */
+ public boolean isConnected();
}