summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorNick Pelly <npelly@google.com>2010-12-20 11:29:40 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2010-12-20 11:29:40 -0800
commit623baf8edb5301ee412a428a5b25ea38d7b39f91 (patch)
tree7c497e49b83ce9a9908a4a70424b9187861e3f4e /core/java
parentcdd76cf5873ee709d04ffeda6e56c5f15bfa1bba (diff)
parent29f9ee973eefea3c68382ed38e69db1f1a396f3f (diff)
downloadframeworks_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.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);