Commit Graph

103 Commits

Author SHA1 Message Date
Jason parks
ab8f48c2ee Implement teardown script.
Change-Id: I1a3feda3b1007b08fcaa24c3f8dd21abf1efd885
2011-04-01 14:41:18 -05:00
Nick Pelly
367f41f8f6 Implement new NFC-EE API's as shared library (frameworks/base).
Change-Id: I45c4eaf59ec78167fc236fdd59676465a5e1bcb7
2011-03-10 16:03:46 -08:00
Jeff Hamilton
5644d0e18a Support for NDEF on iCODE.
Change-Id: I9ce2ee5e739d34a9047ca494315cbc54b30fefb8
2011-02-24 22:03:20 -06:00
daniel_tomas
7bcd2c62eb New API added in NfcAdapter to enable/disable SE card emulation
Change-Id: Ia0c123873ba9265b45e847d1a30c1300de3c1346
2011-02-16 09:27:25 -08:00
Robert Ly
2deeefeb5e Adding package summary for nfc.tech package
Change-Id: Ibbf55c21dcaf48b4eb369e78c54fb1023abb3cb3
2011-02-15 17:41:47 -08:00
Jeff Hamilton
58c9d4726e Merge "More documentation updates for NFC." into gingerbread 2011-02-09 00:34:22 -08:00
Jeff Hamilton
28319c0cec More documentation updates for NFC.
Change-Id: Ie134d4296ee12333e6647ce76126f9767ba1ba34
2011-02-09 17:26:47 +09:00
Nick Pelly
39cf3a445e Document NFC permissions.
Change-Id: Ib1b1625058c9c673692f3fbcb3546ec7c2d54a07
2011-02-09 16:10:46 +09:00
Jeff Hamilton
167d9e473f Improve the docs a bit for foreground dispatch.
Change-Id: I4179133a0956bc66a49201c20f1dd2d6d67874d2
2011-02-09 12:30:18 +09:00
Nick Pelly
46797ac098 Fix docs type that broke build.
Change-Id: I5b5a2fc5baf95ace74bf90ff2c750ba890054d64
2011-02-03 16:23:58 -08:00
Nick Pelly
74fe6c6b24 NFC documentation overhaul.
Change-Id: I45dca95a24b2d0327e080436fbcc7b1dad79de02
2011-02-03 15:11:09 -08:00
Nick Pelly
f003e26df9 Final final final Gingerbread MR API changes.
This is it. I promise.

ACTION_TECHNOLOGY_DISCOVERED -> ACTION_TECH_DISCOVERED
    This was missed in our technology->tech rename.

Hide TagTechnology.reconnect()
    This is used to reset any per-connection state in a tag, by reconnecting
    to it. The first problem is that it belongs on Tag, not TagTechnology. The
    second problem is that it may become redundant once we add Tag.rediscover()
    which will also reconnect to the tag, and will also return a new Tag with
    newly created technologies enumerated. And the third and most significant
    problem is that you can already achieve the same result by just calling
    close() followed by connect().

Hide Tag.createMockTag()
    This API cannot be used reliably. First it requires using int[] for the
    technology list, but those int constants are now hidden. Second it requires
    knowledge of the extras parcel used to fill technology specific data - also
    not public.

Introduce TagTechnology.isConnected()
    Every child class already impelmented this, and given that connect() and
    close() are defined on the interface, then isConnected() should be there
    too.

Modify Ndef.getType to return a string (not int)
    Allows more flexibility in adding new NDEF types. Current public strings are
    org.nfcforum.ndef.type1
    org.nfcforum.ndef.type2
    org.nfcforum.ndef.type3
    org.nfcforum.ndef.type4
    com.nxp.ndef.mifareclassic

Add NdefFormatable.formatReadOnly()
    This allows you to make the tag read-only at the same time as performing
    format and write. It is important because we currently don't have any
    public API to re-enumerate a tag technology list after making a tag
    NDEF compatible, so you can't perform the format as a seperate step
    without physically removing the tag from field and returning it.

Modify Readonly -> ReadOnly

Make Tag class final

Change-Id: Icf306aeb37b936ca3007e4868e99b6baceac4aff
2011-02-01 09:20:45 -08:00
Nick Pelly
3fcedf7728 API: Make close() throw an IOException.
IOException on close() can be useful to indicate that in-progress transactions
were canceled.

I also audited all of our tech classes to make sure every function that needs
to throw IOException does so.

Change-Id: Iaa9c43d79d59ff85772d5c3e4b4d57a6fa8df4cf
2011-01-27 16:17:14 -08:00
Nick Pelly
21d0a173f1 Fix build - javadoc.
Change-Id: I0168fb4a75f4dff88e347c0dfd1f0b39e2dba0d6
2011-01-27 14:07:50 -08:00
Nick Pelly
4a5e253220 Clean up MifareUltralight API.
o Some javadoc updates
o writeBlock -> writePages  (Block means something else in NFC Forum).
o validate page offset

