Commit Graph

239 Commits

Author SHA1 Message Date
Martijn Coenen
df48db3c7c Address HCE API review comments.
Remove AidGroup from public APIs.

Bug: 15089341
Change-Id: Ia8e038a12891abc6f1a8e82dbf30b8952e0b1fd7
2014-05-29 21:10:01 +00:00
Andres Morales
62b25a5bf0 Revert "Adding INfcUnlockSettings and NfcUnlock interface class."
This will be re-added as a Trustlet in a subsequent CL.

This reverts commit 38a7ed05f8.

Change-Id: I5aa36df42a7751f165b4ef184e0cda57e5568b59
2014-05-20 16:59:34 +00:00
Martijn Coenen
2f6f3a0181 HCE/SE foreground support.
Allow apps to tell the OS they prefer a specific
CardEmulation service to handle a transaction
whenever they are in the foreground.

Change-Id: I8489ba6018f62164ed7e3504f31c8d09accf494e
2014-05-06 14:49:57 -07:00
Martijn Coenen
aa1492d1d8 Dynamic AID registration APIs for HCE.
Adds a set of APIs that allows applications
to dynamically register and unregister AID groups
for HCE and Secure Element based services.

Change-Id: I08e9423dff405955cb725c87423c953a7dbe5c72
2014-04-23 20:21:32 +00:00
Martijn Coenen
ae2a35baf4 am 4d328a79: am a43f7cb0: am 1507c18f: am 29e55bef: Merge "NFC: getNdefMessage() should throw exception if no tag in field."
* commit '4d328a79bdee417c1248660b1c33b5cd86dbd814':
  NFC: getNdefMessage() should throw exception if no tag in field.
2014-03-06 16:21:46 +00:00
John Spurlock
a77cf87354 Merge "Tabs -> spaces in frameworks/base." 2014-02-25 19:57:33 +00:00
Martijn Coenen
6924c4ef8d Fix NFC docs breakage.
Change-Id: I680dc7974316c77cb1835b5a81f30e6961ba3c49
2014-02-25 11:51:11 -08:00
John Spurlock
8a985d24ce Tabs -> spaces in frameworks/base.
Change-Id: I5a84e8e93ac99b5ed0212b37bf66efa5e53864be
2014-02-25 09:49:29 -05:00
Martijn Coenen
7fe9fa163c Add an API to manually invoke Android Beam.
Activities can call NfcAdapter.invokeBeam() to
manually invoke the Beam animation. Any NFC tap
is then enough to complete the transaction.

Also, added NdefRecord convenience method for
creating Text records.

Bug: 5134061
Change-Id: Ia9df360d1d7e8451157c85a6d12f2a4eec924960
2014-02-14 10:58:30 -08:00
Mathias Jeppsson
266e0a3871 NFC: getNdefMessage() should throw exception if no tag in field.
According to documentation, an TagLostException should be thrown, if
the tag has been moved out of field when reading NDEF message.

Change-Id: Ib7e485ed442027fdebd5bc7a46101fbca0c88bdb
2014-01-28 15:20:30 +01:00
Andres Morales
3e4b665bc6 Adding accessor for integer tech codes to Tag
Change-Id: I02c272acc9744756677afa8a9d1dca7f1e63ca50
2013-12-16 10:46:36 -08:00
Andres Morales
38a7ed05f8 Adding INfcUnlockSettings and NfcUnlock interface class.
Change-Id: Ie55a5d4bb58c2944952fc84cce32d3573a3a1a22
2013-12-09 14:41:01 -08:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Martijn Coenen
f180f30b0d Add "urn:nfc" shortener.
As defined in the NFC Forum specification
"URI Record Type Definition". For some reason
0x23 wasn't added in the past, but it's present
in the specification.

