diff options
| author | 2020-01-22 01:36:23 +0000 | |
|---|---|---|
| committer | 2020-01-22 01:36:23 +0000 | |
| commit | e5ad71ec99fe13e1e2a7564e86158238e3df8a13 (patch) | |
| tree | 5a6806add73559bbadc085612176aea4ad4a8952 | |
| parent | 01233f33ae175ad62418c5841b715fe104066fc3 (diff) | |
| parent | ead7c0e489e26fbe6bd1a853869912a834b9d9d0 (diff) | |
Merge "Throw IOException on multiple connects." am: 632e515468 am: ead7c0e489
Change-Id: I51690e73f8db042a7457afbcadc8003fe476b100
| -rw-r--r-- | core/java/android/nfc/Tag.java | 10 | ||||
| -rw-r--r-- | core/java/android/nfc/tech/BasicTagTechnology.java | 5 |
2 files changed, 9 insertions, 6 deletions
diff --git a/core/java/android/nfc/Tag.java b/core/java/android/nfc/Tag.java index 8bb2df0bba58..b9e6ff4a5a9e 100644 --- a/core/java/android/nfc/Tag.java +++ b/core/java/android/nfc/Tag.java @@ -455,12 +455,12 @@ public final class Tag implements Parcelable { * * @hide */ - public synchronized void setConnectedTechnology(int technology) { - if (mConnectedTechnology == -1) { - mConnectedTechnology = technology; - } else { - throw new IllegalStateException("Close other technology first!"); + public synchronized boolean setConnectedTechnology(int technology) { + if (mConnectedTechnology != -1) { + return false; } + mConnectedTechnology = technology; + return true; } /** diff --git a/core/java/android/nfc/tech/BasicTagTechnology.java b/core/java/android/nfc/tech/BasicTagTechnology.java index b6b347ca0619..ae468fead7a2 100644 --- a/core/java/android/nfc/tech/BasicTagTechnology.java +++ b/core/java/android/nfc/tech/BasicTagTechnology.java @@ -75,7 +75,10 @@ abstract class BasicTagTechnology implements TagTechnology { if (errorCode == ErrorCodes.SUCCESS) { // Store this in the tag object - mTag.setConnectedTechnology(mSelectedTechnology); + if (!mTag.setConnectedTechnology(mSelectedTechnology)) { + Log.e(TAG, "Close other technology first!"); + throw new IOException("Only one TagTechnology can be connected at a time."); + } mIsConnected = true; } else if (errorCode == ErrorCodes.ERROR_NOT_SUPPORTED) { throw new UnsupportedOperationException("Connecting to " + |