diff options
| -rw-r--r-- | core/java/android/nfc/INfcTag.aidl | 1 | ||||
| -rw-r--r-- | core/java/android/nfc/RawTagConnection.java | 14 |
2 files changed, 11 insertions, 4 deletions
diff --git a/core/java/android/nfc/INfcTag.aidl b/core/java/android/nfc/INfcTag.aidl index 2171434..13b97d6 100644 --- a/core/java/android/nfc/INfcTag.aidl +++ b/core/java/android/nfc/INfcTag.aidl @@ -28,6 +28,7 @@ interface INfcTag String getType(int nativeHandle); byte[] getUid(int nativeHandle); boolean isNdef(int nativeHandle); + boolean isPresent(int nativeHandle); byte[] transceive(int nativeHandle, in byte[] data); int getLastError(int nativeHandle); diff --git a/core/java/android/nfc/RawTagConnection.java b/core/java/android/nfc/RawTagConnection.java index 265eb1b..1261db1 100644 --- a/core/java/android/nfc/RawTagConnection.java +++ b/core/java/android/nfc/RawTagConnection.java @@ -95,10 +95,16 @@ public class RawTagConnection { * returns true. */ public boolean isConnected() { - // TODO(nxp): update mIsConnected when tag goes out of range - - // but do not do an active prescence check in - // isConnected() - return mIsConnected; + if (!mIsConnected) { + return false; + } + + try { + return mTagService.isPresent(mTag.mNativeHandle); + } catch (RemoteException e) { + Log.e(TAG, "NFC service died", e); + return false; + } } /** |
