diff options
| author | 2010-12-16 16:35:51 -0800 | |
|---|---|---|
| committer | 2010-12-16 16:35:51 -0800 | |
| commit | 29f9ee973eefea3c68382ed38e69db1f1a396f3f (patch) | |
| tree | 5db4f08b27b9176a8022c82295ad2a64284dffd0 | |
| parent | 0d1e38ef99252cb14e6bcc4b3135021da025330f (diff) | |
| parent | 01d159aa2c6303089269258f3ae047e74df9e2a9 (diff) | |
Merge "Need to check ndef before writing ndef." into gingerbread
| -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 c45c97d28237..cd1224912aba 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); |