Commit Graph

181 Commits

Author SHA1 Message Date
Sunil Jogi
3bba8d0457 Added NFC disable during phone shutdown
NFC was not disabled/deinitialized when phone shutdown. This patch
add NFC disable on phone shutdown which can complete any pending
NFC transaction before phone shutdown.

Change-Id: Id1e604be7c34adec8623a1e526d8ff99e18bf74b
2012-04-20 12:11:57 -07:00
Martijn Coenen
20e8dd9f9e Unhide new Beam push APIs.
Also added support for multiple Uris, removed mimeType argument.

Change-Id: Iad2c4d0e36a174080d7bc9c9c8ab893f90231d02
2012-04-12 16:37:18 -07:00
Martijn Coenen
5b4a57973c Merge "Make sure initial activity state is correct." 2012-04-05 11:17:03 -07:00
Martijn Coenen
20fe5378d7 Make sure initial activity state is correct.
Change-Id: Ic6199b42e59afa06a0f38f866e2924b84cd234b3
2012-04-05 11:10:29 -07:00
Martijn Coenen
d9966c4c21 Merge "Patch to support MIFARE with SAK 0x01" 2012-04-05 09:37:11 -07:00
Nick Pelly
1d7e906233 First cut at Bluetooth Beam
Change-Id: I37e5759515ff8779095b6d8adf5ad9c456fa8529
2012-04-04 14:08:23 -07:00
Martijn Coenen
30bd284cca Merge "Add API for querying extended length APDU support." 2012-04-04 11:19:08 -07:00
Martijn Coenen
854e077555 Document "disable default Beam" meta-data entry.
Change-Id: Icaa767ee37fcca08b1ff5143eb94cf8e66be840c
2012-04-04 10:48:04 -07:00
Martijn Coenen
fa98cf0573 Add API for querying extended length APDU support.
Bug: 5813943
Change-Id: Iffb415f318e095bde9ed6677b22613d210f8a39c
2012-04-04 10:43:06 -07:00
Sunil Jogi
72677c98bd Patch to support MIFARE with SAK 0x01
Change-Id: Ic30c083bb43b37f90beefc0ff165ba2713635a7f
2012-04-02 10:37:55 -07:00
Martijn Coenen
5eeee5e0bb Merge "Fix permission documentation." 2012-03-30 09:43:44 -07:00
Martijn Coenen
6c65344fcf Fix permission documentation.
It was incorrect in one case. Also removed obsolete
interface method.

Change-Id: I211fb57e3504e06ff09cf31857c89e2b0e93d679
2012-03-29 15:59:31 -07:00
Martijn Coenen
47ece23651 Merge "Fix NDEF documentation to indicate the message may be null." 2012-03-29 13:25:55 -07:00
Martijn Coenen
a032783241 Fix NDEF documentation to indicate the message may be null.
The current NFC stack formats tags to the INITIALIZED state
as defined by NFC forum; in that state the tag has the
NDEF Capability Container, but does not contain any message
yet.

Tags in that state (correctly) return the NDEF technology,
but the documentation does not specify that the message
may be null.

Also, get rid of buggy getLastErrorCode and use
(cached) presence check value to determine if tag was
lost during read.

Change-Id: If4293428093024ba9cda5dd7c9979b8b06353234
2012-03-29 11:24:15 -07:00
Martijn Coenen
0c1c1eb1c8 Merge "Allow formatting a tag as NDEF without a message." 2012-03-29 10:56:49 -07:00
Martijn Coenen
2976da0305 Allow formatting a tag as NDEF without a message.
Change-Id: I53a219eec17450b2d0ddc42556f0b930d9b34615
2012-03-29 10:09:19 -07:00
Nick Pelly
8ce7a27770 Use Application#registerLifecycleEvents() instead of a Fragment for Beam.
Fragments don't work as desired if called after life-cycle events
such as onDestory() or onSaveInstanceState().

The new approach doesn't work after onDestroy() either, but we can more
easily detect this now. For pre-JB apps, we will log an error, and for
JB and onwards we will throw.

Update documentation to make these rules clear, and to encourage
the use of a single Activity per API call, and to make the call
in onCreate().

Bug: 5199662
Bug: 5994691
Bug: 6034901
Bug: 6125297

