summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Nick Pelly <npelly@google.com> 2010-12-16 16:35:51 -0800
committer Android (Google) Code Review <android-gerrit@google.com> 2010-12-16 16:35:51 -0800
commit29f9ee973eefea3c68382ed38e69db1f1a396f3f (patch)
tree5db4f08b27b9176a8022c82295ad2a64284dffd0
parent0d1e38ef99252cb14e6bcc4b3135021da025330f (diff)
parent01d159aa2c6303089269258f3ae047e74df9e2a9 (diff)
Merge "Need to check ndef before writing ndef." into gingerbread
-rw-r--r--core/java/android/nfc/technology/Ndef.java28
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);