diff options
author | Nick Pelly <npelly@google.com> | 2010-12-20 11:29:40 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2010-12-20 11:29:40 -0800 |
commit | 623baf8edb5301ee412a428a5b25ea38d7b39f91 (patch) | |
tree | 7c497e49b83ce9a9908a4a70424b9187861e3f4e /core/java | |
parent | cdd76cf5873ee709d04ffeda6e56c5f15bfa1bba (diff) | |
parent | 29f9ee973eefea3c68382ed38e69db1f1a396f3f (diff) | |
download | frameworks_base-623baf8edb5301ee412a428a5b25ea38d7b39f91.zip frameworks_base-623baf8edb5301ee412a428a5b25ea38d7b39f91.tar.gz frameworks_base-623baf8edb5301ee412a428a5b25ea38d7b39f91.tar.bz2 |
am 29f9ee97: Merge "Need to check ndef before writing ndef." into gingerbread
* commit '29f9ee973eefea3c68382ed38e69db1f1a396f3f':
Need to check ndef before writing ndef.
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/nfc/technology/Ndef.java | 28 |
1 files 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); |