Change-Id: Ib0dde6abfa44cd56c7ddc13ba0ad0e83bbe30058
2012-03-29 09:52:32 -07:00
Martijn Coenen
188cddb1d8 Hidden API for setting p2p NFC modes.
Change-Id: I406bab36b441cf99b5b45f51701dbcbab588a9b0
2012-03-01 15:23:01 -08:00
Nick Pelly
d3cb80d2af Fix doc bug.
Change-Id: Ib7361abb0461d4295e889c505dd45e3a40193451
2012-01-27 11:03:05 -08:00
Nick Pelly
1f5badc1cb Add NdefMessage.getByteLength(), and more minor fixes:
Remove NdefMessage from dispatch(). It's already in the Tag.
/*package*/ cleanup
Fix sitemap after removal of NFCDemo

Change-Id: Ie1f6d9ea98144aa97f56bb709a33f5d0ef916e8b
2012-01-26 14:21:19 -08:00
Nick Pelly
c97a552023 Improve NDEF API's
o Add NdefRecord.toMimeType()
  Maps the record to a MIME type
o Add NdefRecord.toUri()
  Maps the record to a URI
o Add hidden NfcAdapter.dispatch()
  Helps test the dispatch path.
o Modify createMime(), createUri() and createExternal():
  Do not try and strictly follow RFC requirements for URI or MIME content
  types. This just leads to heartbreak - the RFC requirements are too strict.
  For example RFC1341 forbids the use of '.' in a MIME type, however this is in
  common use in types such as "application/vnd.companyname". I think the best
  approach is to only remove 'obvious' whitespace issues, and to convert
  uppercase to lowercase as per Android guidelines.

Change-Id: Id686f5f3b05b2dceafad48e1cfcbdb2b3890b854
2012-01-25 13:17:19 -08:00
Martijn Coenen
6b5862d3b4 Remove LlcpPacket from public namespace.
This is a left-over, unused by the public API's.

Change-Id: I3ccccd58a6c52caeb476a6972126eb034a0ff917
2012-01-13 13:31:22 -08:00
Joe Fernandez
2b07267753 am 201469f5: am bb7f590a: Merge "docs: Add developer guide cross-references, Project ACRE, round 4" into ics-mr1
* commit '201469f54522436be79d4d6665721049bfc74320':
  docs: Add developer guide cross-references, Project ACRE, round 4
2011-12-22 15:59:34 -08:00
Joe Fernandez
3aef8e1d1b docs: Add developer guide cross-references, Project ACRE, round 4
Change-Id: I1b43414aaec8ea217b39a0d780c80a25409d0991
2011-12-22 15:08:23 -08:00
Nick Pelly
eca6d909f7 Merge "Rewrite NDEF parsing in Java, clean-up API." 2011-12-19 15:53:10 -08:00
Nick Pelly
a356bf1cd8 Rewrite NDEF parsing in Java, clean-up API.
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
2011-12-19 15:48:35 -08:00
Martijn Coenen
23fc93a7c1 Fix NPE on mock NDEF tech operations.
Change-Id: Ib67bd03b6275fdb86a5d6dedc6c7e4fed07ef8b0
2011-12-15 10:28:52 -08:00
Nick Pelly
cee040eb27 Merge "Throw a nicer error message when using an invalid context to create Nfc" 2011-11-21 17:31:45 -08:00
Nick Pelly
b04cce0eb5 Throw a nicer error message when using an invalid context to create Nfc
This can happen when using getContext() instead of getTargetContext()
in an InstrumentationTestCase.

Bug: 5644274
Change-Id: I020a637c271e25bcf25ae2927fd878001d5fea0a
2011-11-21 17:09:31 -08:00
Nick Pelly
f955d057dd am c6a0277b: am 63b7360e: Merge "Fix NPE on devices that don\'t have NFC." into ics-mr1
* commit 'c6a0277bca29359ec1aee123495065982d2eea7a':
  Fix NPE on devices that don't have NFC.
2011-11-17 15:12:56 -08:00
Nick Pelly
a5193b24c1 Fix NPE on devices that don't have NFC.
We should return null instead of NPE.

Bug: 5622939
Change-Id: I802f4a99ea9f5e73453d5ea30da4e1d9fa279b9c
2011-11-16 16:49:01 -08:00
Nick Pelly
34059a9125 am 4780228f: am 48b651cb: Merge "Changes for access control." into ics-mr1
* commit '4780228fb2476304e29ddf9a118c460ac4eb96ee':
  Changes for access control.