Change-Id: If4ec2216fd53a31943f6de62aa1c69166f597616
2013-11-14 13:40:07 -08:00
Scott Main
b38ad76a82 additional javadoc for NfcAdapter.ReaderCallback
Change-Id: I3cad8b43d53992bb3d53920abb510456ee72afb5
2013-10-17 11:57:06 -07:00
Martijn Coenen
35bf628852 NFC card emulation API docs.
Bug: 10550319
Change-Id: I3023639d728aa76af89d15e0491b86c7c641648e
2013-10-14 20:58:53 +02:00
Martijn Coenen
eed43391c6 Fix crash in ApduServiceInfo parsing.
Bug: 10949100
Change-Id: I181734074b071179ea5637a070714643508bc64b
2013-09-26 11:20:37 -07:00
Martijn Coenen
807fd04435 Merge "Validate AID format and length." into klp-dev 2013-09-18 17:56:03 +00:00
Martijn Coenen
fca3578773 Validate AID format and length.
Bug: 10817001
Change-Id: I7cb0d4f718c467d2fccb30068f383f8e71a4a39b
2013-09-18 17:26:18 +02:00
Martijn Coenen
b523bfa64d Rename FLAG_READER_NFC_KOVIO to FLAG_READER_NFC_BARCODE.
Bug: 10722206
Change-Id: I8b672cd7b9015e1ec88af96ef1fd0774d20b8d17
2013-09-12 13:44:39 +02:00
Martijn Coenen
58d2065984 Add support for loading banners from HCE services.
Bug: 10262585
Change-Id: I08f06ce92dd9071dc8ad1390ce9a4b877b05827d
2013-09-11 12:31:10 +02:00
Martijn Coenen
51b6322197 Remove legacy HCE APIs.
Bug: 10550349
Change-Id: Ie60942f9551e93bcfb597f7f2a5b9cc9bf21a11a
2013-09-04 14:49:46 -07:00
Martijn Coenen
f48416dede Merge "Reader mode NFC API: move to callback model." into klp-dev 2013-09-04 00:48:20 +00:00
Martijn Coenen
c85fb576b8 Add drawable for Apdu Services, fix build.
Change-Id: I7c138adb60b2efe19377b58b35360cd234628424
2013-09-03 12:24:18 -07:00
Martijn Coenen
fb2f8337f6 NFC: @hide and remove abstract from processCommandApdu().
Replaced by new version with Bundle extras.

Bug: 10550349
Change-Id: If5f284c6d9b14ab32670ebc84881f459813b5b56
2013-09-03 11:40:35 -07:00
Martijn Coenen
5b1e032ea7 Reader mode NFC API: move to callback model.
Using intents for reader mode doesn't work well for 2 reasons:
1) Intents are used to resolve, but in reader mode we already
   know where to resolve to. Additionally, dispatching an intent
   causes additional latency.
2) Using intents with foreground dispatch was tricky; for every
   call to onNewIntent() with a new tag, there was a call to
   onPause(), which effectively disabled reader mode again,
   causing a discovery loop.

Instead, let the app register a callback, and call that when
we discover a new tag. Also, add new flag to disable platform
sounds, and to change the presence check delay.

Bug: 10360259
Change-Id: I8373543d6cf2f7ca73c9b3e42bb8b51e3ac48cac
2013-09-02 20:43:57 -07:00
Martijn Coenen
52246087f4 HCE API review.
Keeping some of the old stuff @hide until all
clients have upgraded.

Bug: 10550349
Change-Id: Id5de7ab74c9b38c179fd20bd4746d95b7df8f033
2013-08-30 11:29:45 -07:00
Martijn Coenen
c3f0044abe Add an API for querying HCE service selection mode.
This allows applications to differentiate between
the case where another app is the default, or the
case where the selection mode is "Ask every time".

Also, parse new requireDeviceUnlock attribute in
ApduServiceInfo.

Bug: 10262585
Change-Id: Icac508fe00054132574731532c05a1138edb24f5
2013-08-29 13:23:03 -07:00
Martijn Coenen
c20ed2ff12 Add NFC reader-mode API.
Allows applications to temporarily force the NFC controller
to only do tag discovery. This will allow Android applications
to read and interact with devices that employ HCE.

Bug: 10360259
Change-Id: I709ead9a26f8e6ae8582cc295d82bd896e7c5bba
2013-08-27 14:32:53 -07:00
Martijn Coenen
583fe9d22b NFC: Allow HostApduService to indicate transaction unhandled.
This will cause the OS to show UI that allows the user to pick
another application that could potentially handle the transaction.

Also, tweak processCommandApdu() method to take a Bundle to be more
future-proof.

Bug: 10262585
Change-Id: If9d060341b472fac0349f539c04b87e85fe79dfb
2013-08-19 11:52:27 -07:00
Martijn Coenen
62c196abd2 NFC: always upper-case parsed AIDs.
Also added activity intent action for Tap&Pay settings.

Change-Id: I5648e1ded3b79a3363899d1cab8aec55842b3e22
2013-08-09 13:43:34 -07:00
Martijn Coenen
38d3bb7696 NFC: Unify ApduServiceInfo for on/off host.
Change-Id: I4f8bb441d7eb564da0486f3e8a1ac08dd18d0dc8
2013-08-07 20:03:03 -07:00
Martijn Coenen
d9b67633f6 Merge "NFC: @hide some APIs, add setDefaultForNextTap API." 2013-08-06 22:46:48 +00:00
Martijn Coenen
d40f43c125 NFC: @hide some APIs, add setDefaultForNextTap API.
Change-Id: I31efe4c96a62e6c3dcb984a885214e6df045c6c6
2013-08-06 15:36:37 -07:00
Elliott Hughes
89a8250e24 am 710f3e2c: am 60ae2617: Merge "If frameworks wants ASCII casing, it should explicity ask for it."
* commit '710f3e2cc6bc2cdc2f2cddb2190823ea31efd52a':
  If frameworks wants ASCII casing, it should explicity ask for it.
