diff options
author | 2023-10-23 20:36:57 +0000 | |
---|---|---|
committer | 2023-10-23 20:36:57 +0000 | |
commit | 867815f0bea9f5497ef4695fb8bd5909e7ae6abd (patch) | |
tree | b4e5f500d41c8412a4718bea1a5a89dc5ccc11be | |
parent | 5d339d0a4be61967e0b71ce70eae51b1691a879e (diff) | |
parent | aff3d1fd296b931e48f6c2a266c5ad17fb190611 (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.java | 15 |
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; |