blob: 6bd6072a2f431c09d51cbbb863acacdce7b80684 [file] [log] [blame]
Roshan Pius0fa80892023-11-14 14:30:26 -08001// Signature format: 2.0
Roshan Pius467a55f2023-11-13 14:29:09 -08002package 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[]);
Roshan Pius467a55f2023-11-13 14:29:09 -08006 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean disable(boolean);
Roshan Pius467a55f2023-11-13 14:29:09 -08007 method @FlaggedApi("android.nfc.enable_nfc_reader_option") @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 @FlaggedApi("android.nfc.enable_nfc_mainline") public int getAdapterState();
Roshan Piusa4329542024-03-25 13:01:21 -070010 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public android.nfc.NfcOemExtension getNfcOemExtension();
Roshan Pius467a55f2023-11-13 14:29:09 -080011 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();
Roshan Pius467a55f2023-11-13 14:29:09 -080014 method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void registerControllerAlwaysOnListener(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.NfcAdapter.ControllerAlwaysOnListener);
suryaprakash.konduruace29c12023-12-04 23:12:58 +053015 method @FlaggedApi("android.nfc.nfc_vendor_cmd") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void registerNfcVendorNciCallback(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.NfcAdapter.NfcVendorNciCallback);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080016 method @FlaggedApi("android.nfc.enable_nfc_charging") public void registerWlcStateListener(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.NfcAdapter.WlcStateListener);
Roshan Pius467a55f2023-11-13 14:29:09 -080017 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler);
suryaprakash.konduruace29c12023-12-04 23:12:58 +053018 method @FlaggedApi("android.nfc.nfc_vendor_cmd") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int sendVendorNciMessage(int, @IntRange(from=0, to=15) int, @IntRange(from=0) int, @NonNull byte[]);
Roshan Pius467a55f2023-11-13 14:29:09 -080019 method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean setControllerAlwaysOn(boolean);
Roshan Piusaf9cc1f2024-01-30 11:44:19 -080020 method @FlaggedApi("android.nfc.enable_nfc_mainline") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setReaderModePollingEnabled(boolean);
Roshan Pius467a55f2023-11-13 14:29:09 -080021 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int setTagIntentAppPreferenceForUser(int, @NonNull String, boolean);
Jack Yudc872e02024-01-09 09:40:40 +000022 method @FlaggedApi("android.nfc.enable_nfc_charging") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean setWlcEnabled(boolean);
Roshan Pius467a55f2023-11-13 14:29:09 -080023 method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void unregisterControllerAlwaysOnListener(@NonNull android.nfc.NfcAdapter.ControllerAlwaysOnListener);
Roshan Piusd4c50e82024-02-06 01:11:11 +000024 method @FlaggedApi("android.nfc.nfc_vendor_cmd") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void unregisterNfcVendorNciCallback(@NonNull android.nfc.NfcAdapter.NfcVendorNciCallback);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080025 method @FlaggedApi("android.nfc.enable_nfc_charging") public void unregisterWlcStateListener(@NonNull android.nfc.NfcAdapter.WlcStateListener);
Roshan Pius467a55f2023-11-13 14:29:09 -080026 field @FlaggedApi("android.nfc.enable_nfc_mainline") public static final String ACTION_REQUIRE_UNLOCK_FOR_NFC = "android.nfc.action.REQUIRE_UNLOCK_FOR_NFC";
Roshan Pius5ae9a172024-02-13 14:32:18 -080027 field @FlaggedApi("android.nfc.enable_nfc_mainline") @RequiresPermission(android.Manifest.permission.SHOW_CUSTOMIZED_RESOLVER) public static final String ACTION_SHOW_NFC_RESOLVER = "android.nfc.action.SHOW_NFC_RESOLVER";
28 field @FlaggedApi("android.nfc.enable_nfc_mainline") public static final String EXTRA_RESOLVE_INFOS = "android.nfc.extra.RESOLVE_INFOS";
Alisher Alikhodjaev4867e842024-05-15 15:37:04 -070029 field @FlaggedApi("android.nfc.nfc_set_default_disc_tech") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public static final int FLAG_SET_DEFAULT_TECH = 1073741824; // 0x40000000
suryaprakash.konduruace29c12023-12-04 23:12:58 +053030 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int MESSAGE_TYPE_COMMAND = 1; // 0x1
31 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int SEND_VENDOR_NCI_STATUS_FAILED = 3; // 0x3
32 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int SEND_VENDOR_NCI_STATUS_MESSAGE_CORRUPTED = 2; // 0x2
33 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int SEND_VENDOR_NCI_STATUS_REJECTED = 1; // 0x1
34 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int SEND_VENDOR_NCI_STATUS_SUCCESS = 0; // 0x0
Roshan Pius467a55f2023-11-13 14:29:09 -080035 field public static final int TAG_INTENT_APP_PREF_RESULT_PACKAGE_NOT_FOUND = -1; // 0xffffffff
36 field public static final int TAG_INTENT_APP_PREF_RESULT_SUCCESS = 0; // 0x0
37 field public static final int TAG_INTENT_APP_PREF_RESULT_UNAVAILABLE = -2; // 0xfffffffe
38 }
39
40 public static interface NfcAdapter.ControllerAlwaysOnListener {
41 method public void onControllerAlwaysOnChanged(boolean);
42 }
43
44 public static interface NfcAdapter.NfcUnlockHandler {
45 method public boolean onUnlockAttempted(android.nfc.Tag);
46 }
47
suryaprakash.konduruace29c12023-12-04 23:12:58 +053048 @FlaggedApi("android.nfc.nfc_vendor_cmd") public static interface NfcAdapter.NfcVendorNciCallback {
49 method @FlaggedApi("android.nfc.nfc_vendor_cmd") public void onVendorNciNotification(@IntRange(from=9, to=15) int, int, @NonNull byte[]);
50 method @FlaggedApi("android.nfc.nfc_vendor_cmd") public void onVendorNciResponse(@IntRange(from=0, to=15) int, int, @NonNull byte[]);
51 }
52
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080053 @FlaggedApi("android.nfc.enable_nfc_charging") public static interface NfcAdapter.WlcStateListener {
Jack Yudc872e02024-01-09 09:40:40 +000054 method public void onWlcStateChanged(@NonNull android.nfc.WlcListenerDeviceInfo);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080055 }
56
Roshan Piusa4329542024-03-25 13:01:21 -070057 @FlaggedApi("android.nfc.nfc_oem_extension") public final class NfcOemExtension {
58 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void clearPreference();
ziyiw2b560ab2024-11-08 19:42:26 +000059 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int forceRoutingTableCommit();
Alisher Alikhodjaev33a31fb2024-11-15 20:36:37 +000060 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public java.util.Map<java.lang.String,java.lang.Integer> getActiveNfceeList();
ziyiw861472d2024-11-20 19:37:07 +000061 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public long getMaxPausePollingTimeoutMills();
ziyiwb8651d72024-08-19 23:30:10 +000062 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.nfc.RoutingStatus getRoutingStatus();
ziyiweaa60942024-10-07 21:48:18 +000063 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public java.util.List<android.nfc.NfcRoutingTableEntry> getRoutingTable();
Roshan Piusbabbde82024-11-20 15:19:00 +000064 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public android.nfc.T4tNdefNfcee getT4tNdefNfcee();
ziyiwaebcc462024-09-20 20:56:25 +000065 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean hasUserEnabledNfc();
ziyiwb8651d72024-08-19 23:30:10 +000066 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isAutoChangeEnabled();
ziyiwaebcc462024-09-20 20:56:25 +000067 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagPresent();
ziyiwcbb1e362024-05-09 20:22:04 +000068 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void maybeTriggerFirmwareUpdate();
Alexandra Ducati-Manas835a32b2024-10-03 15:44:56 +020069 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void overwriteRoutingTable(int, int, int, int);
ziyiw861472d2024-11-20 19:37:07 +000070 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int pausePolling(long);
Roshan Piusa4329542024-03-25 13:01:21 -070071 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void registerCallback(@NonNull java.util.concurrent.Executor, @NonNull android.nfc.NfcOemExtension.Callback);
Roshan Piusfdf8b182024-11-15 23:13:09 +000072 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int resumePolling();
ziyiwb8651d72024-08-19 23:30:10 +000073 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAutoChangeEnabled(boolean);
Roshan677b137f2024-09-19 11:29:23 -070074 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void setControllerAlwaysOnMode(int);
ziyiwcbb1e362024-05-09 20:22:04 +000075 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void synchronizeScreenState();
ziyiwaebcc462024-09-20 20:56:25 +000076 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void triggerInitialization();
Roshan Piusa4329542024-03-25 13:01:21 -070077 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void unregisterCallback(@NonNull android.nfc.NfcOemExtension.Callback);
ziyiw2b560ab2024-11-08 19:42:26 +000078 field public static final int COMMIT_ROUTING_STATUS_FAILED = 3; // 0x3
79 field public static final int COMMIT_ROUTING_STATUS_FAILED_UPDATE_IN_PROGRESS = 6; // 0x6
80 field public static final int COMMIT_ROUTING_STATUS_OK = 0; // 0x0
Roshan Pius60d125b2024-09-18 14:06:47 +000081 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int DISABLE = 0; // 0x0
82 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_DEFAULT = 1; // 0x1
83 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_EE = 3; // 0x3
84 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_TRANSPARENT = 2; // 0x2
ziyiw2c965222024-07-30 18:40:06 +000085 field public static final int HCE_ACTIVATE = 1; // 0x1
86 field public static final int HCE_DATA_TRANSFERRED = 2; // 0x2
87 field public static final int HCE_DEACTIVATE = 3; // 0x3
Alisher Alikhodjaev5f77cb62024-12-04 14:34:42 -080088 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int NFCEE_TECH_A = 1; // 0x1
89 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int NFCEE_TECH_B = 2; // 0x2
90 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int NFCEE_TECH_F = 4; // 0x4
91 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int NFCEE_TECH_NONE = 0; // 0x0
Roshan Piusfdf8b182024-11-15 23:13:09 +000092 field public static final int POLLING_STATE_CHANGE_ALREADY_IN_REQUESTED_STATE = 2; // 0x2
93 field public static final int POLLING_STATE_CHANGE_SUCCEEDED = 1; // 0x1
ziyiw2c965222024-07-30 18:40:06 +000094 field public static final int STATUS_OK = 0; // 0x0
95 field public static final int STATUS_UNKNOWN_ERROR = 1; // 0x1
Roshan Piusa4329542024-03-25 13:01:21 -070096 }
97
98 public static interface NfcOemExtension.Callback {
ziyiw2c965222024-07-30 18:40:06 +000099 method public void onApplyRouting(@NonNull java.util.function.Consumer<java.lang.Boolean>);
100 method public void onBootFinished(int);
101 method public void onBootStarted();
suryaprakash.konduru033c2792024-06-04 12:31:59 +0530102 method public void onCardEmulationActivated(boolean);
ziyiw2c965222024-07-30 18:40:06 +0000103 method public void onDisableFinished(int);
ziyiw97e14c42024-11-13 17:32:33 +0000104 method public void onDisableRequested(@NonNull java.util.function.Consumer<java.lang.Boolean>);
ziyiw2c965222024-07-30 18:40:06 +0000105 method public void onDisableStarted();
Himanshu Singh Kushwah74cda912024-10-28 11:07:20 +0530106 method public void onEeListenActivated(boolean);
Roshan Pius91caa0e2024-11-07 20:42:45 +0000107 method public void onEeUpdated();
ziyiw2c965222024-07-30 18:40:06 +0000108 method public void onEnableFinished(int);
ziyiw97e14c42024-11-13 17:32:33 +0000109 method public void onEnableRequested(@NonNull java.util.function.Consumer<java.lang.Boolean>);
ziyiw2c965222024-07-30 18:40:06 +0000110 method public void onEnableStarted();
ziyiw2b560ab2024-11-08 19:42:26 +0000111 method public void onExtractOemPackages(@NonNull android.nfc.NdefMessage, @NonNull java.util.function.Consumer<java.util.List<java.lang.String>>);
ziyiw30392b82024-09-19 16:16:07 +0000112 method public void onGetOemAppSearchIntent(@NonNull java.util.List<java.lang.String>, @NonNull java.util.function.Consumer<android.content.Intent>);
ziyiw2c965222024-07-30 18:40:06 +0000113 method public void onHceEventReceived(int);
ziyiw30392b82024-09-19 16:16:07 +0000114 method public void onLaunchHceAppChooserActivity(@NonNull String, @NonNull java.util.List<android.nfc.cardemulation.ApduServiceInfo>, @NonNull android.content.ComponentName, @NonNull String);
115 method public void onLaunchHceTapAgainDialog(@NonNull android.nfc.cardemulation.ApduServiceInfo, @NonNull String);
ziyiwf957e502024-10-25 22:05:39 +0000116 method public void onLogEventNotified(@NonNull android.nfc.OemLogItems);
ziyiw30392b82024-09-19 16:16:07 +0000117 method public void onNdefMessage(@NonNull android.nfc.Tag, @NonNull android.nfc.NdefMessage, @NonNull java.util.function.Consumer<java.lang.Boolean>);
ziyiw2c965222024-07-30 18:40:06 +0000118 method public void onNdefRead(@NonNull java.util.function.Consumer<java.lang.Boolean>);
Roshan Piusb41fe362024-09-04 19:04:50 +0000119 method public void onReaderOptionChanged(boolean);
suryaprakash.konduru033c2792024-06-04 12:31:59 +0530120 method public void onRfDiscoveryStarted(boolean);
121 method public void onRfFieldActivated(boolean);
ziyiw2b560ab2024-11-08 19:42:26 +0000122 method public void onRoutingChanged(@NonNull java.util.function.Consumer<java.lang.Boolean>);
Praveen Kumar Pandey65a26612024-10-30 12:40:11 +0530123 method public void onRoutingTableFull();
ziyiw2c965222024-07-30 18:40:06 +0000124 method public void onStateUpdated(int);
Roshan Piusa8e68362024-10-31 16:14:24 +0000125 method public void onTagConnected(boolean);
ziyiw2c965222024-07-30 18:40:06 +0000126 method public void onTagDispatch(@NonNull java.util.function.Consumer<java.lang.Boolean>);
Roshan Piusa4329542024-03-25 13:01:21 -0700127 }
128
ziyiweaa60942024-10-07 21:48:18 +0000129 @FlaggedApi("android.nfc.nfc_oem_extension") public abstract class NfcRoutingTableEntry {
130 method public int getNfceeId();
ziyiw4267a912024-11-26 21:18:55 +0000131 method public int getRouteType();
ziyiwfbb249e2024-11-18 22:22:52 +0000132 method public int getType();
133 field public static final int TYPE_AID = 0; // 0x0
134 field public static final int TYPE_PROTOCOL = 1; // 0x1
135 field public static final int TYPE_SYSTEM_CODE = 3; // 0x3
136 field public static final int TYPE_TECHNOLOGY = 2; // 0x2
ziyiweaa60942024-10-07 21:48:18 +0000137 }
138
ziyiwf957e502024-10-25 22:05:39 +0000139 @FlaggedApi("android.nfc.nfc_oem_extension") public final class OemLogItems implements android.os.Parcelable {
140 method public int describeContents();
141 method public int getAction();
142 method public int getCallingPid();
143 method @Nullable public byte[] getCommandApdu();
144 method public int getEvent();
145 method @Nullable public byte[] getResponseApdu();
146 method @Nullable public java.time.Instant getRfFieldEventTimeMillis();
147 method @Nullable public android.nfc.Tag getTag();
148 method public void writeToParcel(@NonNull android.os.Parcel, int);
149 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.OemLogItems> CREATOR;
150 field public static final int EVENT_DISABLE = 2; // 0x2
151 field public static final int EVENT_ENABLE = 1; // 0x1
152 field public static final int EVENT_UNSET = 0; // 0x0
153 field public static final int LOG_ACTION_HCE_DATA = 516; // 0x204
154 field public static final int LOG_ACTION_NFC_TOGGLE = 513; // 0x201
155 field public static final int LOG_ACTION_RF_FIELD_STATE_CHANGED = 1; // 0x1
156 field public static final int LOG_ACTION_SCREEN_STATE_CHANGED = 518; // 0x206
157 field public static final int LOG_ACTION_TAG_DETECTED = 3; // 0x3
158 }
159
ziyiwb8651d72024-08-19 23:30:10 +0000160 @FlaggedApi("android.nfc.nfc_oem_extension") public class RoutingStatus {
161 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultIsoDepRoute();
162 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultOffHostRoute();
163 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultRoute();
164 }
165
ziyiweaa60942024-10-07 21:48:18 +0000166 @FlaggedApi("android.nfc.nfc_oem_extension") public class RoutingTableAidEntry extends android.nfc.NfcRoutingTableEntry {
167 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public String getAid();
168 }
169
170 @FlaggedApi("android.nfc.nfc_oem_extension") public class RoutingTableProtocolEntry extends android.nfc.NfcRoutingTableEntry {
171 method @FlaggedApi("android.nfc.nfc_oem_extension") public int getProtocol();
172 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_ISO_DEP = 4; // 0x4
173 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_NDEF = 7; // 0x7
174 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_NFC_DEP = 5; // 0x5
175 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_T1T = 1; // 0x1
176 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_T2T = 2; // 0x2
177 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_T3T = 3; // 0x3
178 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_T5T = 6; // 0x6
179 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_UNDETERMINED = 0; // 0x0
180 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int PROTOCOL_UNSUPPORTED = -1; // 0xffffffff
181 }
182
183 @FlaggedApi("android.nfc.nfc_oem_extension") public class RoutingTableSystemCodeEntry extends android.nfc.NfcRoutingTableEntry {
184 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public byte[] getSystemCode();
185 }
186
187 @FlaggedApi("android.nfc.nfc_oem_extension") public class RoutingTableTechnologyEntry extends android.nfc.NfcRoutingTableEntry {
188 method @FlaggedApi("android.nfc.nfc_oem_extension") public int getTechnology();
189 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int TECHNOLOGY_A = 0; // 0x0
190 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int TECHNOLOGY_B = 1; // 0x1
191 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int TECHNOLOGY_F = 2; // 0x2
192 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int TECHNOLOGY_UNSUPPORTED = -1; // 0xffffffff
193 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int TECHNOLOGY_V = 3; // 0x3
194 }
195
Roshan Piusbabbde82024-11-20 15:19:00 +0000196 @FlaggedApi("android.nfc.nfc_oem_extension") public final class T4tNdefNfcee {
197 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public int clearData();
198 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isOperationOngoing();
199 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isSupported();
200 method @Nullable @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public android.nfc.T4tNdefNfceeCcFileInfo readCcfile();
201 method @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public byte[] readData(@IntRange(from=0, to=65535) int);
202 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) @WorkerThread public int writeData(@IntRange(from=0, to=65535) int, @NonNull byte[]);
suryaprakash.kondurubc70b852024-12-06 14:17:58 +0530203 field public static final int CLEAR_DATA_FAILED_DEVICE_BUSY = -1; // 0xffffffff
Roshan Piusbabbde82024-11-20 15:19:00 +0000204 field public static final int CLEAR_DATA_FAILED_INTERNAL = 0; // 0x0
205 field public static final int CLEAR_DATA_SUCCESS = 1; // 0x1
206 field public static final int WRITE_DATA_ERROR_CONNECTION_FAILED = -6; // 0xfffffffa
suryaprakash.kondurubc70b852024-12-06 14:17:58 +0530207 field public static final int WRITE_DATA_ERROR_DEVICE_BUSY = -9; // 0xfffffff7
Roshan Piusbabbde82024-11-20 15:19:00 +0000208 field public static final int WRITE_DATA_ERROR_EMPTY_PAYLOAD = -7; // 0xfffffff9
209 field public static final int WRITE_DATA_ERROR_INTERNAL = -1; // 0xffffffff
210 field public static final int WRITE_DATA_ERROR_INVALID_FILE_ID = -4; // 0xfffffffc
211 field public static final int WRITE_DATA_ERROR_INVALID_LENGTH = -5; // 0xfffffffb
212 field public static final int WRITE_DATA_ERROR_NDEF_VALIDATION_FAILED = -8; // 0xfffffff8
213 field public static final int WRITE_DATA_ERROR_NFC_NOT_ON = -3; // 0xfffffffd
214 field public static final int WRITE_DATA_ERROR_RF_ACTIVATED = -2; // 0xfffffffe
215 field public static final int WRITE_DATA_SUCCESS = 0; // 0x0
216 }
217
218 @FlaggedApi("android.nfc.nfc_oem_extension") public final class T4tNdefNfceeCcFileInfo implements android.os.Parcelable {
219 method public int describeContents();
220 method @IntRange(from=15, to=32767) public int getCcFileLength();
221 method @IntRange(from=0xffffffff, to=65535) public int getFileId();
Roshan Piusbabbde82024-11-20 15:19:00 +0000222 method @IntRange(from=5, to=32767) public int getMaxSize();
Roshan Piusbabbde82024-11-20 15:19:00 +0000223 method public int getVersion();
suryaprakash.kondurubc70b852024-12-06 14:17:58 +0530224 method public boolean isReadAllowed();
225 method public boolean isWriteAllowed();
Roshan Piusbabbde82024-11-20 15:19:00 +0000226 method public void writeToParcel(@NonNull android.os.Parcel, int);
227 field @NonNull public static final android.os.Parcelable.Creator<android.nfc.T4tNdefNfceeCcFileInfo> CREATOR;
Roshan Piusbabbde82024-11-20 15:19:00 +0000228 field public static final int VERSION_2_0 = 32; // 0x20
229 field public static final int VERSION_3_0 = 48; // 0x30
Roshan Piusbabbde82024-11-20 15:19:00 +0000230 }
231
Roshan Pius467a55f2023-11-13 14:29:09 -0800232}
233
234package android.nfc.cardemulation {
235
236 public final class CardEmulation {
James Willcox7a57a3b2024-01-19 22:51:25 +0000237 method @FlaggedApi("android.permission.flags.wallet_role_enabled") @Nullable @RequiresPermission(android.Manifest.permission.NFC_PREFERRED_PAYMENT_INFO) public static android.content.ComponentName getPreferredPaymentService(@NonNull android.content.Context);
Roshan Pius467a55f2023-11-13 14:29:09 -0800238 method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<android.nfc.cardemulation.ApduServiceInfo> getServices(@NonNull String, int);
Roshan Piusb8082c02024-11-08 11:44:31 -0800239 method @FlaggedApi("android.nfc.nfc_override_recover_routing_table") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void overrideRoutingTable(@NonNull android.app.Activity, int, int);
240 method @FlaggedApi("android.nfc.nfc_override_recover_routing_table") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void recoverRoutingTable(@NonNull android.app.Activity);
241 method @FlaggedApi("android.nfc.enable_card_emulation_euicc") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int setDefaultNfcSubscriptionId(int);
ziyiw338b8af2024-10-09 18:46:32 +0000242 method @FlaggedApi("android.nfc.nfc_set_service_enabled_for_category_other") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int setServiceEnabledForCategoryOther(@NonNull android.content.ComponentName, boolean);
243 field @FlaggedApi("android.nfc.nfc_set_service_enabled_for_category_other") public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_ALREADY_SET = 3; // 0x3
244 field @FlaggedApi("android.nfc.nfc_set_service_enabled_for_category_other") public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_FEATURE_UNSUPPORTED = 1; // 0x1
245 field @FlaggedApi("android.nfc.nfc_set_service_enabled_for_category_other") public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_INVALID_SERVICE = 2; // 0x2
246 field @FlaggedApi("android.nfc.nfc_set_service_enabled_for_category_other") public static final int SET_SERVICE_ENABLED_STATUS_FAILURE_UNKNOWN_ERROR = 4; // 0x4
247 field @FlaggedApi("android.nfc.nfc_set_service_enabled_for_category_other") public static final int SET_SERVICE_ENABLED_STATUS_OK = 0; // 0x0
Roshan Piusb8082c02024-11-08 11:44:31 -0800248 field @FlaggedApi("android.nfc.enable_card_emulation_euicc") public static final int SET_SUBSCRIPTION_ID_STATUS_FAILED_INTERNAL_ERROR = 2; // 0x2
249 field @FlaggedApi("android.nfc.enable_card_emulation_euicc") public static final int SET_SUBSCRIPTION_ID_STATUS_FAILED_INVALID_SUBSCRIPTION_ID = 1; // 0x1
250 field @FlaggedApi("android.nfc.enable_card_emulation_euicc") public static final int SET_SUBSCRIPTION_ID_STATUS_FAILED_NOT_SUPPORTED = 3; // 0x3
251 field @FlaggedApi("android.nfc.enable_card_emulation_euicc") public static final int SET_SUBSCRIPTION_ID_STATUS_SUCCESS = 0; // 0x0
ziyiwd8e58c92024-12-02 23:41:47 +0000252 field @FlaggedApi("android.nfc.enable_card_emulation_euicc") public static final int SET_SUBSCRIPTION_ID_STATUS_UNKNOWN = -1; // 0xffffffff
Roshan Pius467a55f2023-11-13 14:29:09 -0800253 }
254
255}
256