2013-08-02 17:58:33 -07:00
Martijn Coenen
a7397883de NFC: Host-based card emulation APIs.
- New INfcCardEmulation interface to allow apps to interface
  with card emulation system.
- New BIND_NFC_SERVICE permission to prevent malicious apps
  from binding to card emulation services.
- ApduServiceInfo is now in the framework.
- Added constants to Settings.Secure for storing defaults.
- Modified XML grammar a bit.

Change-Id: I56b3fa6b42eb5dc132c91c1386ab1e6bac779059
2013-08-02 17:22:53 -07:00
Elliott Hughes
cb64d43062 If frameworks wants ASCII casing, it should explicity ask for it.
http://elliotth.blogspot.com/2012/01/beware-convenience-methods.html

Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Iaab02e718a7be7bda22e626dca05d79bfd2a8fc4
2013-08-02 15:12:32 -07:00
Martijn Coenen
c3178e5f1c Change XML-grammar for (Off)HostApduServices.
AIDs can now carry a category attribute. Clarified that
"OffHostApduService" is not bound to by Android, and may
be extended by offering service interfaces that are not
defined in the platform.

Change-Id: Idd0a3990beb927e8d81366013f53386fb46e3f9f
2013-07-25 17:43:47 -07:00
Martijn Coenen
5eaa8970aa First shot at (host-based) card emulation APIs.
HostApduService: convenience service class for implementing
a service that registers a set of ISO7816-4 AIDs and emulates
the corresponding application inside the service itself.

SeApduService: convenience service class for implementing
a service that registers a set of ISO7816-4 AIDs that reflect
applications installed on an embedded secure element or UICC. Contains
event hooks to allow the service to handle eSE/UICC events that
correspond to those AIDs.

Change-Id: I44191bd4abcbbe4f1fd36a9fd42639fe5c0cf496
2013-07-22 10:20:49 -07:00
Elliott Hughes
a920f25fe5 resolved conflicts for merge of fca0f92e to stage-aosp-master
Change-Id: I4791f0ffa324a313b8390fbde6d8f82f716ecf74
2013-06-28 16:41:19 -07:00
Elliott Hughes
d396a448b2 Switch frameworks/base over from @hidden Charsets to public StandardCharsets.
Bug: 3484927
Change-Id: I5d136d2ee629588538602766a182ae14ce5fc63c
2013-06-28 16:24:48 -07:00
Martijn Coenen
1fa2aff21b Add direct NDEF push API.
Hidden for now. Also, modified callback that is called
from NfcService to pass all data in a single object
(BeamShareData). This avoids having to do multiple IPCs
at touch time.

Bug: 5134061
Change-Id: I235f608cef9935041b33b4b7a6980f109c15576c
2013-03-26 17:07:37 -07:00
Martijn Coenen
7a6dfb2f72 Update NfcBarcode documentation for Kovio.
Change-Id: I4b6a452805c3dd68247dbe5493db14a263729615
2013-03-07 15:04:41 -08:00
Martijn Coenen
2e9f65f978 Merge "Make NfcAdapter states public and fix build." 2013-01-09 12:28:44 -08:00
Martijn Coenen
e55fe4f3bb Make NfcAdapter states public and fix build.
Change-Id: Idb2dd5e524cda5e3c03d4f2689266fa03be4ea13
2013-01-09 12:27:22 -08:00
Martijn Coenen
8a9120f04e Merge "Make NfcAdapter STATE_CHANGED intent action public." 2013-01-09 11:45:15 -08:00
Martijn Coenen
4ba5eaf7f3 Make NfcAdapter STATE_CHANGED intent action public.
Bug: 5141885
Change-Id: Ia357409a51fb45f1739bb37940fa746f94fa9056
2013-01-09 11:41:16 -08:00
Martijn Coenen
1360c555a4 Don't IPC for every onPause() in NfcActivityManager.
The NfcService now contains additional code to make sure
that the registered NDEF callback corresponds to the package
running in the foreground. This allows us to stop calling
the NfcService on every onPause() to register the NDEF callback,
as NfcService itself will now detect that the app is no longer
in the foreground, and won't call the callback.

Bug: 5199662
Change-Id: Ibd0d21f8c7b76346238305a6684967263cb7d7e0
2013-01-07 16:41:15 -08:00
mike wakerly
f74df47fc9 NfcAdapterExtras: expose driver name.
Bug: 7276355
Change-Id: I65597f732c2ccb749f8fc5ef1793bacf5de8b592
2012-10-03 14:14:23 -07:00
Martijn Coenen
f8538594fe Fix build.
Bug: 7222958
Change-Id: I2f9ff988f09be6cd4be49bfb90750a46e63c2c14
2012-09-25 09:31:50 -07:00