1// Signature format: 2.0 2package android.nfc { 3 4 public final class AvailableNfcAntenna implements android.os.Parcelable { 5 ctor public AvailableNfcAntenna(int, int); 6 method public int describeContents(); 7 method public int getLocationX(); 8 method public int getLocationY(); 9 method public void writeToParcel(@NonNull android.os.Parcel, int); 10 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.AvailableNfcAntenna> CREATOR; 11 } 12 13 public class FormatException extends java.lang.Exception { 14 ctor public FormatException(); 15 ctor public FormatException(String); 16 ctor public FormatException(String, Throwable); 17 } 18 19 public final class NdefMessage implements android.os.Parcelable { 20 ctor public NdefMessage(byte[]) throws android.nfc.FormatException; 21 ctor public NdefMessage(android.nfc.NdefRecord, android.nfc.NdefRecord...); 22 ctor public NdefMessage(android.nfc.NdefRecord[]); 23 method public int describeContents(); 24 method public int getByteArrayLength(); 25 method public android.nfc.NdefRecord[] getRecords(); 26 method public byte[] toByteArray(); 27 method public void writeToParcel(android.os.Parcel, int); 28 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.NdefMessage> CREATOR; 29 } 30 31 public final class NdefRecord implements android.os.Parcelable { 32 ctor public NdefRecord(short, byte[], byte[], byte[]); 33 ctor @Deprecated public NdefRecord(byte[]) throws android.nfc.FormatException; 34 method public static android.nfc.NdefRecord createApplicationRecord(String); 35 method public static android.nfc.NdefRecord createExternal(String, String, byte[]); 36 method public static android.nfc.NdefRecord createMime(String, byte[]); 37 method public static android.nfc.NdefRecord createTextRecord(String, String); 38 method public static android.nfc.NdefRecord createUri(android.net.Uri); 39 method public static android.nfc.NdefRecord createUri(String); 40 method public int describeContents(); 41 method public byte[] getId(); 42 method public byte[] getPayload(); 43 method public short getTnf(); 44 method public byte[] getType(); 45 method @Deprecated public byte[] toByteArray(); 46 method public String toMimeType(); 47 method public android.net.Uri toUri(); 48 method public void writeToParcel(android.os.Parcel, int); 49 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.NdefRecord> CREATOR; 50 field public static final byte[] RTD_ALTERNATIVE_CARRIER; 51 field public static final byte[] RTD_HANDOVER_CARRIER; 52 field public static final byte[] RTD_HANDOVER_REQUEST; 53 field public static final byte[] RTD_HANDOVER_SELECT; 54 field public static final byte[] RTD_SMART_POSTER; 55 field public static final byte[] RTD_TEXT; 56 field public static final byte[] RTD_URI; 57 field public static final short TNF_ABSOLUTE_URI = 3; // 0x3 58 field public static final short TNF_EMPTY = 0; // 0x0 59 field public static final short TNF_EXTERNAL_TYPE = 4; // 0x4 60 field public static final short TNF_MIME_MEDIA = 2; // 0x2 61 field public static final short TNF_UNCHANGED = 6; // 0x6 62 field public static final short TNF_UNKNOWN = 5; // 0x5 63 field public static final short TNF_WELL_KNOWN = 1; // 0x1 64 } 65 66 public final class NfcAdapter { 67 method @FlaggedApi("android.nfc.nfc_state_change") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean disable(); 68 method public void disableForegroundDispatch(android.app.Activity); 69 method public void disableReaderMode(android.app.Activity); 70 method @FlaggedApi("android.nfc.nfc_state_change") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enable(); 71 method public void enableForegroundDispatch(android.app.Activity, android.app.PendingIntent, android.content.IntentFilter[], String[][]); 72 method public void enableReaderMode(android.app.Activity, android.nfc.NfcAdapter.ReaderCallback, int, android.os.Bundle); 73 method public static android.nfc.NfcAdapter getDefaultAdapter(android.content.Context); 74 method @Nullable public android.nfc.NfcAntennaInfo getNfcAntennaInfo(); 75 method @FlaggedApi("android.nfc.enable_nfc_charging") @Nullable public android.nfc.WlcListenerDeviceInfo getWlcListenerDeviceInfo(); 76 method public boolean ignore(android.nfc.Tag, int, android.nfc.NfcAdapter.OnTagRemovedListener, android.os.Handler); 77 method public boolean isEnabled(); 78 method public boolean isObserveModeEnabled(); 79 method public boolean isObserveModeSupported(); 80 method @FlaggedApi("com.android.nfc.module.flags.reader_mode_annotations") public boolean isReaderModeAnnotationSupported(); 81 method @FlaggedApi("android.nfc.enable_nfc_reader_option") public boolean isReaderOptionEnabled(); 82 method @FlaggedApi("android.nfc.enable_nfc_reader_option") public boolean isReaderOptionSupported(); 83 method public boolean isSecureNfcEnabled(); 84 method public boolean isSecureNfcSupported(); 85 method @FlaggedApi("android.nfc.nfc_check_tag_intent_preference") public boolean isTagIntentAllowed(); 86 method @FlaggedApi("android.nfc.nfc_check_tag_intent_preference") public boolean isTagIntentAppPreferenceSupported(); 87 method @FlaggedApi("android.nfc.enable_nfc_charging") public boolean isWlcEnabled(); 88 method @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public void resetDiscoveryTechnology(@NonNull android.app.Activity); 89 method @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public void setDiscoveryTechnology(@NonNull android.app.Activity, int, int); 90 method public boolean setObserveModeEnabled(boolean); 91 field public static final String ACTION_ADAPTER_STATE_CHANGED = "android.nfc.action.ADAPTER_STATE_CHANGED"; 92 field @FlaggedApi("android.nfc.nfc_check_tag_intent_preference") public static final String ACTION_CHANGE_TAG_INTENT_PREFERENCE = "android.nfc.action.CHANGE_TAG_INTENT_PREFERENCE"; 93 field public static final String ACTION_NDEF_DISCOVERED = "android.nfc.action.NDEF_DISCOVERED"; 94 field @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public static final String ACTION_PREFERRED_PAYMENT_CHANGED = "android.nfc.action.PREFERRED_PAYMENT_CHANGED"; 95 field public static final String ACTION_TAG_DISCOVERED = "android.nfc.action.TAG_DISCOVERED"; 96 field public static final String ACTION_TECH_DISCOVERED = "android.nfc.action.TECH_DISCOVERED"; 97 field @RequiresPermission(android.Manifest.permission.NFC_TRANSACTION_EVENT) public static final String ACTION_TRANSACTION_DETECTED = "android.nfc.action.TRANSACTION_DETECTED"; 98 field public static final String EXTRA_ADAPTER_STATE = "android.nfc.extra.ADAPTER_STATE"; 99 field public static final String EXTRA_AID = "android.nfc.extra.AID"; 100 field public static final String EXTRA_DATA = "android.nfc.extra.DATA"; 101 field public static final String EXTRA_ID = "android.nfc.extra.ID"; 102 field public static final String EXTRA_NDEF_MESSAGES = "android.nfc.extra.NDEF_MESSAGES"; 103 field public static final String EXTRA_PREFERRED_PAYMENT_CHANGED_REASON = "android.nfc.extra.PREFERRED_PAYMENT_CHANGED_REASON"; 104 field public static final String EXTRA_READER_PRESENCE_CHECK_DELAY = "presence"; 105 field @FlaggedApi("com.android.nfc.module.flags.reader_mode_annotations") public static final String EXTRA_READER_TECH_A_POLLING_LOOP_ANNOTATION = "android.nfc.extra.READER_TECH_A_POLLING_LOOP_ANNOTATION"; 106 field public static final String EXTRA_SECURE_ELEMENT_NAME = "android.nfc.extra.SECURE_ELEMENT_NAME"; 107 field public static final String EXTRA_TAG = "android.nfc.extra.TAG"; 108 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_DISABLE = 0; // 0x0 109 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_KEEP = -2147483648; // 0x80000000 110 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_NFC_PASSIVE_A = 1; // 0x1 111 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_NFC_PASSIVE_B = 2; // 0x2 112 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_NFC_PASSIVE_F = 4; // 0x4 113 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_READER_DISABLE = 0; // 0x0 114 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_READER_KEEP = -2147483648; // 0x80000000 115 field public static final int FLAG_READER_NFC_A = 1; // 0x1 116 field public static final int FLAG_READER_NFC_B = 2; // 0x2 117 field public static final int FLAG_READER_NFC_BARCODE = 16; // 0x10 118 field public static final int FLAG_READER_NFC_F = 4; // 0x4 119 field public static final int FLAG_READER_NFC_V = 8; // 0x8 120 field public static final int FLAG_READER_NO_PLATFORM_SOUNDS = 256; // 0x100 121 field public static final int FLAG_READER_SKIP_NDEF_CHECK = 128; // 0x80 122 field public static final int PREFERRED_PAYMENT_CHANGED = 2; // 0x2 123 field public static final int PREFERRED_PAYMENT_LOADED = 1; // 0x1 124 field public static final int PREFERRED_PAYMENT_UPDATED = 3; // 0x3 125 field public static final int STATE_OFF = 1; // 0x1 126 field public static final int STATE_ON = 3; // 0x3 127 field public static final int STATE_TURNING_OFF = 4; // 0x4 128 field public static final int STATE_TURNING_ON = 2; // 0x2 129 } 130 131 @Deprecated public static interface NfcAdapter.CreateBeamUrisCallback { 132 method @Deprecated public android.net.Uri[] createBeamUris(android.nfc.NfcEvent); 133 } 134 135 @Deprecated public static interface NfcAdapter.CreateNdefMessageCallback { 136 method @Deprecated public android.nfc.NdefMessage createNdefMessage(android.nfc.NfcEvent); 137 } 138 139 @Deprecated public static interface NfcAdapter.OnNdefPushCompleteCallback { 140 method @Deprecated public void onNdefPushComplete(android.nfc.NfcEvent); 141 } 142 143 public static interface NfcAdapter.OnTagRemovedListener { 144 method public void onTagRemoved(); 145 } 146 147 public static interface NfcAdapter.ReaderCallback { 148 method public void onTagDiscovered(android.nfc.Tag); 149 } 150 151 public final class NfcAntennaInfo implements android.os.Parcelable { 152 ctor public NfcAntennaInfo(int, int, boolean, @NonNull java.util.List<android.nfc.AvailableNfcAntenna>); 153 method public int describeContents(); 154 method @NonNull public java.util.List<android.nfc.AvailableNfcAntenna> getAvailableNfcAntennas(); 155 method public int getDeviceHeight(); 156 method public int getDeviceWidth(); 157 method public boolean isDeviceFoldable(); 158 method public void writeToParcel(@NonNull android.os.Parcel, int); 159 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.NfcAntennaInfo> CREATOR; 160 } 161 162 public final class NfcEvent { 163 field public final android.nfc.NfcAdapter nfcAdapter; 164 field public final int peerLlcpMajorVersion; 165 field public final int peerLlcpMinorVersion; 166 } 167 168 public final class NfcManager { 169 method public android.nfc.NfcAdapter getDefaultAdapter(); 170 } 171 172 public final class Tag implements android.os.Parcelable { 173 method public int describeContents(); 174 method public byte[] getId(); 175 method public String[] getTechList(); 176 method public void writeToParcel(android.os.Parcel, int); 177 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.Tag> CREATOR; 178 } 179 180 public class TagLostException extends java.io.IOException { 181 ctor public TagLostException(); 182 ctor public TagLostException(String); 183 } 184 185 @FlaggedApi("android.nfc.enable_nfc_charging") public final class WlcListenerDeviceInfo implements android.os.Parcelable { 186 ctor public WlcListenerDeviceInfo(int, double, double, int); 187 method public int describeContents(); 188 method @FloatRange(from=0.0, to=100.0) public double getBatteryLevel(); 189 method public int getProductId(); 190 method public int getState(); 191 method public double getTemperature(); 192 method public void writeToParcel(@NonNull android.os.Parcel, int); 193 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.WlcListenerDeviceInfo> CREATOR; 194 field public static final int STATE_CONNECTED_CHARGING = 2; // 0x2 195 field public static final int STATE_CONNECTED_DISCHARGING = 3; // 0x3 196 field public static final int STATE_DISCONNECTED = 1; // 0x1 197 } 198 199} 200 201package android.nfc.cardemulation { 202 203 public final class CardEmulation { 204 method public boolean categoryAllowsForegroundPreference(String); 205 method @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public java.util.List<java.lang.String> getAidsForPreferredPaymentService(); 206 method public java.util.List<java.lang.String> getAidsForService(android.content.ComponentName, String); 207 method @FlaggedApi("android.nfc.enable_card_emulation_euicc") public int getDefaultNfcSubscriptionId(); 208 method @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public CharSequence getDescriptionForPreferredPaymentService(); 209 method public static android.nfc.cardemulation.CardEmulation getInstance(android.nfc.NfcAdapter); 210 method @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public String getRouteDestinationForPreferredPaymentService(); 211 method public int getSelectionModeForCategory(String); 212 method public boolean isDefaultServiceForAid(android.content.ComponentName, String); 213 method public boolean isDefaultServiceForCategory(android.content.ComponentName, String); 214 method @FlaggedApi("android.nfc.enable_card_emulation_euicc") public boolean isEuiccSupported(); 215 method public boolean registerAidsForService(android.content.ComponentName, String, java.util.List<java.lang.String>); 216 method @FlaggedApi("android.nfc.nfc_event_listener") public void registerNfcEventCallback(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.cardemulation.CardEmulation.NfcEventCallback); 217 method public boolean registerPollingLoopFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean); 218 method public boolean registerPollingLoopPatternFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean); 219 method public boolean removeAidsForService(android.content.ComponentName, String); 220 method public boolean removePollingLoopFilterForService(@NonNull android.content.ComponentName, @NonNull String); 221 method public boolean removePollingLoopPatternFilterForService(@NonNull android.content.ComponentName, @NonNull String); 222 method @NonNull @RequiresPermission(android.Manifest.permission.NFC) public boolean setOffHostForService(@NonNull android.content.ComponentName, @NonNull String); 223 method public boolean setPreferredService(android.app.Activity, android.content.ComponentName); 224 method public boolean setShouldDefaultToObserveModeForService(@NonNull android.content.ComponentName, boolean); 225 method public boolean supportsAidPrefixRegistration(); 226 method @FlaggedApi("android.nfc.nfc_event_listener") public void unregisterNfcEventCallback(@NonNull android.nfc.cardemulation.CardEmulation.NfcEventCallback); 227 method @NonNull @RequiresPermission(android.Manifest.permission.NFC) public boolean unsetOffHostForService(@NonNull android.content.ComponentName); 228 method public boolean unsetPreferredService(android.app.Activity); 229 field @Deprecated public static final String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT"; 230 field public static final String CATEGORY_OTHER = "other"; 231 field public static final String CATEGORY_PAYMENT = "payment"; 232 field public static final String EXTRA_CATEGORY = "category"; 233 field public static final String EXTRA_SERVICE_COMPONENT = "component"; 234 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_COMMAND_TIMEOUT = 3; // 0x3 235 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_NFC_CRASH_RESTART = 1; // 0x1 236 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_NFC_HARDWARE_ERROR = 2; // 0x2 237 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_UNKNOWN = 0; // 0x0 238 field @FlaggedApi("android.nfc.nfc_associated_role_services") public static final String PROPERTY_ALLOW_SHARED_ROLE_PRIORITY = "android.nfc.cardemulation.PROPERTY_ALLOW_SHARED_ROLE_PRIORITY"; 239 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_DEFAULT = 3; // 0x3 240 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_DH = 0; // 0x0 241 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_ESE = 1; // 0x1 242 field @FlaggedApi("com.android.nfc.module.flags.oem_extension_25q4") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_NDEF_NFCEE = 4; // 0x4 243 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_UICC = 2; // 0x2 244 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_UNSET = -1; // 0xffffffff 245 field public static final int SELECTION_MODE_ALWAYS_ASK = 1; // 0x1 246 field public static final int SELECTION_MODE_ASK_IF_CONFLICT = 2; // 0x2 247 field public static final int SELECTION_MODE_PREFER_DEFAULT = 0; // 0x0 248 } 249 250 @FlaggedApi("android.nfc.nfc_event_listener") public static interface CardEmulation.NfcEventCallback { 251 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidConflictOccurred(@NonNull String); 252 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidNotRouted(@NonNull String); 253 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onInternalErrorReported(int); 254 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onNfcStateChanged(int); 255 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onObserveModeStateChanged(boolean); 256 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onPreferredServiceChanged(boolean); 257 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onRemoteFieldChanged(boolean); 258 } 259 260 public abstract class HostApduService extends android.app.Service { 261 ctor public HostApduService(); 262 method public final void notifyUnhandled(); 263 method public final android.os.IBinder onBind(android.content.Intent); 264 method public abstract void onDeactivated(int); 265 method public abstract byte[] processCommandApdu(byte[], android.os.Bundle); 266 method public void processPollingFrames(@NonNull java.util.List<android.nfc.cardemulation.PollingFrame>); 267 method public final void sendResponseApdu(byte[]); 268 field public static final int DEACTIVATION_DESELECTED = 1; // 0x1 269 field public static final int DEACTIVATION_LINK_LOSS = 0; // 0x0 270 field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_APDU_SERVICE"; 271 field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.host_apdu_service"; 272 } 273 274 public abstract class HostNfcFService extends android.app.Service { 275 ctor public HostNfcFService(); 276 method public final android.os.IBinder onBind(android.content.Intent); 277 method public abstract void onDeactivated(int); 278 method public abstract byte[] processNfcFPacket(byte[], android.os.Bundle); 279 method public final void sendResponsePacket(byte[]); 280 field public static final int DEACTIVATION_LINK_LOSS = 0; // 0x0 281 field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_NFCF_SERVICE"; 282 field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.host_nfcf_service"; 283 } 284 285 public final class NfcFCardEmulation { 286 method public boolean disableService(android.app.Activity) throws java.lang.RuntimeException; 287 method public boolean enableService(android.app.Activity, android.content.ComponentName) throws java.lang.RuntimeException; 288 method public static android.nfc.cardemulation.NfcFCardEmulation getInstance(android.nfc.NfcAdapter); 289 method public String getNfcid2ForService(android.content.ComponentName) throws java.lang.RuntimeException; 290 method public String getSystemCodeForService(android.content.ComponentName) throws java.lang.RuntimeException; 291 method public boolean registerSystemCodeForService(android.content.ComponentName, String) throws java.lang.RuntimeException; 292 method public boolean setNfcid2ForService(android.content.ComponentName, String) throws java.lang.RuntimeException; 293 method public boolean unregisterSystemCodeForService(android.content.ComponentName) throws java.lang.RuntimeException; 294 } 295 296 public abstract class OffHostApduService extends android.app.Service { 297 ctor public OffHostApduService(); 298 field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"; 299 field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.off_host_apdu_service"; 300 } 301 302 public final class PollingFrame implements android.os.Parcelable { 303 method public int describeContents(); 304 method @NonNull public byte[] getData(); 305 method public long getTimestamp(); 306 method public boolean getTriggeredAutoTransact(); 307 method public int getType(); 308 method public int getVendorSpecificGain(); 309 method public void writeToParcel(@NonNull android.os.Parcel, int); 310 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.PollingFrame> CREATOR; 311 field public static final int POLLING_LOOP_TYPE_A = 65; // 0x41 312 field public static final int POLLING_LOOP_TYPE_B = 66; // 0x42 313 field public static final int POLLING_LOOP_TYPE_F = 70; // 0x46 314 field public static final int POLLING_LOOP_TYPE_OFF = 88; // 0x58 315 field public static final int POLLING_LOOP_TYPE_ON = 79; // 0x4f 316 field public static final int POLLING_LOOP_TYPE_UNKNOWN = 85; // 0x55 317 } 318 319} 320 321package android.nfc.tech { 322 323 public final class IsoDep implements android.nfc.tech.TagTechnology { 324 method public void close() throws java.io.IOException; 325 method public void connect() throws java.io.IOException; 326 method public static android.nfc.tech.IsoDep get(android.nfc.Tag); 327 method public byte[] getHiLayerResponse(); 328 method public byte[] getHistoricalBytes(); 329 method public int getMaxTransceiveLength(); 330 method public android.nfc.Tag getTag(); 331 method public int getTimeout(); 332 method public boolean isConnected(); 333 method public boolean isExtendedLengthApduSupported(); 334 method public void setTimeout(int); 335 method public byte[] transceive(byte[]) throws java.io.IOException; 336 } 337 338 public final class MifareClassic implements android.nfc.tech.TagTechnology { 339 method public boolean authenticateSectorWithKeyA(int, byte[]) throws java.io.IOException; 340 method public boolean authenticateSectorWithKeyB(int, byte[]) throws java.io.IOException; 341 method public int blockToSector(int); 342 method public void close() throws java.io.IOException; 343 method public void connect() throws java.io.IOException; 344 method public void decrement(int, int) throws java.io.IOException; 345 method public static android.nfc.tech.MifareClassic get(android.nfc.Tag); 346 method public int getBlockCount(); 347 method public int getBlockCountInSector(int); 348 method public int getMaxTransceiveLength(); 349 method public int getSectorCount(); 350 method public int getSize(); 351 method public android.nfc.Tag getTag(); 352 method public int getTimeout(); 353 method public int getType(); 354 method public void increment(int, int) throws java.io.IOException; 355 method public boolean isConnected(); 356 method public byte[] readBlock(int) throws java.io.IOException; 357 method public void restore(int) throws java.io.IOException; 358 method public int sectorToBlock(int); 359 method public void setTimeout(int); 360 method public byte[] transceive(byte[]) throws java.io.IOException; 361 method public void transfer(int) throws java.io.IOException; 362 method public void writeBlock(int, byte[]) throws java.io.IOException; 363 field public static final int BLOCK_SIZE = 16; // 0x10 364 field public static final byte[] KEY_DEFAULT; 365 field public static final byte[] KEY_MIFARE_APPLICATION_DIRECTORY; 366 field public static final byte[] KEY_NFC_FORUM; 367 field public static final int SIZE_1K = 1024; // 0x400 368 field public static final int SIZE_2K = 2048; // 0x800 369 field public static final int SIZE_4K = 4096; // 0x1000 370 field public static final int SIZE_MINI = 320; // 0x140 371 field public static final int TYPE_CLASSIC = 0; // 0x0 372 field public static final int TYPE_PLUS = 1; // 0x1 373 field public static final int TYPE_PRO = 2; // 0x2 374 field public static final int TYPE_UNKNOWN = -1; // 0xffffffff 375 } 376 377 public final class MifareUltralight implements android.nfc.tech.TagTechnology { 378 method public void close() throws java.io.IOException; 379 method public void connect() throws java.io.IOException; 380 method public static android.nfc.tech.MifareUltralight get(android.nfc.Tag); 381 method public int getMaxTransceiveLength(); 382 method public android.nfc.Tag getTag(); 383 method public int getTimeout(); 384 method public int getType(); 385 method public boolean isConnected(); 386 method public byte[] readPages(int) throws java.io.IOException; 387 method public void setTimeout(int); 388 method public byte[] transceive(byte[]) throws java.io.IOException; 389 method public void writePage(int, byte[]) throws java.io.IOException; 390 field public static final int PAGE_SIZE = 4; // 0x4 391 field public static final int TYPE_ULTRALIGHT = 1; // 0x1 392 field public static final int TYPE_ULTRALIGHT_C = 2; // 0x2 393 field public static final int TYPE_UNKNOWN = -1; // 0xffffffff 394 } 395 396 public final class Ndef implements android.nfc.tech.TagTechnology { 397 method public boolean canMakeReadOnly(); 398 method public void close() throws java.io.IOException; 399 method public void connect() throws java.io.IOException; 400 method public static android.nfc.tech.Ndef get(android.nfc.Tag); 401 method public android.nfc.NdefMessage getCachedNdefMessage(); 402 method public int getMaxSize(); 403 method public android.nfc.NdefMessage getNdefMessage() throws android.nfc.FormatException, java.io.IOException; 404 method public android.nfc.Tag getTag(); 405 method public String getType(); 406 method public boolean isConnected(); 407 method public boolean isWritable(); 408 method public boolean makeReadOnly() throws java.io.IOException; 409 method public void writeNdefMessage(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException; 410 field public static final String MIFARE_CLASSIC = "com.nxp.ndef.mifareclassic"; 411 field public static final String NFC_FORUM_TYPE_1 = "org.nfcforum.ndef.type1"; 412 field public static final String NFC_FORUM_TYPE_2 = "org.nfcforum.ndef.type2"; 413 field public static final String NFC_FORUM_TYPE_3 = "org.nfcforum.ndef.type3"; 414 field public static final String NFC_FORUM_TYPE_4 = "org.nfcforum.ndef.type4"; 415 } 416 417 public final class NdefFormatable implements android.nfc.tech.TagTechnology { 418 method public void close() throws java.io.IOException; 419 method public void connect() throws java.io.IOException; 420 method public void format(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException; 421 method public void formatReadOnly(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException; 422 method public static android.nfc.tech.NdefFormatable get(android.nfc.Tag); 423 method public android.nfc.Tag getTag(); 424 method public boolean isConnected(); 425 } 426 427 public final class NfcA implements android.nfc.tech.TagTechnology { 428 method public void close() throws java.io.IOException; 429 method public void connect() throws java.io.IOException; 430 method public static android.nfc.tech.NfcA get(android.nfc.Tag); 431 method public byte[] getAtqa(); 432 method public int getMaxTransceiveLength(); 433 method public short getSak(); 434 method public android.nfc.Tag getTag(); 435 method public int getTimeout(); 436 method public boolean isConnected(); 437 method public void setTimeout(int); 438 method public byte[] transceive(byte[]) throws java.io.IOException; 439 } 440 441 public final class NfcB implements android.nfc.tech.TagTechnology { 442 method public void close() throws java.io.IOException; 443 method public void connect() throws java.io.IOException; 444 method public static android.nfc.tech.NfcB get(android.nfc.Tag); 445 method public byte[] getApplicationData(); 446 method public int getMaxTransceiveLength(); 447 method public byte[] getProtocolInfo(); 448 method public android.nfc.Tag getTag(); 449 method public boolean isConnected(); 450 method public byte[] transceive(byte[]) throws java.io.IOException; 451 } 452 453 public final class NfcBarcode implements android.nfc.tech.TagTechnology { 454 method public void close() throws java.io.IOException; 455 method public void connect() throws java.io.IOException; 456 method public static android.nfc.tech.NfcBarcode get(android.nfc.Tag); 457 method public byte[] getBarcode(); 458 method public android.nfc.Tag getTag(); 459 method public int getType(); 460 method public boolean isConnected(); 461 field public static final int TYPE_KOVIO = 1; // 0x1 462 field public static final int TYPE_UNKNOWN = -1; // 0xffffffff 463 } 464 465 public final class NfcF implements android.nfc.tech.TagTechnology { 466 method public void close() throws java.io.IOException; 467 method public void connect() throws java.io.IOException; 468 method public static android.nfc.tech.NfcF get(android.nfc.Tag); 469 method public byte[] getManufacturer(); 470 method public int getMaxTransceiveLength(); 471 method public byte[] getSystemCode(); 472 method public android.nfc.Tag getTag(); 473 method public int getTimeout(); 474 method public boolean isConnected(); 475 method public void setTimeout(int); 476 method public byte[] transceive(byte[]) throws java.io.IOException; 477 } 478 479 public final class NfcV implements android.nfc.tech.TagTechnology { 480 method public void close() throws java.io.IOException; 481 method public void connect() throws java.io.IOException; 482 method public static android.nfc.tech.NfcV get(android.nfc.Tag); 483 method public byte getDsfId(); 484 method public int getMaxTransceiveLength(); 485 method public byte getResponseFlags(); 486 method public android.nfc.Tag getTag(); 487 method public boolean isConnected(); 488 method public byte[] transceive(byte[]) throws java.io.IOException; 489 } 490 491 public interface TagTechnology extends java.io.Closeable { 492 method public void connect() throws java.io.IOException; 493 method public android.nfc.Tag getTag(); 494 method public boolean isConnected(); 495 } 496 497} 498 499