Commit Graph

72 Commits

Author SHA1 Message Date
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
Martijn Coenen
912aa1cd70 Removed selectAid() from IsoDep.
It's a convenience method that can be implemented with transceive();
not really needed for now.

Change-Id: Idd855c85b15d97ae679d11d908834be3cb2741d8
2011-01-04 15:08:34 +11:00
Martijn Coenen
a42b352594 Added transfer/restore convience cmds to MF Classic tech.
Change-Id: I675993bc3aae6a741d63be458a0dfea240dd5316
2011-01-04 13:32:06 +11:00
Jeff Hamilton
3ce86481cb Remove canBeFormatted().
It's not easy to determine if this
is possible, so instead apps should
attempt a format and handle errors
in the format request.

Change-Id: I078a208b849e71ef3fb6b5970a9111ece4a2d201
2010-12-22 11:31:21 -06:00
Martijn Coenen
ab82a5b9a8 Clean up and polish Mifare Classic tech.
- It's useful to have accessors at block level, so apps don't really have to know
  about the sector structure (and how many blocks there are in a sector).
- There's no way to tell whether a read/write/ didn't work because of auth
  failure. The documentation should be changed to make this point clear.
- Added increment/decrement commands, for atomic increment/decrement of value blocks.

Change-Id: I590feacbcd1443f1be7a86ab046a5b1f33e2e04c
2010-12-17 13:20:32 -08:00
Martijn Coenen
01d159aa2c Need to check ndef before writing ndef.
Regression due to all the (re)connect changes.

Change-Id: I637618f63518965e893a5a59db61002271666fa4
2010-12-16 16:34:56 -08:00
Martijn Coenen
c58c3f1ae2 Implement additional Mifare Ultralight convenience methods.
Change-Id: I8d9dfadb5911b2d11d1ba6dcf1381decbb8386ef
2010-12-15 16:41:38 -06:00
Martijn Coenen
0d27f999f4 Expose reconnect(), to allow applications to reset tag state.
Change-Id: Ib5432e7f6b6aaf6ec1cb06693592cb7c6440a6f8
2010-12-15 16:41:38 -06:00
Martijn Coenen
4049f9d00a Implement multi-tech connect, enfore tech exclusivity.
- The NfcService now allows for connecting to a specific technology;
- The "active" parts of technology classes may not be used at the same time.

Change-Id: Ibb569f51cc6da4f3e24df9d0850c6f49a022b0c2
2010-12-15 16:41:38 -06:00
Martijn Coenen
e3f6336bcf Fixed API for active NDEF reading and NDEF formatting.
- Added getNdefCached() to return the message read at discovery time.
- Fixed format() to check ndef before doing the write:
  libnfc actually requires a checkNdef to be done before writing.

Change-Id: I9b3108299c05539bdef92dd74f62f911fb5a16bf
2010-12-13 09:58:58 -06:00
Jeff Hamilton
641dd62155 First pass at advanced NFC tag dispatching APIs and other cleanup.
Change-Id: I022fcd481274a2f68d93218026e77551cfae8cae
2010-12-10 22:48:16 -06:00
Martijn Coenen
b79173f660 Changed technology close() to reconnect to the tag instead of physical disconnect.
Change-Id: I8935e4aae452adeec472c0b3ff3c77f1400a264e
2010-12-10 22:07:46 -06:00
Martijn Coenen
fc5a3b6cfb Changed transceive on all technologies to "raw", except for Mifare classes.
Change-Id: I3d680e37fec0ab84cdbb70d9fb6fff9527dd76a2
2010-12-10 22:06:35 -06:00
Martijn Coenen
3300e4c3ea Implemented isWritable() to indicate NDEF capability container r/w state.
Change-Id: Ie8bdf490c955e620f5e5029346fbe2e188ea4748
2010-12-10 22:02:09 -06:00
Nick Pelly
50b4d8f643 Make getSystemService(NFC_SERVICE) the NFC entry point.
This gives NFC service a handle to the application context.

Deprecate NfcAdapter.getDefaultAdapter(), it does not provide a context.
Using this method will print a warning, and will later throw an exception
if a method that requires a context is called. No 2.3 API's will fail, but
new API's that do require a context might fail.

