Loading nfc/api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -58,10 +58,15 @@ package android.nfc { @FlaggedApi("android.nfc.nfc_oem_extension") public final class NfcOemExtension { method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void clearPreference(); method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public java.util.List<java.lang.String> getActiveNfceeList(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean hasUserEnabledNfc(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagPresent(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void maybeTriggerFirmwareUpdate(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void pausePolling(int); 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); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void resumePolling(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void setControllerAlwaysOnMode(int); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void synchronizeScreenState(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void triggerInitialization(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void unregisterCallback(@NonNull android.nfc.NfcOemExtension.Callback); field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int DISABLE = 0; // 0x0 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_DEFAULT = 1; // 0x1 Loading nfc/java/android/nfc/INfcAdapter.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -114,4 +114,7 @@ interface INfcAdapter void setScreenState(); void checkFirmware(); List<String> fetchActiveNfceeList(); void triggerInitialization(); boolean getSettingStatus(); boolean isTagPresent(); } nfc/java/android/nfc/NfcOemExtension.java +52 −0 Original line number Diff line number Diff line Loading @@ -471,6 +471,58 @@ public final class NfcOemExtension { NfcAdapter.callService(() -> NfcAdapter.sService.setControllerAlwaysOn(mode)); } /** * Triggers NFC initialization. If OEM extension is registered * (indicated via `enable_oem_extension` NFC overlay), the NFC stack initialization at bootup * is delayed until the OEM extension app triggers the initialization via this call. */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void triggerInitialization() { NfcAdapter.callService(() -> NfcAdapter.sService.triggerInitialization()); } /** * Gets the last user toggle status. * @return true if NFC is set to ON, false otherwise */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean hasUserEnabledNfc() { return NfcAdapter.callServiceReturn(() -> NfcAdapter.sService.getSettingStatus(), false); } /** * Checks if the tag is present or not. * @return true if the tag is present, false otherwise */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagPresent() { return NfcAdapter.callServiceReturn(() -> NfcAdapter.sService.isTagPresent(), false); } /** * Pauses NFC tag reader mode polling for a {@code timeoutInMs} millisecond. If polling must be * resumed before timeout, use {@link #resumePolling()}. * @param timeoutInMs the pause polling duration in millisecond */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void pausePolling(int timeoutInMs) { NfcAdapter.callService(() -> NfcAdapter.sService.pausePolling(timeoutInMs)); } /** * Resumes default NFC tag reader mode polling for the current device state if polling is * paused. Calling this while polling is not paused is a no-op. */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void resumePolling() { NfcAdapter.callService(() -> NfcAdapter.sService.resumePolling()); } private final class NfcOemExtensionCallback extends INfcOemExtensionCallback.Stub { @Override Loading Loading
nfc/api/system-current.txt +5 −0 Original line number Diff line number Diff line Loading @@ -58,10 +58,15 @@ package android.nfc { @FlaggedApi("android.nfc.nfc_oem_extension") public final class NfcOemExtension { method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void clearPreference(); method @FlaggedApi("android.nfc.nfc_oem_extension") @NonNull public java.util.List<java.lang.String> getActiveNfceeList(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean hasUserEnabledNfc(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagPresent(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void maybeTriggerFirmwareUpdate(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void pausePolling(int); 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); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void resumePolling(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.NFC_SET_CONTROLLER_ALWAYS_ON) public void setControllerAlwaysOnMode(int); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void synchronizeScreenState(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void triggerInitialization(); method @FlaggedApi("android.nfc.nfc_oem_extension") @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void unregisterCallback(@NonNull android.nfc.NfcOemExtension.Callback); field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int DISABLE = 0; // 0x0 field @FlaggedApi("android.nfc.nfc_oem_extension") public static final int ENABLE_DEFAULT = 1; // 0x1 Loading
nfc/java/android/nfc/INfcAdapter.aidl +3 −0 Original line number Diff line number Diff line Loading @@ -114,4 +114,7 @@ interface INfcAdapter void setScreenState(); void checkFirmware(); List<String> fetchActiveNfceeList(); void triggerInitialization(); boolean getSettingStatus(); boolean isTagPresent(); }
nfc/java/android/nfc/NfcOemExtension.java +52 −0 Original line number Diff line number Diff line Loading @@ -471,6 +471,58 @@ public final class NfcOemExtension { NfcAdapter.callService(() -> NfcAdapter.sService.setControllerAlwaysOn(mode)); } /** * Triggers NFC initialization. If OEM extension is registered * (indicated via `enable_oem_extension` NFC overlay), the NFC stack initialization at bootup * is delayed until the OEM extension app triggers the initialization via this call. */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void triggerInitialization() { NfcAdapter.callService(() -> NfcAdapter.sService.triggerInitialization()); } /** * Gets the last user toggle status. * @return true if NFC is set to ON, false otherwise */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean hasUserEnabledNfc() { return NfcAdapter.callServiceReturn(() -> NfcAdapter.sService.getSettingStatus(), false); } /** * Checks if the tag is present or not. * @return true if the tag is present, false otherwise */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public boolean isTagPresent() { return NfcAdapter.callServiceReturn(() -> NfcAdapter.sService.isTagPresent(), false); } /** * Pauses NFC tag reader mode polling for a {@code timeoutInMs} millisecond. If polling must be * resumed before timeout, use {@link #resumePolling()}. * @param timeoutInMs the pause polling duration in millisecond */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void pausePolling(int timeoutInMs) { NfcAdapter.callService(() -> NfcAdapter.sService.pausePolling(timeoutInMs)); } /** * Resumes default NFC tag reader mode polling for the current device state if polling is * paused. Calling this while polling is not paused is a no-op. */ @FlaggedApi(Flags.FLAG_NFC_OEM_EXTENSION) @RequiresPermission(android.Manifest.permission.WRITE_SECURE_SETTINGS) public void resumePolling() { NfcAdapter.callService(() -> NfcAdapter.sService.resumePolling()); } private final class NfcOemExtensionCallback extends INfcOemExtensionCallback.Stub { @Override Loading