• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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