summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/nfc/INfcTag.aidl1
-rw-r--r--core/java/android/nfc/RawTagConnection.java14
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;
+ }
}
/**