Also add helper NfcAdapter.getDefaultAdapter(Context).

Change-Id: I9a6378de4ef4b61ad922f8d53e64e2a1a1d5d60c
2010-12-10 17:12:33 -08:00
Nick Pelly
40ddd4a649 Merge "Implemented getSize() to return max ndef size." into gingerbread 2010-12-07 22:55:21 -08:00
Martijn Coenen
6d9fc7e1ef Implemented getSize() to return max ndef size.
Change-Id: Ia584e8cfa51a4eaef5f03dc436c78a67296c2cae
2010-12-07 22:54:07 -08:00
Martijn Coenen
5289b91c88 Implement ndef formatting.
Change-Id: I6e3e3abdc304bc14d7c93a413e42bf957963e288
2010-12-07 22:30:39 -08:00
Martijn Coenen
72df4ea830 Remove Type X Tags from the top-level API.
Also added an extra to carry the ndef message, so we can have it in multiple
Ndef instances without doing an active read.

Change-Id: I2ecabc24732990c5c9979ee3a001a7fb13da21d9
2010-12-07 13:51:47 -08:00
Jan Brands
65c3f9806e Corrected MIFARE default key set
The all-zero key is not a commonly used key.
Fixed naming

Change-Id: I2fb86079159195c6893ea758e8b0bbda266dc420
2010-12-07 09:27:06 -08:00
Martijn Coenen
9a9706a213 Added missing ndef technology to getTech.
Change-Id: I1f08e140c9bb43a8e894812adbc4d11801637f46
2010-12-06 18:44:12 -08:00
Nick Pelly
e58e8a715b Merge "Added NdefFormatable tag, initial class with supported methods." into gingerbread 2010-12-06 18:41:36 -08:00
Martijn Coenen
39f91ed529 Added NdefFormatable tag, initial class with supported methods.
Change-Id: Ifa358b5e980158d5e8accb9f42fdcfb29ad81e64
2010-12-06 18:38:49 -08:00
Jeff Hamilton
c1576ad627 Update the docs to clarify the ordering constraints.
Change-Id: Ib3932e637a675c875b9ed3482826a150b845a385
2010-12-05 21:50:29 -06:00
Jan Brands
2fe24e3e14 First implementation of MifareUltralight
Change-Id: I77818ddc89b529c17fc41d6c0850688365c6b770
2010-12-03 23:45:03 +01:00
Martijn Coenen
67a337bc51 Fixed technology name typo's.
Change-Id: If39b109cb60c762d50c21f6aaced0a31abb66c40
2010-12-01 14:16:59 +01:00
Martijn Coenen
bc7180bba4 Implement historical bytes / attrib on IsoDep
Change-Id: Ic7afa29515d10fec72ac8f27adc411788ad6f68c
2010-11-29 17:03:35 +01:00
Martijn Coenen
438feb9b3b Provide system code and manufacturer code for Felica tech.
Change-Id: I56d5308ad5fa4998a88e1e0aec51fe301ab99078
2010-11-25 09:40:50 +01:00
Martijn Coenen
1253ebc74a Fixed NfcAdapter init and getTechnology().
- GetTechnology() used a binary search, but the array was linked to another
  array (extras) which was not sorted. So made it linear.
- The tag technologies were instantiated with a null NfcAdapter.

Change-Id: Iae15169a89155c3a5c9f81824f809d6010ebac01
2010-11-24 11:13:57 +01:00
Daniel Tomas
9024564107 Secure Element access implementation
Change-Id: I907e6771ecc5babe895115c3a49288fa2144a187
2010-11-19 22:23:45 -06:00
Jeff Hamilton
6be655c768 Rough first pass at the NFC technology API.
Change-Id: I903ad6bc124bf9a65af788dae45f55d58704ef7b
2010-11-19 20:26:29 -06:00
Jeff Hamilton
4934d3361e Revert "Merge "Remove the My Tag feature." into gingerbread"
This reverts commit ef5694692f, reversing
changes made to 65816a32ee.
2010-11-11 20:42:28 -06:00