That's correct. The phone needs to implement the Open Mobile API (by means of the smartcard system service) in order for your app to be able to use it. Not all devices implement this. It's mainly devices from Samsung, Sony, and HTC which support the Open Mobile API.
In addition to that restriction, you need the SE (UICC/eSE) set up to allow your application (this is handled by GlobalPlatform SE Access Control) to interact with the SE.
Finally, I'm not aware of any complete list (and ther probably is none). However, have a look at the question List of OMAPI supported devices to get some ideas on how to test devices and how to let Play Store generate a list for you.
You may also want to read our report Open Mobile API: Accessing the UICC on Android Devices to get some idea about how the Open Mobile API works.