From 07e6f616d122496342a5bae51323bb218d88f7f2 Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Fri, 14 Jan 2011 16:26:45 +0100 Subject: [PATCH] Check NDEF before calling makeReadOnly(). Change-Id: Iadbaf5c29821eff78ad487b248af529febcdc4ce --- core/java/android/nfc/technology/Ndef.java | 29 +++++++++++++--------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/core/java/android/nfc/technology/Ndef.java b/core/java/android/nfc/technology/Ndef.java index 1c0afde052d0c..f537941c79c75 100644 --- a/core/java/android/nfc/technology/Ndef.java +++ b/core/java/android/nfc/technology/Ndef.java @@ -221,18 +221,23 @@ public final class Ndef extends BasicTagTechnology { checkConnected(); try { - int errorCode = mTagService.ndefMakeReadOnly(mTag.getServiceHandle()); - switch (errorCode) { - case ErrorCodes.SUCCESS: - return true; - case ErrorCodes.ERROR_IO: - throw new IOException(); - case ErrorCodes.ERROR_INVALID_PARAM: - return false; - default: - // Should not happen - throw new IOException(); - } + if (mTagService.isNdef(mTag.getServiceHandle())) { + int errorCode = mTagService.ndefMakeReadOnly(mTag.getServiceHandle()); + switch (errorCode) { + case ErrorCodes.SUCCESS: + return true; + case ErrorCodes.ERROR_IO: + throw new IOException(); + case ErrorCodes.ERROR_INVALID_PARAM: + return false; + default: + // Should not happen + throw new IOException(); + } + } + else { + throw new IOException("Tag is not ndef"); + } } catch (RemoteException e) { Log.e(TAG, "NFC service dead", e); return false;