o Lots of documentation fixes.
o Add NdefMessage(NdefRecord ... records) ctor
o Add NdefRecord.createMime()
o Add NdefRecord.createExternal()
o Add toString(), equals() and hashCode() implementations
o Deprecate NdefRecord(byte[]) and NdefRecord.toByteArray()
o Remove framework dependency on libnfc_ndef.so
o Remove NfcAdapter.getDefaultAdapter(), its been deprecated a while
next step:
o Attempt to move NdefMessage -> Intent conversion into NDEF, and
make it CTS tested. This will ensure consistent NDEF -> Intent
mapping across all Android devices.
Change-Id: Ifed4910caa9a1d6bad32dbf0a507ab22bca35e22
This can happen when using getContext() instead of getTargetContext()
in an InstrumentationTestCase.
Bug: 5644274
Change-Id: I020a637c271e25bcf25ae2927fd878001d5fea0a
The package name is now required when using the
NFC extras APIs so the context is stored away
and used to derive the package name to be sent
to the NfcService.
Bug: 4515759
Change-Id: I1a3aba3fc026e0090a914b0686fc4b8dec25b927
This reverts commit 562dfff65a. These API's are still used
by GMM in the version that ships with MR1, so we need them to keep Beam working for
GMM. Note that these APIs are hidden.
From version 5.13 onwards GMM will use the new API's.
Change-Id: I316a9c9b7d0052a14f6c1df70f2ed463bca61800
It crashed due to the fact that we're committing a fragment change
after onSaveInstanceState() is called. Instead, commit without
storing the state - as the NfcFragment is something that needs
to be setup explicitly anyway, it is not something the user
expects to be restored.
Bug: 5540962
Change-Id: I5a8cd0e47306f2bbc14b592a0182083bb79cb21a
This fixes scenarios where the same activity sets, unsets
and re-sets an NdefMessage and/or callback.
Bug: 5454848
Change-Id: I5ed98047b9cfe90d2f48656d978f2d08bb4bf0cc
Add Health profile to various discussions about profiles
Add descriptions to NFC interfaces, tweak some desciptions, and fix some broken links
Change-Id: Ib89434c78a4ad60b4358dca9a6c335451d1c4125
o NfcAdapter.set*(): enforce at least one activity is provided at compile time.
o Unhide and update javadoc for some API's scheduled for ICS release.
Change-Id: I2bf4ea101442dcdeb359be26d3869f82e6e3748b
Introduce
setNdefPushMessage()
setNdefPushMessageCallback()
setNdefPushCompleteCallback()
Deprecate public API
enableForegroundNdefPush()
disableForegroundNdefPush()
Hide & Deprecate staged (public but never released) API
enableForegroundNdefPushCallback()
The new API's do not require the application to explicitly call
enable()/disable() in onPause()/onResume(), we use a Fragment behind
the scenes to manager this automatically.
NDEF Push can be disabled by using a null parameter, so each
enable()/disable() pair is collapsed to a single set() call.
Application code should now look something like:
public void onCreate() {
NfcAdapter adapter = NfcAdapter.getDefaultAdapter(this);
if (adapter != null) { // check that NFC is available on this device
adapter.setNdefPushMessage(myNdefMessage, this);
}
}
And that's it - no need to explicitly hook into onPause() and onResume() events.
Also - introduce a generic NfcEvent class that is provided as a parameter on
all NFC callbacks. Right now it just provides the NfcAdapter, but using
the wrapper classes allows us to add more fields later without changing
the callback signature. (i'm thinking Bluetooth).
Change-Id: I371dcb026b535b8199225c1262eca64ce644458a
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