summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Roshan Pius <rpius@google.com> 2023-10-23 20:36:57 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2023-10-23 20:36:57 +0000
commit867815f0bea9f5497ef4695fb8bd5909e7ae6abd (patch)
treeb4e5f500d41c8412a4718bea1a5a89dc5ccc11be
parent5d339d0a4be61967e0b71ce70eae51b1691a879e (diff)
parentaff3d1fd296b931e48f6c2a266c5ad17fb190611 (diff)
Merge "nfc(api): Separate out NfcExtras from nfc APIs (2/2)" into main
-rw-r--r--nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java15
1 files changed, 14 insertions, 1 deletions
diff --git a/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java b/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java
index a7c6c690f852..fe8386e523b2 100644
--- a/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java
+++ b/nfc-extras/java/com/android/nfc_extras/NfcAdapterExtras.java
@@ -76,9 +76,22 @@ public final class NfcAdapterExtras {
private final NfcAdapter mAdapter;
final String mPackageName;
+ private static INfcAdapterExtras
+ getNfcAdapterExtrasInterfaceFromNfcAdapter(NfcAdapter adapter) {
+ try {
+ Method method = NfcAdapter.class.getDeclaredMethod("getNfcAdapterExtrasInterface");
+ method.setAccessible(true);
+ return (INfcAdapterExtras) method.invoke(adapter);
+ } catch (SecurityException | NoSuchMethodException | IllegalArgumentException
+ | IllegalAccessException | IllegalAccessError | InvocationTargetException e) {
+ Log.e(TAG, "Unable to get context from NfcAdapter");
+ }
+ return null;
+ }
+
/** get service handles */
private static void initService(NfcAdapter adapter) {
- final INfcAdapterExtras service = adapter.getNfcAdapterExtrasInterface();
+ final INfcAdapterExtras service = getNfcAdapterExtrasInterfaceFromNfcAdapter(adapter);
if (service != null) {
// Leave stale rather than receive a null value.
sService = service;