lightbulb_outline Please take our October 2018 developer survey. Start survey
added in API level 28

Reader

public final class Reader
extends Object

java.lang.Object
   ↳ android.se.omapi.Reader


Instances of this class represent Secure Element Readers supported to this device. These Readers can be physical devices or virtual devices. They can be removable or not. They can contain Secure Element that can or cannot be removed.

Summary

Public methods

void closeSessions()

Close all the sessions opened on this reader.

String getName()

Return the name of this reader.

SEService getSEService()

Return the Secure Element service this reader is bound to.

boolean isSecureElementPresent()

Check if a Secure Element is present in this reader.

Session openSession()

Connects to a Secure Element in this reader.

Inherited methods

Public methods

closeSessions

added in API level 28
public void closeSessions ()

Close all the sessions opened on this reader. All the channels opened by all these sessions will be closed.

getName

added in API level 28
public String getName ()

Return the name of this reader.

  • If this reader is a SIM reader, then its name must be "SIM[Slot]".
  • If the reader is a SD or micro SD reader, then its name must be "SD[Slot]"
  • If the reader is a embedded SE reader, then its name must be "eSE[Slot]"
Slot is a decimal number without leading zeros. The Numbering must start with 1 (e.g. SIM1, SIM2, ... or SD1, SD2, ... or eSE1, eSE2, ...). The slot number “1” for a reader is optional (SIM and SIM1 are both valid for the first SIM-reader, but if there are two readers then the second reader must be named SIM2). This applies also for other SD or SE readers.

Returns
String the reader name, as a String.

This value will never be null.

getSEService

added in API level 28
public SEService getSEService ()

Return the Secure Element service this reader is bound to.

Returns
SEService the SEService object.

This value will never be null.

isSecureElementPresent

added in API level 28
public boolean isSecureElementPresent ()

Check if a Secure Element is present in this reader.

Returns
boolean true if the SE is present, false otherwise.

Throws
IllegalStateException if the service is not connected

openSession

added in API level 28
public Session openSession ()

Connects to a Secure Element in this reader.
This method prepares (initialises) the Secure Element for communication before the Session object is returned (e.g. powers the Secure Element by ICC ON if its not already on). There might be multiple sessions opened at the same time on the same reader. The system ensures the interleaving of APDUs between the respective sessions.

Returns
Session a Session object to be used to create Channels.

This value will never be null.

Throws
IOException if something went wrong with the communicating to the Secure Element or the reader.