blob: 2aa73db0620474704e0f74a8e2c5e6b9ebf102ce [file] [log] [blame]
Roshan Pius354b10b2023-11-14 14:30:26 -08001// Signature format: 2.0
Roshan Piusb5ff8cf2023-11-13 14:29:09 -08002package 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 {
ziyiwf561b862024-05-01 23:15:05 +000067 method @FlaggedApi("android.nfc.nfc_state_change") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean disable();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080068 method public void disableForegroundDispatch(android.app.Activity);
69 method public void disableReaderMode(android.app.Activity);
ziyiwf561b862024-05-01 23:15:05 +000070 method @FlaggedApi("android.nfc.nfc_state_change") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enable();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080071 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();
Jack Yudc872e02024-01-09 09:40:40 +000075 method @FlaggedApi("android.nfc.enable_nfc_charging") @Nullable public android.nfc.WlcListenerDeviceInfo getWlcListenerDeviceInfo();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080076 method public boolean ignore(android.nfc.Tag, int, android.nfc.NfcAdapter.OnTagRemovedListener, android.os.Handler);
77 method public boolean isEnabled();
Brad Lasseyee03676a2024-01-27 14:29:51 -050078 method @FlaggedApi("android.nfc.nfc_observe_mode") public boolean isObserveModeEnabled();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080079 method @FlaggedApi("android.nfc.nfc_observe_mode") public boolean isObserveModeSupported();
80 method @FlaggedApi("android.nfc.enable_nfc_reader_option") public boolean isReaderOptionEnabled();
81 method @FlaggedApi("android.nfc.enable_nfc_reader_option") public boolean isReaderOptionSupported();
82 method public boolean isSecureNfcEnabled();
83 method public boolean isSecureNfcSupported();
George Change504d3d2024-10-28 09:38:14 +000084 method @FlaggedApi("android.nfc.nfc_check_tag_intent_preference") public boolean isTagIntentAllowed();
85 method @FlaggedApi("android.nfc.nfc_check_tag_intent_preference") public boolean isTagIntentAppPreferenceSupported();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080086 method @FlaggedApi("android.nfc.enable_nfc_charging") public boolean isWlcEnabled();
87 method @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public void resetDiscoveryTechnology(@NonNull android.app.Activity);
88 method @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public void setDiscoveryTechnology(@NonNull android.app.Activity, int, int);
Brad Lassey82abaf12024-02-21 00:06:16 -050089 method @FlaggedApi("android.nfc.nfc_observe_mode") public boolean setObserveModeEnabled(boolean);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080090 field public static final String ACTION_ADAPTER_STATE_CHANGED = "android.nfc.action.ADAPTER_STATE_CHANGED";
George Change504d3d2024-10-28 09:38:14 +000091 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";
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080092 field public static final String ACTION_NDEF_DISCOVERED = "android.nfc.action.NDEF_DISCOVERED";
93 field @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public static final String ACTION_PREFERRED_PAYMENT_CHANGED = "android.nfc.action.PREFERRED_PAYMENT_CHANGED";
94 field public static final String ACTION_TAG_DISCOVERED = "android.nfc.action.TAG_DISCOVERED";
95 field public static final String ACTION_TECH_DISCOVERED = "android.nfc.action.TECH_DISCOVERED";
96 field @RequiresPermission(android.Manifest.permission.NFC_TRANSACTION_EVENT) public static final String ACTION_TRANSACTION_DETECTED = "android.nfc.action.TRANSACTION_DETECTED";
97 field public static final String EXTRA_ADAPTER_STATE = "android.nfc.extra.ADAPTER_STATE";
98 field public static final String EXTRA_AID = "android.nfc.extra.AID";
99 field public static final String EXTRA_DATA = "android.nfc.extra.DATA";
100 field public static final String EXTRA_ID = "android.nfc.extra.ID";
101 field public static final String EXTRA_NDEF_MESSAGES = "android.nfc.extra.NDEF_MESSAGES";
102 field public static final String EXTRA_PREFERRED_PAYMENT_CHANGED_REASON = "android.nfc.extra.PREFERRED_PAYMENT_CHANGED_REASON";
103 field public static final String EXTRA_READER_PRESENCE_CHECK_DELAY = "presence";
104 field public static final String EXTRA_SECURE_ELEMENT_NAME = "android.nfc.extra.SECURE_ELEMENT_NAME";
105 field public static final String EXTRA_TAG = "android.nfc.extra.TAG";
106 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_DISABLE = 0; // 0x0
Alisher Alikhodjaevc8673142024-01-31 14:18:00 -0800107 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_KEEP = -2147483648; // 0x80000000
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800108 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_NFC_PASSIVE_A = 1; // 0x1
109 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_NFC_PASSIVE_B = 2; // 0x2
110 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_LISTEN_NFC_PASSIVE_F = 4; // 0x4
111 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_READER_DISABLE = 0; // 0x0
Alisher Alikhodjaevc8673142024-01-31 14:18:00 -0800112 field @FlaggedApi("android.nfc.enable_nfc_set_discovery_tech") public static final int FLAG_READER_KEEP = -2147483648; // 0x80000000
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800113 field public static final int FLAG_READER_NFC_A = 1; // 0x1
114 field public static final int FLAG_READER_NFC_B = 2; // 0x2
115 field public static final int FLAG_READER_NFC_BARCODE = 16; // 0x10
116 field public static final int FLAG_READER_NFC_F = 4; // 0x4
117 field public static final int FLAG_READER_NFC_V = 8; // 0x8
118 field public static final int FLAG_READER_NO_PLATFORM_SOUNDS = 256; // 0x100
119 field public static final int FLAG_READER_SKIP_NDEF_CHECK = 128; // 0x80
120 field public static final int PREFERRED_PAYMENT_CHANGED = 2; // 0x2
121 field public static final int PREFERRED_PAYMENT_LOADED = 1; // 0x1
122 field public static final int PREFERRED_PAYMENT_UPDATED = 3; // 0x3
123 field public static final int STATE_OFF = 1; // 0x1
124 field public static final int STATE_ON = 3; // 0x3
125 field public static final int STATE_TURNING_OFF = 4; // 0x4
126 field public static final int STATE_TURNING_ON = 2; // 0x2
127 }
128
129 @Deprecated public static interface NfcAdapter.CreateBeamUrisCallback {
130 method @Deprecated public android.net.Uri[] createBeamUris(android.nfc.NfcEvent);
131 }
132
133 @Deprecated public static interface NfcAdapter.CreateNdefMessageCallback {
134 method @Deprecated public android.nfc.NdefMessage createNdefMessage(android.nfc.NfcEvent);
135 }
136
137 @Deprecated public static interface NfcAdapter.OnNdefPushCompleteCallback {
138 method @Deprecated public void onNdefPushComplete(android.nfc.NfcEvent);
139 }
140
141 public static interface NfcAdapter.OnTagRemovedListener {
142 method public void onTagRemoved();
143 }
144
145 public static interface NfcAdapter.ReaderCallback {
146 method public void onTagDiscovered(android.nfc.Tag);
147 }
148
149 public final class NfcAntennaInfo implements android.os.Parcelable {
150 ctor public NfcAntennaInfo(int, int, boolean, @NonNull java.util.List<android.nfc.AvailableNfcAntenna>);
151 method public int describeContents();
152 method @NonNull public java.util.List<android.nfc.AvailableNfcAntenna> getAvailableNfcAntennas();
153 method public int getDeviceHeight();
154 method public int getDeviceWidth();
155 method public boolean isDeviceFoldable();
156 method public void writeToParcel(@NonNull android.os.Parcel, int);
157 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.NfcAntennaInfo> CREATOR;
158 }
159
160 public final class NfcEvent {
161 field public final android.nfc.NfcAdapter nfcAdapter;
162 field public final int peerLlcpMajorVersion;
163 field public final int peerLlcpMinorVersion;
164 }
165
166 public final class NfcManager {
167 method public android.nfc.NfcAdapter getDefaultAdapter();
168 }
169
170 public final class Tag implements android.os.Parcelable {
171 method public int describeContents();
172 method public byte[] getId();
173 method public String[] getTechList();
174 method public void writeToParcel(android.os.Parcel, int);
175 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.Tag> CREATOR;
176 }
177
178 public class TagLostException extends java.io.IOException {
179 ctor public TagLostException();
180 ctor public TagLostException(String);
181 }
182
Jack Yudc872e02024-01-09 09:40:40 +0000183 @FlaggedApi("android.nfc.enable_nfc_charging") public final class WlcListenerDeviceInfo implements android.os.Parcelable {
184 ctor public WlcListenerDeviceInfo(int, double, double, int);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800185 method public int describeContents();
Jack Yudc872e02024-01-09 09:40:40 +0000186 method @FloatRange(from=0.0, to=100.0) public double getBatteryLevel();
187 method public int getProductId();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800188 method public int getState();
189 method public double getTemperature();
190 method public void writeToParcel(@NonNull android.os.Parcel, int);
Jack Yudc872e02024-01-09 09:40:40 +0000191 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.WlcListenerDeviceInfo> CREATOR;
192 field public static final int STATE_CONNECTED_CHARGING = 2; // 0x2
193 field public static final int STATE_CONNECTED_DISCHARGING = 3; // 0x3
194 field public static final int STATE_DISCONNECTED = 1; // 0x1
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800195 }
196
197}
198
199package android.nfc.cardemulation {
200
201 public final class CardEmulation {
James Willcox82e31482024-03-22 18:06:00 +0000202 method public boolean categoryAllowsForegroundPreference(String);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800203 method @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public java.util.List<java.lang.String> getAidsForPreferredPaymentService();
204 method public java.util.List<java.lang.String> getAidsForService(android.content.ComponentName, String);
Roshan Piusb8082c02024-11-08 11:44:31 -0800205 method @FlaggedApi("android.nfc.enable_card_emulation_euicc") public int getDefaultNfcSubscriptionId();
James Willcox82e31482024-03-22 18:06:00 +0000206 method @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public CharSequence getDescriptionForPreferredPaymentService();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800207 method public static android.nfc.cardemulation.CardEmulation getInstance(android.nfc.NfcAdapter);
James Willcox82e31482024-03-22 18:06:00 +0000208 method @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public String getRouteDestinationForPreferredPaymentService();
209 method public int getSelectionModeForCategory(String);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800210 method public boolean isDefaultServiceForAid(android.content.ComponentName, String);
211 method public boolean isDefaultServiceForCategory(android.content.ComponentName, String);
Roshanc72a1f62024-09-06 09:46:03 -0700212 method @FlaggedApi("android.nfc.enable_card_emulation_euicc") public boolean isEuiccSupported();
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800213 method public boolean registerAidsForService(android.content.ComponentName, String, java.util.List<java.lang.String>);
Brad Lasseyfcc2e112024-10-29 15:17:13 -0400214 method @FlaggedApi("android.nfc.nfc_event_listener") public void registerNfcEventListener(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.cardemulation.CardEmulation.NfcEventListener);
Brad Lassey07054da2024-02-22 15:17:09 -0500215 method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean registerPollingLoopFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean);
Brad Lasseyf3214de2024-03-12 21:27:17 +0000216 method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean registerPollingLoopPatternFilterForService(@NonNull android.content.ComponentName, @NonNull String, boolean);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800217 method public boolean removeAidsForService(android.content.ComponentName, String);
Brad Lasseyf3214de2024-03-12 21:27:17 +0000218 method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean removePollingLoopFilterForService(@NonNull android.content.ComponentName, @NonNull String);
219 method @FlaggedApi("android.nfc.nfc_read_polling_loop") public boolean removePollingLoopPatternFilterForService(@NonNull android.content.ComponentName, @NonNull String);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800220 method @NonNull @RequiresPermission(android.Manifest.permission.NFC) public boolean setOffHostForService(@NonNull android.content.ComponentName, @NonNull String);
221 method public boolean setPreferredService(android.app.Activity, android.content.ComponentName);
Brad Lassey776bb062024-02-26 14:59:47 -0500222 method @FlaggedApi("android.nfc.nfc_observe_mode") public boolean setShouldDefaultToObserveModeForService(@NonNull android.content.ComponentName, boolean);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800223 method public boolean supportsAidPrefixRegistration();
Brad Lasseyfcc2e112024-10-29 15:17:13 -0400224 method @FlaggedApi("android.nfc.nfc_event_listener") public void unregisterNfcEventListener(@NonNull android.nfc.cardemulation.CardEmulation.NfcEventListener);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800225 method @NonNull @RequiresPermission(android.Manifest.permission.NFC) public boolean unsetOffHostForService(@NonNull android.content.ComponentName);
226 method public boolean unsetPreferredService(android.app.Activity);
227 field @Deprecated public static final String ACTION_CHANGE_DEFAULT = "android.nfc.cardemulation.action.ACTION_CHANGE_DEFAULT";
228 field public static final String CATEGORY_OTHER = "other";
229 field public static final String CATEGORY_PAYMENT = "payment";
230 field public static final String EXTRA_CATEGORY = "category";
231 field public static final String EXTRA_SERVICE_COMPONENT = "component";
Steve Pomeroy0cb319f2024-11-15 20:03:26 +0000232 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_COMMAND_TIMEOUT = 3; // 0x3
233 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_NFC_CRASH_RESTART = 1; // 0x1
234 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_NFC_HARDWARE_ERROR = 2; // 0x2
235 field @FlaggedApi("android.nfc.nfc_event_listener") public static final int NFC_INTERNAL_ERROR_UNKNOWN = 0; // 0x0
ziyiwb8651d72024-08-19 23:30:10 +0000236 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_DEFAULT = 3; // 0x3
ziyiw2d05ad42024-08-23 18:18:04 +0000237 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_DH = 0; // 0x0
238 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_ESE = 1; // 0x1
239 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_UICC = 2; // 0x2
240 field @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public static final int PROTOCOL_AND_TECHNOLOGY_ROUTE_UNSET = -1; // 0xffffffff
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800241 field public static final int SELECTION_MODE_ALWAYS_ASK = 1; // 0x1
242 field public static final int SELECTION_MODE_ASK_IF_CONFLICT = 2; // 0x2
243 field public static final int SELECTION_MODE_PREFER_DEFAULT = 0; // 0x0
244 }
245
Brad Lasseyfcc2e112024-10-29 15:17:13 -0400246 @FlaggedApi("android.nfc.nfc_event_listener") public static interface CardEmulation.NfcEventListener {
Steve Pomeroy0cb319f2024-11-15 20:03:26 +0000247 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidConflictOccurred(@NonNull String);
248 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onAidNotRouted(@NonNull String);
249 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onInternalErrorReported(int);
250 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onNfcStateChanged(int);
Brad Lasseyfcc2e112024-10-29 15:17:13 -0400251 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onObserveModeStateChanged(boolean);
252 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onPreferredServiceChanged(boolean);
Steve Pomeroy0cb319f2024-11-15 20:03:26 +0000253 method @FlaggedApi("android.nfc.nfc_event_listener") public default void onRemoteFieldChanged(boolean);
Brad Lasseyfcc2e112024-10-29 15:17:13 -0400254 }
255
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800256 public abstract class HostApduService extends android.app.Service {
257 ctor public HostApduService();
258 method public final void notifyUnhandled();
259 method public final android.os.IBinder onBind(android.content.Intent);
260 method public abstract void onDeactivated(int);
261 method public abstract byte[] processCommandApdu(byte[], android.os.Bundle);
Brad Lassey5dd29442024-02-16 00:02:52 -0500262 method @FlaggedApi("android.nfc.nfc_read_polling_loop") public void processPollingFrames(@NonNull java.util.List<android.nfc.cardemulation.PollingFrame>);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800263 method public final void sendResponseApdu(byte[]);
264 field public static final int DEACTIVATION_DESELECTED = 1; // 0x1
265 field public static final int DEACTIVATION_LINK_LOSS = 0; // 0x0
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800266 field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_APDU_SERVICE";
267 field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.host_apdu_service";
268 }
269
270 public abstract class HostNfcFService extends android.app.Service {
271 ctor public HostNfcFService();
272 method public final android.os.IBinder onBind(android.content.Intent);
273 method public abstract void onDeactivated(int);
274 method public abstract byte[] processNfcFPacket(byte[], android.os.Bundle);
275 method public final void sendResponsePacket(byte[]);
276 field public static final int DEACTIVATION_LINK_LOSS = 0; // 0x0
277 field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.HOST_NFCF_SERVICE";
278 field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.host_nfcf_service";
279 }
280
281 public final class NfcFCardEmulation {
282 method public boolean disableService(android.app.Activity) throws java.lang.RuntimeException;
283 method public boolean enableService(android.app.Activity, android.content.ComponentName) throws java.lang.RuntimeException;
284 method public static android.nfc.cardemulation.NfcFCardEmulation getInstance(android.nfc.NfcAdapter);
285 method public String getNfcid2ForService(android.content.ComponentName) throws java.lang.RuntimeException;
286 method public String getSystemCodeForService(android.content.ComponentName) throws java.lang.RuntimeException;
287 method public boolean registerSystemCodeForService(android.content.ComponentName, String) throws java.lang.RuntimeException;
288 method public boolean setNfcid2ForService(android.content.ComponentName, String) throws java.lang.RuntimeException;
289 method public boolean unregisterSystemCodeForService(android.content.ComponentName) throws java.lang.RuntimeException;
290 }
291
292 public abstract class OffHostApduService extends android.app.Service {
293 ctor public OffHostApduService();
294 field public static final String SERVICE_INTERFACE = "android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE";
295 field public static final String SERVICE_META_DATA = "android.nfc.cardemulation.off_host_apdu_service";
296 }
297
Brad Lassey5dd29442024-02-16 00:02:52 -0500298 @FlaggedApi("android.nfc.nfc_read_polling_loop") public final class PollingFrame implements android.os.Parcelable {
Brad Lassey5dd29442024-02-16 00:02:52 -0500299 method public int describeContents();
300 method @NonNull public byte[] getData();
Brad Lasseya8059212024-03-18 18:16:27 -0400301 method public long getTimestamp();
Brad Lassey19d50702024-03-04 20:04:03 +0000302 method public boolean getTriggeredAutoTransact();
Brad Lassey6075bd22024-02-16 10:49:18 -0500303 method public int getType();
Brad Lassey60e4a302024-03-05 01:16:53 +0000304 method public int getVendorSpecificGain();
Brad Lassey5dd29442024-02-16 00:02:52 -0500305 method public void writeToParcel(@NonNull android.os.Parcel, int);
306 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.cardemulation.PollingFrame> CREATOR;
Brad Lassey6075bd22024-02-16 10:49:18 -0500307 field @FlaggedApi("android.nfc.nfc_read_polling_loop") public static final int POLLING_LOOP_TYPE_A = 65; // 0x41
308 field @FlaggedApi("android.nfc.nfc_read_polling_loop") public static final int POLLING_LOOP_TYPE_B = 66; // 0x42
309 field @FlaggedApi("android.nfc.nfc_read_polling_loop") public static final int POLLING_LOOP_TYPE_F = 70; // 0x46
310 field @FlaggedApi("android.nfc.nfc_read_polling_loop") public static final int POLLING_LOOP_TYPE_OFF = 88; // 0x58
311 field @FlaggedApi("android.nfc.nfc_read_polling_loop") public static final int POLLING_LOOP_TYPE_ON = 79; // 0x4f
312 field @FlaggedApi("android.nfc.nfc_read_polling_loop") public static final int POLLING_LOOP_TYPE_UNKNOWN = 85; // 0x55
Brad Lassey5dd29442024-02-16 00:02:52 -0500313 }
314
Roshan Piusb5ff8cf2023-11-13 14:29:09 -0800315}
316
317package android.nfc.tech {
318
319 public final class IsoDep implements android.nfc.tech.TagTechnology {
320 method public void close() throws java.io.IOException;
321 method public void connect() throws java.io.IOException;
322 method public static android.nfc.tech.IsoDep get(android.nfc.Tag);
323 method public byte[] getHiLayerResponse();
324 method public byte[] getHistoricalBytes();
325 method public int getMaxTransceiveLength();
326 method public android.nfc.Tag getTag();
327 method public int getTimeout();
328 method public boolean isConnected();
329 method public boolean isExtendedLengthApduSupported();
330 method public void setTimeout(int);
331 method public byte[] transceive(byte[]) throws java.io.IOException;
332 }
333
334 public final class MifareClassic implements android.nfc.tech.TagTechnology {
335 method public boolean authenticateSectorWithKeyA(int, byte[]) throws java.io.IOException;
336 method public boolean authenticateSectorWithKeyB(int, byte[]) throws java.io.IOException;
337 method public int blockToSector(int);
338 method public void close() throws java.io.IOException;
339 method public void connect() throws java.io.IOException;
340 method public void decrement(int, int) throws java.io.IOException;
341 method public static android.nfc.tech.MifareClassic get(android.nfc.Tag);
342 method public int getBlockCount();
343 method public int getBlockCountInSector(int);
344 method public int getMaxTransceiveLength();
345 method public int getSectorCount();
346 method public int getSize();
347 method public android.nfc.Tag getTag();
348 method public int getTimeout();
349 method public int getType();
350 method public void increment(int, int) throws java.io.IOException;
351 method public boolean isConnected();
352 method public byte[] readBlock(int) throws java.io.IOException;
353 method public void restore(int) throws java.io.IOException;
354 method public int sectorToBlock(int);
355 method public void setTimeout(int);
356 method public byte[] transceive(byte[]) throws java.io.IOException;
357 method public void transfer(int) throws java.io.IOException;
358 method public void writeBlock(int, byte[]) throws java.io.IOException;
359 field public static final int BLOCK_SIZE = 16; // 0x10
360 field public static final byte[] KEY_DEFAULT;
361 field public static final byte[] KEY_MIFARE_APPLICATION_DIRECTORY;
362 field public static final byte[] KEY_NFC_FORUM;
363 field public static final int SIZE_1K = 1024; // 0x400
364 field public static final int SIZE_2K = 2048; // 0x800
365 field public static final int SIZE_4K = 4096; // 0x1000
366 field public static final int SIZE_MINI = 320; // 0x140
367 field public static final int TYPE_CLASSIC = 0; // 0x0
368 field public static final int TYPE_PLUS = 1; // 0x1
369 field public static final int TYPE_PRO = 2; // 0x2
370 field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
371 }
372
373 public final class MifareUltralight implements android.nfc.tech.TagTechnology {
374 method public void close() throws java.io.IOException;
375 method public void connect() throws java.io.IOException;
376 method public static android.nfc.tech.MifareUltralight get(android.nfc.Tag);
377 method public int getMaxTransceiveLength();
378 method public android.nfc.Tag getTag();
379 method public int getTimeout();
380 method public int getType();
381 method public boolean isConnected();
382 method public byte[] readPages(int) throws java.io.IOException;
383 method public void setTimeout(int);
384 method public byte[] transceive(byte[]) throws java.io.IOException;
385 method public void writePage(int, byte[]) throws java.io.IOException;
386 field public static final int PAGE_SIZE = 4; // 0x4
387 field public static final int TYPE_ULTRALIGHT = 1; // 0x1
388 field public static final int TYPE_ULTRALIGHT_C = 2; // 0x2
389 field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
390 }
391
392 public final class Ndef implements android.nfc.tech.TagTechnology {
393 method public boolean canMakeReadOnly();
394 method public void close() throws java.io.IOException;
395 method public void connect() throws java.io.IOException;
396 method public static android.nfc.tech.Ndef get(android.nfc.Tag);
397 method public android.nfc.NdefMessage getCachedNdefMessage();
398 method public int getMaxSize();
399 method public android.nfc.NdefMessage getNdefMessage() throws android.nfc.FormatException, java.io.IOException;
400 method public android.nfc.Tag getTag();
401 method public String getType();
402 method public boolean isConnected();
403 method public boolean isWritable();
404 method public boolean makeReadOnly() throws java.io.IOException;
405 method public void writeNdefMessage(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException;
406 field public static final String MIFARE_CLASSIC = "com.nxp.ndef.mifareclassic";
407 field public static final String NFC_FORUM_TYPE_1 = "org.nfcforum.ndef.type1";
408 field public static final String NFC_FORUM_TYPE_2 = "org.nfcforum.ndef.type2";
409 field public static final String NFC_FORUM_TYPE_3 = "org.nfcforum.ndef.type3";
410 field public static final String NFC_FORUM_TYPE_4 = "org.nfcforum.ndef.type4";
411 }
412
413 public final class NdefFormatable implements android.nfc.tech.TagTechnology {
414 method public void close() throws java.io.IOException;
415 method public void connect() throws java.io.IOException;
416 method public void format(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException;
417 method public void formatReadOnly(android.nfc.NdefMessage) throws android.nfc.FormatException, java.io.IOException;
418 method public static android.nfc.tech.NdefFormatable get(android.nfc.Tag);
419 method public android.nfc.Tag getTag();
420 method public boolean isConnected();
421 }
422
423 public final class NfcA implements android.nfc.tech.TagTechnology {
424 method public void close() throws java.io.IOException;
425 method public void connect() throws java.io.IOException;
426 method public static android.nfc.tech.NfcA get(android.nfc.Tag);
427 method public byte[] getAtqa();
428 method public int getMaxTransceiveLength();
429 method public short getSak();
430 method public android.nfc.Tag getTag();
431 method public int getTimeout();
432 method public boolean isConnected();
433 method public void setTimeout(int);
434 method public byte[] transceive(byte[]) throws java.io.IOException;
435 }
436
437 public final class NfcB implements android.nfc.tech.TagTechnology {
438 method public void close() throws java.io.IOException;
439 method public void connect() throws java.io.IOException;
440 method public static android.nfc.tech.NfcB get(android.nfc.Tag);
441 method public byte[] getApplicationData();
442 method public int getMaxTransceiveLength();
443 method public byte[] getProtocolInfo();
444 method public android.nfc.Tag getTag();
445 method public boolean isConnected();
446 method public byte[] transceive(byte[]) throws java.io.IOException;
447 }
448
449 public final class NfcBarcode implements android.nfc.tech.TagTechnology {
450 method public void close() throws java.io.IOException;
451 method public void connect() throws java.io.IOException;
452 method public static android.nfc.tech.NfcBarcode get(android.nfc.Tag);
453 method public byte[] getBarcode();
454 method public android.nfc.Tag getTag();
455 method public int getType();
456 method public boolean isConnected();
457 field public static final int TYPE_KOVIO = 1; // 0x1
458 field public static final int TYPE_UNKNOWN = -1; // 0xffffffff
459 }
460
461 public final class NfcF implements android.nfc.tech.TagTechnology {
462 method public void close() throws java.io.IOException;
463 method public void connect() throws java.io.IOException;
464 method public static android.nfc.tech.NfcF get(android.nfc.Tag);
465 method public byte[] getManufacturer();
466 method public int getMaxTransceiveLength();
467 method public byte[] getSystemCode();
468 method public android.nfc.Tag getTag();
469 method public int getTimeout();
470 method public boolean isConnected();
471 method public void setTimeout(int);
472 method public byte[] transceive(byte[]) throws java.io.IOException;
473 }
474
475 public final class NfcV implements android.nfc.tech.TagTechnology {
476 method public void close() throws java.io.IOException;
477 method public void connect() throws java.io.IOException;
478 method public static android.nfc.tech.NfcV get(android.nfc.Tag);
479 method public byte getDsfId();
480 method public int getMaxTransceiveLength();
481 method public byte getResponseFlags();
482 method public android.nfc.Tag getTag();
483 method public boolean isConnected();
484 method public byte[] transceive(byte[]) throws java.io.IOException;
485 }
486
487 public interface TagTechnology extends java.io.Closeable {
488 method public void connect() throws java.io.IOException;
489 method public android.nfc.Tag getTag();
490 method public boolean isConnected();
491 }
492
493}
494