'Multiple NFC adapters under Android

The Android documentation states that NfcAdapter#getDefaultAdapter(android.content.Context) can be used to get the default NFC adapter, stating that "Most Android devices will only have one NFC Adapter (NFC Controller)."

As no further explanation follows, to me, the following aspects are not clear:

a) Do Android devices with multiple internal NFC controllers exist? What happens when calling that method on such a device?

b) Could there be corner cases (e.g., if no internal NFC controller exists) where that method returns the embedded secure element or the SIM card instead?

c) Are there any external NFC readers compatible with the default Android NFC stack? Or can they somehow become the "default adapter" after additionally installing an app which provides an SDK for talking to them? If yes, is it possible that multiple NFC readers are available when calling that method and what happens in such a case?

In other words: can we rely on getDefaultAdapter() returning only a (single) internal NFC adapter in all cases?



Solution 1:[1]

You probably want to read the Android source code

It also states

  • Most Android devices will only have one NFC Adapter (NFC Controller).

The most likely case if it does not return an adapter is for it to return null (device has not NFC hardware or it is powered off)

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Andrew