2011-11-11 13:59:09 -08:00
Jeff Hamilton
bb951c8939 Changes for access control.
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
2011-11-11 08:55:26 -08:00
Martijn Coenen
0946fe5be3 Revert "Remove deprecated (hidden) enableForegroundNdefPush API's." (DO NOT MERGE).
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
2011-11-10 13:22:27 -08:00
Martijn Coenen
579117036b am b288f993: am 1eca250b: Merge "Fix disableForegroundNdefPush crash." into ics-mr0
* commit 'b288f99334348a21ffb465b37a4522998b452410':
  Fix disableForegroundNdefPush crash.
2011-11-01 21:59:16 +00:00
Martijn Coenen
b288f99334 am 1eca250b: Merge "Fix disableForegroundNdefPush crash." into ics-mr0
* commit '1eca250b9dad45893fead128539f112cbc513496':
  Fix disableForegroundNdefPush crash.
2011-10-31 22:54:43 +00:00
Martijn Coenen
deb0f20c3d Fix disableForegroundNdefPush crash.
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
2011-10-31 15:42:13 -07:00
Nick Pelly
cccf01d3e2 API Change: add isNdefPushEnabled() & ACTION_NFC_SETTINGS.
Modify isNdefPushEnabled() semantics slightly - true only if isNfcEnabled && NDEF push enabled.

Fix up docs.

Change-Id: Icd2df9c636ecf2d8274851bbda423f2eae7bac5f
2011-10-31 14:49:40 -07:00
Martijn Coenen
fafc43b349 am 202b38cb: Merge "Remove NfcFragment from activity when no longer sharing." into ics-mr0
* commit '202b38cb71d123e4ebc8741643e84fa455ecd002':
  Remove NfcFragment from activity when no longer sharing.
2011-10-14 13:00:45 -07:00
Martijn Coenen
2ec83936a1 Remove NfcFragment from activity when no longer sharing.
This fixes scenarios where the same activity sets, unsets
and re-sets an NdefMessage and/or callback.

Bug: 5454848
Change-Id: I5ed98047b9cfe90d2f48656d978f2d08bb4bf0cc
2011-10-14 10:01:25 -07:00
Nick Pelly
79425fd600 Merge "Remove deprecated (and hidden) enableForegroundNdefPush callback API's." 2011-10-11 12:39:46 -07:00
Scott Main
2d68a6ba3c docs: mix of BT and NFC javadoc updates
Add Health profile to various discussions about profiles
Add descriptions to NFC interfaces, tweak some desciptions, and fix some broken links

Change-Id: Ib89434c78a4ad60b4358dca9a6c335451d1c4125
2011-09-27 14:04:48 -07:00
Nick Pelly
562dfff65a Remove deprecated (and hidden) enableForegroundNdefPush callback API's.
This were just left in until youtube and maps pre-builts were updated.

Change-Id: I41d3ccb5c17f04be62c2ac854355fb6e66785176
2011-09-23 14:59:07 -07:00
Martijn Coenen
0c8d57d124 Merge "Fix Activity ref-leak in NFC dispatch API." 2011-09-02 12:50:27 -07:00
Martijn Coenen
3433a8ae5a Fix Activity ref-leak in NFC dispatch API.
Change-Id: I7b1ee6927747b12eb94cfd6ece40c2c73003f07f
2011-09-01 19:19:29 -07:00
Nick Pelly
82328bfd40 NFC API updates.
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
2011-08-30 21:16:32 -07:00
Nick Pelly
e432de8493 Merge "Improve NDEF push API" 2011-08-26 17:31:02 -07:00
Nick Pelly
c84c89a6ca Improve NDEF push API
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
2011-08-26 17:28:45 -07:00
Martijn Coenen
faca12adc6 Add getMaxTransceiveLength() API.
Also moved canMakeReadOnly() down in the stack, and
cleaned up TransceiveResult.

Change-Id: I85576c52478ab79f0726606659b0c17d00b222e6
2011-08-26 16:30:58 -07:00
Nick Pelly
8d32a01bd2 Add NFC to airplane mode
NFC now observes airplanes mode, and is by default toggleable in airplane mode.

Change-Id: I5f19d35422c9eb1cffb0b5e0631b3f3c5eeaedcf
2011-08-09 16:31:46 -07:00