• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Signature format: 2.0
2package android.nfc {
3
4  public final class NfcAdapter {
5    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean addNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler, String[]);
6    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean disable(boolean);
7    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enableReaderOption(boolean);
8    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean enableSecureNfc(boolean);
9    method public int getAdapterState();
10    method @NonNull public android.nfc.NfcOemExtension getNfcOemExtension();
11    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public java.util.Map<java.lang.String,java.lang.Boolean> getTagIntentAppPreferenceForUser(int);
12    method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean isControllerAlwaysOn();
13    method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean isControllerAlwaysOnSupported();
14    method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void registerControllerAlwaysOnListener(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.NfcAdapter.ControllerAlwaysOnListener);
15    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void registerNfcVendorNciCallback(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.NfcAdapter.NfcVendorNciCallback);
16    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler);
17    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int sendVendorNciMessage(int, @IntRange(from=0, to=15) int, @IntRange(from=0) int, @NonNull byte[]);
18    method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean setControllerAlwaysOn(boolean);
19    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setReaderModePollingEnabled(boolean);
20    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int setTagIntentAppPreferenceForUser(int, @NonNull String, boolean);
21    method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void unregisterControllerAlwaysOnListener(@NonNull android.nfc.NfcAdapter.ControllerAlwaysOnListener);
22    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void unregisterNfcVendorNciCallback(@NonNull android.nfc.NfcAdapter.NfcVendorNciCallback);
23    field public static final String ACTION_REQUIRE_UNLOCK_FOR_NFC = "android.nfc.action.REQUIRE_UNLOCK_FOR_NFC";
24    field @RequiresPermission(android.Manifest.permission.SHOW_CUSTOMIZED_RESOLVER) public static final String ACTION_SHOW_NFC_RESOLVER = "android.nfc.action.SHOW_NFC_RESOLVER";
25    field public static final String EXTRA_RESOLVE_INFOS = "android.nfc.extra.RESOLVE_INFOS";
26    field @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static final int FLAG_SET_DEFAULT_TECH = 1073741824; // 0x40000000
27    field public static final int MESSAGE_TYPE_COMMAND = 1; // 0x1
28    field public static final int SEND_VENDOR_NCI_STATUS_FAILED = 3; // 0x3
29    field public static final int SEND_VENDOR_NCI_STATUS_MESSAGE_CORRUPTED = 2; // 0x2
30    field public static final int SEND_VENDOR_NCI_STATUS_REJECTED = 1; // 0x1
31    field public static final int SEND_VENDOR_NCI_STATUS_SUCCESS = 0; // 0x0
32    field public static final int TAG_INTENT_APP_PREF_RESULT_PACKAGE_NOT_FOUND = -1; // 0xffffffff
33    field public static final int TAG_INTENT_APP_PREF_RESULT_SUCCESS = 0; // 0x0
34    field public static final int TAG_INTENT_APP_PREF_RESULT_UNAVAILABLE = -2; // 0xfffffffe
35  }
36
37  public static interface NfcAdapter.ControllerAlwaysOnListener {
38    method public void onControllerAlwaysOnChanged(boolean);
39  }
40
41  public static interface NfcAdapter.NfcUnlockHandler {
42    method public boolean onUnlockAttempted(android.nfc.Tag);
43  }
44
45  public static interface NfcAdapter.NfcVendorNciCallback {
46    method public void onVendorNciNotification(@IntRange(from=9, to=15) int, int, @NonNull byte[]);
47    method public void onVendorNciResponse(@IntRange(from=0, to=15) int, int, @NonNull byte[]);
48  }
49
50  public final class NfcOemExtension {
51    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void clearPreference();
52    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int forceRoutingTableCommit();
53    method @NonNull public java.util.Map<java.lang.String,java.lang.Integer> getActiveNfceeList();
54    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public long getMaxPausePollingTimeoutMills();
55    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.nfc.RoutingStatus getRoutingStatus();
56    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public java.util.List<android.nfc.NfcRoutingTableEntry> getRoutingTable();
57    method @NonNull public android.nfc.T4tNdefNfcee getT4tNdefNfcee();
58    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean hasUserEnabledNfc();
59    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isAutoChangeEnabled();
60    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagPresent();
61    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void maybeTriggerFirmwareUpdate();
62    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void overwriteRoutingTable(int, int, int, int);
63    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int pausePolling(long);
64    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.NfcOemExtension.Callback);
65    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int resumePolling();
66    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAutoChangeEnabled(boolean);
67    method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void setControllerAlwaysOnMode(int);
68    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void synchronizeScreenState();
69    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void triggerInitialization();
70    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void unregisterCallback(@NonNull android.nfc.NfcOemExtension.Callback);
71    field public static final int COMMIT_ROUTING_STATUS_FAILED = 3; // 0x3
72    field public static final int COMMIT_ROUTING_STATUS_FAILED_UPDATE_IN_PROGRESS = 6; // 0x6
73    field public static final int COMMIT_ROUTING_STATUS_OK = 0; // 0x0
74    field public static final int DISABLE = 0; // 0x0
75    field public static final int ENABLE_DEFAULT = 1; // 0x1
76    field public static final int ENABLE_EE = 3; // 0x3
77    field public static final int ENABLE_TRANSPARENT = 2; // 0x2
78    field public static final int HCE_ACTIVATE = 1; // 0x1
79    field public static final int HCE_DATA_TRANSFERRED = 2; // 0x2
80    field public static final int HCE_DEACTIVATE = 3; // 0x3
81    field public static final int NFCEE_TECH_A = 1; // 0x1
82    field public static final int NFCEE_TECH_B = 2; // 0x2
83    field public static final int NFCEE_TECH_F = 4; // 0x4
84    field public static final int NFCEE_TECH_NONE = 0; // 0x0
85    field public static final int POLLING_STATE_CHANGE_ALREADY_IN_REQUESTED_STATE = 2; // 0x2
86    field public static final int POLLING_STATE_CHANGE_SUCCEEDED = 1; // 0x1
87    field public static final int STATUS_OK = 0; // 0x0
88    field public static final int STATUS_UNKNOWN_ERROR = 1; // 0x1
89  }
90
91  public static interface NfcOemExtension.Callback {
92    method public void onApplyRouting(@NonNull java.util.function.Consumer<java.lang.Boolean>);
93    method public void onBootFinished(int);
94    method public void onBootStarted();
95    method public void onCardEmulationActivated(boolean);
96    method public void onDisableFinished(int);
97    method public void onDisableRequested(@NonNull java.util.function.Consumer<java.lang.Boolean>);
98    method public void onDisableStarted();
99    method public void onEeListenActivated(boolean);
100    method public void onEeUpdated();
101    method public void onEnableFinished(int);
102    method public void onEnableRequested(@NonNull java.util.function.Consumer<java.lang.Boolean>);
103    method public void onEnableStarted();
104    method public void onExtractOemPackages(@NonNull android.nfc.NdefMessage, @NonNull java.util.function.Consumer<java.util.List<java.lang.String>>);
105    method public void onGetOemAppSearchIntent(@NonNull java.util.List<java.lang.String>, @NonNull java.util.function.Consumer<android.content.Intent>);
106    method public void onHceEventReceived(int);
107    method public void onLaunchHceAppChooserActivity(@NonNull String, @NonNull java.util.List<android.nfc.cardemulation.ApduServiceInfo>, @NonNull android.content.ComponentName, @NonNull String);
108    method public void onLaunchHceTapAgainDialog(@NonNull android.nfc.cardemulation.ApduServiceInfo, @NonNull String);
109    method public void onLogEventNotified(@NonNull android.nfc.OemLogItems);
110    method public void onNdefMessage(@NonNull android.nfc.Tag, @NonNull android.nfc.NdefMessage, @NonNull java.util.function.Consumer<java.lang.Boolean>);
111    method public void onNdefRead(@NonNull java.util.function.Consumer<java.lang.Boolean>);
112    method public void onReaderOptionChanged(boolean);
113    method public void onRfDiscoveryStarted(boolean);
114    method public void onRfFieldDetected(boolean);
115    method public void onRoutingChanged(@NonNull java.util.function.Consumer<java.lang.Boolean>);
116    method public void onRoutingTableFull();
117    method public void onStateUpdated(int);
118    method public void onTagConnected(boolean);
119    method public void onTagDispatch(@NonNull java.util.function.Consumer<java.lang.Boolean>);
120  }
121
122  public abstract class NfcRoutingTableEntry {
123    method public int getNfceeId();
124    method public int getRouteType();
125    method public int getType();
126    field public static final int TYPE_AID = 0; // 0x0
127    field public static final int TYPE_PROTOCOL = 1; // 0x1
128    field public static final int TYPE_SYSTEM_CODE = 3; // 0x3
129    field public static final int TYPE_TECHNOLOGY = 2; // 0x2
130  }
131
132  public final class OemLogItems implements android.os.Parcelable {
133    method public int describeContents();
134    method public int getAction();
135    method public int getCallingPid();
136    method @Nullable public byte[] getCommandApdu();
137    method public int getEvent();
138    method @Nullable public byte[] getResponseApdu();
139    method @Nullable public java.time.Instant getRfFieldEventTimeMillis();
140    method @Nullable public android.nfc.Tag getTag();
141    method public void writeToParcel(@NonNull android.os.Parcel, int);
142    field @NonNull public static final android.os.Parcelable.Creator<android.nfc.OemLogItems> CREATOR;
143    field public static final int EVENT_DISABLE = 2; // 0x2
144    field public static final int EVENT_ENABLE = 1; // 0x1
145    field public static final int EVENT_UNSET = 0; // 0x0
146    field public static final int LOG_ACTION_HCE_DATA = 516; // 0x204
147    field public static final int LOG_ACTION_NFC_TOGGLE = 513; // 0x201
148    field public static final int LOG_ACTION_RF_FIELD_STATE_CHANGED = 1; // 0x1
149    field public static final int LOG_ACTION_SCREEN_STATE_CHANGED = 518; // 0x206
150    field public static final int LOG_ACTION_TAG_DETECTED = 3; // 0x3
151  }
152
153  public class RoutingStatus {
154    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultIsoDepRoute();
155    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultOffHostRoute();
156    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultRoute();
157  }
158
159  public class RoutingTableAidEntry extends android.nfc.NfcRoutingTableEntry {
160    method @NonNull public String getAid();
161  }
162
163  public class RoutingTableProtocolEntry extends android.nfc.NfcRoutingTableEntry {
164    method public int getProtocol();
165    field public static final int PROTOCOL_ISO_DEP = 4; // 0x4
166    field public static final int PROTOCOL_NDEF = 7; // 0x7
167    field public static final int PROTOCOL_NFC_DEP = 5; // 0x5
168    field public static final int PROTOCOL_T1T = 1; // 0x1
169    field public static final int PROTOCOL_T2T = 2; // 0x2
170    field public static final int PROTOCOL_T3T = 3; // 0x3
171    field public static final int PROTOCOL_T5T = 6; // 0x6
172    field public static final int PROTOCOL_UNDETERMINED = 0; // 0x0
173    field public static final int PROTOCOL_UNSUPPORTED = -1; // 0xffffffff
174  }
175
176  public class RoutingTableSystemCodeEntry extends android.nfc.NfcRoutingTableEntry {
177    method @NonNull public byte[] getSystemCode();
178  }
179
180  public class RoutingTableTechnologyEntry extends android.nfc.NfcRoutingTableEntry {
181    method public int getTechnology();
182    field public static final int TECHNOLOGY_A = 0; // 0x0
183    field public static final int TECHNOLOGY_B = 1; // 0x1
184    field public static final int TECHNOLOGY_F = 2; // 0x2
185    field public static final int TECHNOLOGY_UNSUPPORTED = -1; // 0xffffffff
186    field public static final int TECHNOLOGY_V = 3; // 0x3
187  }
188
189  public final class T4tNdefNfcee {
190    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public int clearData();
191    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isOperationOngoing();
192    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isSupported();
193    method @Nullable @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public android.nfc.T4tNdefNfceeCcFileInfo readCcfile();
194    method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public byte[] readData(@IntRange(from=0, to=65535) int);
195    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public int writeData(@IntRange(from=0, to=65535) int, @NonNull byte[]);
196    field public static final int CLEAR_DATA_FAILED_DEVICE_BUSY = -1; // 0xffffffff
197    field public static final int CLEAR_DATA_FAILED_INTERNAL = 0; // 0x0
198    field public static final int CLEAR_DATA_SUCCESS = 1; // 0x1
199    field public static final int WRITE_DATA_ERROR_CONNECTION_FAILED = -6; // 0xfffffffa
200    field public static final int WRITE_DATA_ERROR_DEVICE_BUSY = -9; // 0xfffffff7
201    field public static final int WRITE_DATA_ERROR_EMPTY_PAYLOAD = -7; // 0xfffffff9
202    field public static final int WRITE_DATA_ERROR_INTERNAL = -1; // 0xffffffff
203    field public static final int WRITE_DATA_ERROR_INVALID_FILE_ID = -4; // 0xfffffffc
204    field public static final int WRITE_DATA_ERROR_INVALID_LENGTH = -5; // 0xfffffffb
205    field public static final int WRITE_DATA_ERROR_NDEF_VALIDATION_FAILED = -8; // 0xfffffff8
206    field public static final int WRITE_DATA_ERROR_NFC_NOT_ON = -3; // 0xfffffffd
207    field public static final int WRITE_DATA_ERROR_RF_ACTIVATED = -2; // 0xfffffffe
208    field public static final int WRITE_DATA_SUCCESS = 0; // 0x0
209  }
210
211  public final class T4tNdefNfceeCcFileInfo implements android.os.Parcelable {
212    method public int describeContents();
213    method @IntRange(from=15, to=32767) public int getCcFileLength();
214    method @IntRange(from=0xffffffff, to=65535) public int getFileId();
215    method @IntRange(from=5, to=32767) public int getMaxSize();
216    method public int getVersion();
217    method public boolean isReadAllowed();
218    method public boolean isWriteAllowed();
219    method public void writeToParcel(@NonNull android.os.Parcel, int);
220    field @NonNull public static final android.os.Parcelable.Creator<android.nfc.T4tNdefNfceeCcFileInfo> CREATOR;
221    field public static final int VERSION_2_0 = 32; // 0x20
222    field public static final int VERSION_3_0 = 48; // 0x30
223  }
224
225}
226
227package android.nfc.cardemulation {
228
229  public final class CardEmulation {
230    method @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public static android.content.ComponentName getPreferredPaymentService(@NonNull android.content.Context);
231    method @NonNull public java.util.List<android.nfc.cardemulation.ApduServiceInfo> getServices(@NonNull String, int);
232    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void overrideRoutingTable(@NonNull android.app.Activity, int, int);
233    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void recoverRoutingTable(@NonNull android.app.Activity);
234    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int setDefaultNfcSubscriptionId(int);
235    method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int setServiceEnabledForCategoryOther(@NonNull android.content.ComponentName, boolean);
236    field public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_ALREADY_SET = 3; // 0x3
237    field public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_FEATURE_UNSUPPORTED = 1; // 0x1
238    field public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_INVALID_SERVICE = 2; // 0x2
239    field public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_UNKNOWN_ERROR = 4; // 0x4
240    field public static final int SET_SERVICE_ENABLED_STATUS_OK = 0; // 0x0
241    field public static final int SET_SUBSCRIPTION_ID_STATUS_FAILED_INTERNAL_ERROR = 2; // 0x2
242    field public static final int SET_SUBSCRIPTION_ID_STATUS_FAILED_INVALID_SUBSCRIPTION_ID = 1; // 0x1
243    field public static final int SET_SUBSCRIPTION_ID_STATUS_FAILED_NOT_SUPPORTED = 3; // 0x3
244    field public static final int SET_SUBSCRIPTION_ID_STATUS_SUCCESS = 0; // 0x0
245    field public static final int SET_SUBSCRIPTION_ID_STATUS_UNKNOWN = -1; // 0xffffffff
246  }
247
248}
249
250