From 01d159aa2c6303089269258f3ae047e74df9e2a9 Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Thu, 16 Dec 2010 22:39:20 +0100 Subject: Need to check ndef before writing ndef. Regression due to all the (re)connect changes. Change-Id: I637618f63518965e893a5a59db61002271666fa4 --- core/java/android/nfc/technology/Ndef.java | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/core/java/android/nfc/technology/Ndef.java b/core/java/android/nfc/technology/Ndef.java index c45c97d..cd12249 100644 --- a/core/java/android/nfc/technology/Ndef.java +++ b/core/java/android/nfc/technology/Ndef.java @@ -148,17 +148,23 @@ public final class Ndef extends BasicTagTechnology { checkConnected(); try { - int errorCode = mTagService.ndefWrite(mTag.getServiceHandle(), msg); - switch (errorCode) { - case ErrorCodes.SUCCESS: - break; - case ErrorCodes.ERROR_IO: - throw new IOException(); - case ErrorCodes.ERROR_INVALID_PARAM: - throw new FormatException(); - default: - // Should not happen - throw new IOException(); + int serviceHandle = mTag.getServiceHandle(); + if (mTagService.isNdef(serviceHandle)) { + int errorCode = mTagService.ndefWrite(serviceHandle, msg); + switch (errorCode) { + case ErrorCodes.SUCCESS: + break; + case ErrorCodes.ERROR_IO: + throw new IOException(); + case ErrorCodes.ERROR_INVALID_PARAM: + throw new FormatException(); + default: + // Should not happen + throw new IOException(); + } + } + else { + throw new IOException("Tag is not ndef"); } } catch (RemoteException e) { attemptDeadServiceRecovery(e); -- cgit v1.1