Change-Id: Icae54db3397d57aaa451caaa86d56e8ba82507f2
2011-01-27 12:22:56 -08:00
Jeff Hamilton
f126ad3b64 Merge "Use classnames instead of ints for NFC techs." into gingerbread 2011-01-25 14:35:46 -08:00
Jeff Hamilton
d88e9aa575 Use classnames instead of ints for NFC techs.
This makes the system more flexible and allows
adding new technology types without having to
update the API.

Change-Id: Iaee6b633965e501a70e8afc3f1d54d9d94a4d05a
2011-01-25 16:32:26 -06:00
Nick Pelly
b134223f91 Make Mifare Classic increment/decrement operands little endian
Also make sure they are non-negative.

This is not documented in Mifare Classic spec, but based on findings from NXP:
- Operand should be stored in little-endian format in the transceive buffer
- Tag ignores the sign bit on the operand, its effectively 31-bit unsigned
- Overflow and underflow generates an error.

Change-Id: Id3389b3894ded732c4b00d564ca53f5df651359e
2011-01-25 07:45:07 -08:00
Sylvain Fonteneau
c5a418ecb7 Handle mock tags in android.nfc.Tag conversion to Parcel.
When generating a mock tag (after a NDEF exchange over LLCP), one of
the internal fields is set to null. This was causing NullPointerException
when being converted to a Parcel.

This is fixed by not including this field in the Parcel for mock tags.

Change-Id: I000e2faa54d71fd755ba7993e1e258743aad98fb
2011-01-24 12:15:13 -06:00
Nick Pelly
c896d85c15 Merge "Add operands to mifare classic increment, decrement." into gingerbread 2011-01-23 22:12:25 -08:00
Nick Pelly
1e233af3a7 Add operands to mifare classic increment, decrement.
Change-Id: Ib35f615142bda48a5e33888a09ebae2880624788
2011-01-23 22:11:44 -08:00
Nick Pelly
da01b4abb8 Merge "Make MifareClassic methods more consistent." into gingerbread 2011-01-23 21:36:14 -08:00
Nick Pelly
e45083b11b Make MifareClassic methods more consistent.
Remove method overloading for combinations of sector+block addressing.
Instead provide methods that more closly match the raw commands, and more
efficient helpers to convert between blocks and sectors.

o fix off-by-one bug in getBlockCountInSector()
o add BLOCK_SIZE
o remove DESFIRE not operating in classic emulation (SAK 0x20)
o hide isEmulated(), there is no use case, and the info is available elsewhere
o getTotalBlockCount() -> getBlockCount()
o getBlockCount(int) -> getBlockCountInSector(int)
o introduce blockToSector() and sectorToBlock()
o remove authenticateBlock()
    make it really clear that authentication is per sector, and reduce function
    explosion. blockToSector() allows you to use authenticateSector...
o explicit authenticateSectorWithKeyA() / authenticateSectorWithKeyB()
    get rid of magic boolean
o remove all (int sector, int block) parameters
    always address by absolute block. this makes the API crystal clear, and
    helps reduce function explosion
o validation of all sector and block indices
o dont & 0xff when converting to byte - its redundant
o Remove TYPE_OTHER. Mifare Classic types are well-known and stable.

Change-Id: I3c9f8254ff307f31b388b3d7592c862d5de6afa5
2011-01-23 21:32:57 -08:00
Jeff Hamilton
9f20cd7ff2 Allow null filters for foreground dispatch to act as catch all.
Change-Id: Idf3d2e344a6e87035ccb5b533ed9e81fec596132
2011-01-23 12:15:28 -06:00
Jeff Hamilton
4e21e1d21a API changes for NFC.
Bug: 3366009
Change-Id: Ia28e03e1501421906b640b78d4c9a59a20e9c668
2011-01-21 13:32:58 -06:00
Nick Pelly
0316d4a24f Change signature of MifareClassic.authenticate*() to throw IOException.
Update API for this and the previous commit.

Change-Id: I19275a5d00081bd0f00afea59a2b673344a32954
2011-01-18 18:52:37 -08:00
Martijn Coenen
bf34061bb4 Support for TagLostException (API).
Change-Id: Idf2c3253f7bc5f371133c4f18bfc2afde69c3010
2011-01-18 18:32:50 -08:00
Nick Pelly
a8ca533d34 Fix javadoc which broke build.
Change-Id: Ie3cac9bec04e80defae44ba02086ad0cdfd301a9
2011-01-18 17:07:05 -08:00
Martijn Coenen
cbec3fb285 hange the default IsoDep timeout to 300ms (docs update).
Change-Id: I4fe5a6bf9fd42a28c9619e6e0bf11885bcc43f91
2011-01-18 15:35:14 -08:00
Martijn Coenen
07e6f616d1 Check NDEF before calling makeReadOnly().
Change-Id: Iadbaf5c29821eff78ad487b248af529febcdc4ce
2011-01-18 11:35:46 -08:00
Martijn Coenen
a701cf85a0 Implement IsoDep timeout handling (API).
Added a method for setting the timeout on IsoDep transactions.

