Hide some NFC API's.

We are leaving enough API so that you can see when any Tag is discovered,
get its ID, and get its NDEF messages.

But for advanced use - creating tag connections and writing messages - we have
2 problems. Firstly a lot of the code is untested
(RawTagConnection.transceive()), or in some cases known not to work
(NdefTagConnection.write()). Secondly, there is still debate about how to
best expose information about Tags.

The set of data/methods exposed for a Tag changes completely depending on the
tag technology. There may be multiple sets of technology implemented in a
single tag. Tag A may have technology X and Y, Tag B may have technology Y
and Z. Furthermore, some NFC controllers will be not be able to use all
technologies, and so Android Device 1 may see technology X and Y on Tag A but
Android device 2 may only see technology X. So we have a pretty challenging
set of constraints to work under, and we are not convinced the current Tag and
NdefTag class is the best approach going forwards.

The Tag application should be able to remain unbundled, since it just needs to
get incoming NDEF Messages.

Change-Id: Ic09f094f33794e10f8d730fffe011c9a5957e0ac
Signed-off-by: Nick Pelly <npelly@google.com>
diff --git a/core/java/android/nfc/NdefRecord.java b/core/java/android/nfc/NdefRecord.java
index 557e44d..746d3df 100644
--- a/core/java/android/nfc/NdefRecord.java
+++ b/core/java/android/nfc/NdefRecord.java
@@ -35,7 +35,7 @@
  * large.
  * <p>This is an immutable data class.
  */
-public class NdefRecord implements Parcelable {
+public final class NdefRecord implements Parcelable {
     /**
      * Indicates no type, id, or payload is associated with this NDEF Record.
      * <p>