blob: 24e14e69637bcd1661ba4d9681b3d63014653ac6 [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();
14 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagIntentAppPreferenceSupported();
15 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 +053016 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 -080017 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 -080018 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean removeNfcUnlockHandler(android.nfc.NfcAdapter.NfcUnlockHandler);
suryaprakash.konduruace29c12023-12-04 23:12:58 +053019 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 -080020 method @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public boolean setControllerAlwaysOn(boolean);
Roshan Piusaf9cc1f2024-01-30 11:44:19 -080021 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 -080022 method @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int setTagIntentAppPreferenceForUser(int, @NonNull String, boolean);
Jack Yudc872e02024-01-09 09:40:40 +000023 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 -080024 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 +000025 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 -080026 method @FlaggedApi("android.nfc.enable_nfc_charging") public void unregisterWlcStateListener(@NonNull android.nfc.NfcAdapter.WlcStateListener);
Roshan Pius467a55f2023-11-13 14:29:09 -080027 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 -080028 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";
29 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 -070030 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 +053031 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int MESSAGE_TYPE_COMMAND = 1; // 0x1
32 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int SEND_VENDOR_NCI_STATUS_FAILED = 3; // 0x3
33 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int SEND_VENDOR_NCI_STATUS_MESSAGE_CORRUPTED = 2; // 0x2
34 field @FlaggedApi("android.nfc.nfc_vendor_cmd") public static final int SEND_VENDOR_NCI_STATUS_REJECTED = 1; // 0x1
35 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 -080036 field public static final int TAG_INTENT_APP_PREF_RESULT_PACKAGE_NOT_FOUND = -1; // 0xffffffff
37 field public static final int TAG_INTENT_APP_PREF_RESULT_SUCCESS = 0; // 0x0
38 field public static final int TAG_INTENT_APP_PREF_RESULT_UNAVAILABLE = -2; // 0xfffffffe
39 }
40
41 public static interface NfcAdapter.ControllerAlwaysOnListener {
42 method public void onControllerAlwaysOnChanged(boolean);
43 }
44
45 public static interface NfcAdapter.NfcUnlockHandler {
46 method public boolean onUnlockAttempted(android.nfc.Tag);
47 }
48
suryaprakash.konduruace29c12023-12-04 23:12:58 +053049 @FlaggedApi("android.nfc.nfc_vendor_cmd") public static interface NfcAdapter.NfcVendorNciCallback {
50 method @FlaggedApi("android.nfc.nfc_vendor_cmd") public void onVendorNciNotification(@IntRange(from=9, to=15) int, int, @NonNull byte[]);
51 method @FlaggedApi("android.nfc.nfc_vendor_cmd") public void onVendorNciResponse(@IntRange(from=0, to=15) int, int, @NonNull byte[]);
52 }
53
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080054 @FlaggedApi("android.nfc.enable_nfc_charging") public static interface NfcAdapter.WlcStateListener {
Jack Yudc872e02024-01-09 09:40:40 +000055 method public void onWlcStateChanged(@NonNull android.nfc.WlcListenerDeviceInfo);
Roshan Piusb5ff8cf2023-11-13 14:29:09 -080056 }
57
Roshan Piusa4329542024-03-25 13:01:21 -070058 @FlaggedApi("android.nfc.nfc_oem_extension") public final class NfcOemExtension {
59 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void clearPreference();
Himanshu Singh Kushwah9fa04812024-06-19 16:46:28 +053060 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public java.util.List<java.lang.String> getActiveNfceeList();
ziyiwb8651d72024-08-19 23:30:10 +000061 method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public android.nfc.RoutingStatus getRoutingStatus();
ziyiwaebcc462024-09-20 20:56:25 +000062 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean hasUserEnabledNfc();
ziyiwb8651d72024-08-19 23:30:10 +000063 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isAutoChangeEnabled();
ziyiwaebcc462024-09-20 20:56:25 +000064 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagPresent();
ziyiwcbb1e362024-05-09 20:22:04 +000065 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 +020066 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void overwriteRoutingTable(int, int, int, int);
ziyiwaebcc462024-09-20 20:56:25 +000067 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void pausePolling(int);
Roshan Piusa4329542024-03-25 13:01:21 -070068 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);
ziyiwaebcc462024-09-20 20:56:25 +000069 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void resumePolling();
ziyiwb8651d72024-08-19 23:30:10 +000070 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void setAutoChangeEnabled(boolean);
Roshan677b137f2024-09-19 11:29:23 -070071 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 +000072 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void synchronizeScreenState();
ziyiwaebcc462024-09-20 20:56:25 +000073 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void triggerInitialization();
Roshan Piusa4329542024-03-25 13:01:21 -070074 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void unregisterCallback(@NonNull android.nfc.NfcOemExtension.Callback);
Roshan Pius60d125b2024-09-18 14:06:47 +000075 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int DISABLE = 0; // 0x0
76 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_DEFAULT = 1; // 0x1
77 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_EE = 3; // 0x3
78 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_TRANSPARENT = 2; // 0x2
ziyiw2c965222024-07-30 18:40:06 +000079 field public static final int HCE_ACTIVATE = 1; // 0x1
80 field public static final int HCE_DATA_TRANSFERRED = 2; // 0x2
81 field public static final int HCE_DEACTIVATE = 3; // 0x3
82 field public static final int STATUS_OK = 0; // 0x0
83 field public static final int STATUS_UNKNOWN_ERROR = 1; // 0x1
Roshan Piusa4329542024-03-25 13:01:21 -070084 }
85
86 public static interface NfcOemExtension.Callback {
ziyiw2c965222024-07-30 18:40:06 +000087 method public void onApplyRouting(@NonNull java.util.function.Consumer<java.lang.Boolean>);
88 method public void onBootFinished(int);
89 method public void onBootStarted();
suryaprakash.konduru033c2792024-06-04 12:31:59 +053090 method public void onCardEmulationActivated(boolean);
ziyiw2c965222024-07-30 18:40:06 +000091 method public void onDisable(@NonNull java.util.function.Consumer<java.lang.Boolean>);
92 method public void onDisableFinished(int);
93 method public void onDisableStarted();
94 method public void onEnable(@NonNull java.util.function.Consumer<java.lang.Boolean>);
95 method public void onEnableFinished(int);
96 method public void onEnableStarted();
ziyiw30392b82024-09-19 16:16:07 +000097 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 +000098 method public void onHceEventReceived(int);
ziyiw30392b82024-09-19 16:16:07 +000099 method public void onLaunchHceAppChooserActivity(@NonNull String, @NonNull java.util.List<android.nfc.cardemulation.ApduServiceInfo>, @NonNull android.content.ComponentName, @NonNull String);
100 method public void onLaunchHceTapAgainDialog(@NonNull android.nfc.cardemulation.ApduServiceInfo, @NonNull String);
101 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 +0000102 method public void onNdefRead(@NonNull java.util.function.Consumer<java.lang.Boolean>);
Roshan Piusb41fe362024-09-04 19:04:50 +0000103 method public void onReaderOptionChanged(boolean);
suryaprakash.konduru033c2792024-06-04 12:31:59 +0530104 method public void onRfDiscoveryStarted(boolean);
105 method public void onRfFieldActivated(boolean);
ziyiw2c965222024-07-30 18:40:06 +0000106 method public void onRoutingChanged();
107 method public void onStateUpdated(int);
Roshan Piusa4329542024-03-25 13:01:21 -0700108 method public void onTagConnected(boolean, @NonNull android.nfc.Tag);
ziyiw2c965222024-07-30 18:40:06 +0000109 method public void onTagDispatch(@NonNull java.util.function.Consumer<java.lang.Boolean>);
Roshan Piusa4329542024-03-25 13:01:21 -0700110 }
111
ziyiwb8651d72024-08-19 23:30:10 +0000112 @FlaggedApi("android.nfc.nfc_oem_extension") public class RoutingStatus {
113 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultIsoDepRoute();
114 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultOffHostRoute();
115 method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public int getDefaultRoute();
116 }
117
Roshan Pius467a55f2023-11-13 14:29:09 -0800118}
119
120package android.nfc.cardemulation {
121
122 public final class CardEmulation {
James Willcox7a57a3b2024-01-19 22:51:25 +0000123 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 -0800124 method @FlaggedApi("android.nfc.enable_nfc_mainline") @NonNull public java.util.List<android.nfc.cardemulation.ApduServiceInfo> getServices(@NonNull String, int);
ziyiw2d05ad42024-08-23 18:18:04 +0000125 method @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public void overrideRoutingTable(@NonNull android.app.Activity, int, int);
ziyiw3ee30132024-07-30 21:26:50 +0000126 method @FlaggedApi("android.nfc.nfc_override_recover_routing_table") public void recoverRoutingTable(@NonNull android.app.Activity);
Roshan Pius467a55f2023-11-13 14:29:09 -0800127 }
128
129}
130