Change-Id: Ie627e7a826556e46295fefe69b9be83ebf911d93
2011-01-18 11:35:46 -08:00
Jeff Hamilton
ce3224cda5 Javadoc updates for NFC.
Change-Id: Ibd91829979576297599fbcc9eb8054924af1d527
2011-01-18 10:57:30 -08:00
Jeff Hamilton
33ff240558 New APIs for NDEF Push Protocol.
The NPP is only usable by the foregorund
activity to prevent dispatching confusion
on the far end.

Change-Id: I08475a52083fd7f81b79b7fe2faf4e126121a809
2011-01-17 08:07:24 -08:00
Nick Pelly
b73203ab7e Merge "Make sure service handles are live before passing to other objects." into gingerbread 2011-01-14 18:18:25 -08:00
Jeff Hamilton
52d3203ef6 Add dispatching overrides for foreground apps.
Apps can register to override the default dispatching
but only when they're in the foreground.

Change-Id: I8e9a9254d3f79f097fb3c8c677d806043574ba4d
2011-01-13 14:24:07 -06:00
Nick Pelly
253c509cb0 Make sure service handles are live before passing to other objects.
Change-Id: Ia3fa799b56463f313da0e84a50c4dc75d584eaca
2011-01-13 09:22:57 -08:00
daniel_tomas
200ca02fca New Intent defined for RF ON/OFF events
Change-Id: Ie1bc056bd36eb999b4678c594a3edc801a0cf6a1
2011-01-12 16:28:34 -08:00
Martijn Coenen
25be536521 Implement canMakeReadonly().
The method is needed since makeReadOnly() only works on T1T/T2T. Also removed
makeLowlevelReadonly(), since NFC forum does not allow setting the CC and the lock
bits separately.

Change-Id: I8e6d7c065b1f017ef07d878c41df05e1a8193f5a
2011-01-10 12:11:33 -08:00
Nick Pelly
3dd6c45853 Remove attemptDeadServiceRecovery() from TagTechnology's.
attemptDeadServiceRecovery() is a hack to recover from NfcService dying. It
should be a rare event, and is only needed in NfcAdapter which is a long-lived
object.

TagTechnology objects are transient, it is acceptable for them to go stale
when NFC service dies. Lets not complicate the code with recovery for a rare
event.

Change-Id: I101350e920b075c680eb4f250683f0a2bb878553
2011-01-10 18:14:41 +11:00
Nick Pelly
b4003bf73e Change Tag.getTechnology(NfcAdapter, int) to NfcAdapter.getTechnology(Tag, int)
The later feels less clumsy.

Change-Id: I50f29aef23d2993dcfd25f4c4f2cb0d77bdc0610
2011-01-10 17:28:03 +11:00
Nick Pelly
f54ad8daf6 Clean up transceive().
BasicTagTechnology.transceive(byte[] raw) should work for most child classes,
except those that want to disable (raw) transceive.

Current plan is not to add transceiveMifare() etc - use explicit methods
instead.

Add package scoped BasicTagTechnology.transceive(byte[] rata, boolean raw)
as a helper to remove code duplication.

Change-Id: Iaea161022751c99058d291e2ed0f8c475d1c7282
2011-01-07 09:21:23 +11:00
Jeff Hamilton
be372d6462 Make the new NFC APIs public.
Change-Id: Ia0acd9759d67683eaf1dc199dc2cc55e16a98e77
2011-01-06 13:18:34 -06:00
Martijn Coenen
a559aa4759 Fix technology extra naming for IsoDep and NfcB (API part).
Change-Id: Iaa8f1b4dec5d626ffb17a33d71d2f92dd0d99636
2011-01-05 13:30:15 +11:00
Nick Pelly
8f49c025ca Merge "Added response flags and DSFID extras for NfcV technology (API part)." into gingerbread 2011-01-03 22:38:14 -08:00
Martijn Coenen
7eb32a4427 Added response flags and DSFID extras for NfcV technology (API part).
Also fixed a missing assignment in NfcB technology.

Change-Id: Ic564a0a17a9638c11fa528056da40f74ed37e9e6
2011-01-04 17:37:29 +11:00
Nick Pelly
a743448a1b Merge "Tweak Ndef.getType() API. Rename constants, expand javadoc." into gingerbread 2011-01-03 22:32:56 -08:00
Nick Pelly
ddbb2c997b Tweak Ndef.getType() API. Rename constants, expand javadoc.
Change-Id: I9d2c83411411fea4ef46bb7c30ebdbcd9ee3e7d8
2011-01-04 17:31:48 +11:00
Nick Pelly
163bd40749 Merge "Added getType() to NDEF technology class (API part)." into gingerbread 2011-01-03 20:58:26 -08:00
Martijn Coenen
d27ebf1e69 Added getType() to NDEF technology class (API part).
Change-Id: Idfa391dd9d4a401e1daa3dc90ca57e4a3d9e0fa3
2011-01-04 15:57:39 +11:00
Nick Pelly
8c09ef91ae Merge "Removed selectAid() from IsoDep." into gingerbread 2011-01-03 20:09:03 -08:00