summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2010-12-20 11:33:13 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2010-12-20 11:33:13 -0800
commit198a9452c1f276b67da9f67da77c49d66c432e1f (patch)
treea125135c9dd23dc1a212b36af6a9dfe51c987ba9
parenta4a0e5ee5921557be4d0d521494d061812e9b566 (diff)
parent623baf8edb5301ee412a428a5b25ea38d7b39f91 (diff)
downloadframeworks_base-198a9452c1f276b67da9f67da77c49d66c432e1f.zip
frameworks_base-198a9452c1f276b67da9f67da77c49d66c432e1f.tar.gz
frameworks_base-198a9452c1f276b67da9f67da77c49d66c432e1f.tar.bz2
am 623baf8e: am 29f9ee97: Merge "Need to check ndef before writing ndef." into gingerbread
* commit '623baf8edb5301ee412a428a5b25ea38d7b39f91': Need to check ndef before writing ndef.
-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 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);