# ReaderInfo

class ReaderInfo(val id: String, val model: ReaderInfo.Model, state: ReaderInfo.State, val status: ReaderInfo.Status, val serialNumber: String?, val name: String, val connectionType: ReaderInfo.ConnectionType, val batteryStatus: ReaderInfo.BatteryStatus?, val firmwareVersion: String?, val firmwarePercent: Int?, val supportedCardEntryMethods: Set<CardEntryMethod>, val isForgettable: Boolean = model == Model.CONTACTLESS_AND_CHIP, val isBlinkable: Boolean = model == Model.CONTACTLESS_AND_CHIP)

Provides information about an individual card reader at a given time. This is an immutable snapshot of the reader's past state, not a live model object. Updates are provided via callbacks registered via ReaderManager.setReaderChangedCallback.

#### Parameters

id

String that identifies this reader. For "smart" readers, this represents the mac address of the device. If the reader is a magstripe reader, the ID will be a string identifying it as a magstripe reader.

model

Type of the reader, one of the Model.

state

Legacy reader state. Use ReaderInfo.Status for an improved representation of the reader's state.

status

Current status of the reader. A reader in Status.Ready can be used to take a payment. Other statuses represent readers that cannot currently take payments. However, you can start a payment with a non-Ready reader if the payment is made with manually-entered card information, or if the reader becomes Status.Ready later in the course of the payment.

serialNumber

Unique but not particularly informative string that identifies this reader. Provided by "smart" readers. This represents the serial number of the device. A null value indicates that the smart reader has not yet provided a serial or that the device isn't a smart reader.

name

Readable and hopefully-unique name for this reader. Unlike the return from serialNumber, which is guaranteed to be different from any other reader, the name is only unlikely to be duplicated by other readers.

batteryStatus

Current battery information. Returns `null` for readers without a battery, such as the magstripe reader. See BatteryStatus.

firmwareVersion

Unique identifier of the firmware currently installed on the reader. If the firmware version is not identifiable (e.g. magstripe readers), returns `null`.

firmwarePercent

set only if either a blocking or non-blocking firmware update is in progress. If set, it is an integer from 0 to 100 inclusive with an estimate of the update percentage completed. For a blocking firmware update, the state will be State.UpdatingFirmware, but for the more common non-blocking update, the state will typically be State.Ready or possibly State.Connecting.

supportedCardEntryMethods

Set of card entry methods this reader can support. At a given time, a reader might not be able to use all the "supported" payment methods. In particular, for a CardEntryMethod.CONTACTLESS the contactless NFC field will time out a while after a payment begins, and after that a contactless tap will not work, even though contactless payments are supported by the reader. Because these changes to the available payment methods happen in the context of a payment, they are reported through the com.squareup.sdk.mobilepayments.payment.PaymentManager instead. See CardEntryMethod for possible entry values.

isForgettable

Indicates whether reader can be "forgotten", either to permanently remove the reader, or to allow it to pair again "from scratch".

isBlinkable

Indicates whether reader has LEDs to blink. This can be used to identify a particular reader among several, with the ReaderManager.blink method.

## Constructors

ReaderInfo
Link copied to clipboard
constructor(id: String, model: ReaderInfo.Model, state: ReaderInfo.State, status: ReaderInfo.Status, serialNumber: String?, name: String, connectionType: ReaderInfo.ConnectionType, batteryStatus: ReaderInfo.BatteryStatus?, firmwareVersion: String?, firmwarePercent: Int?, supportedCardEntryMethods: Set<CardEntryMethod>, isForgettable: Boolean = model == Model.CONTACTLESS_AND_CHIP, isBlinkable: Boolean = model == Model.CONTACTLESS_AND_CHIP)

## Types

BatteryStatus
Link copied to clipboard
class BatteryStatus(val percent: Int, val isCharging: Boolean)

Status of the reader's battery.

ConnectionType
Link copied to clipboard
enum ConnectionType : Enum<ReaderInfo.ConnectionType>

The reader's connection type.

Model
Link copied to clipboard
enum Model : Enum<ReaderInfo.Model>

The model of reader.

Status
Link copied to clipboard
sealed class Status

The current status of a reader. Model.MAGSTRIPE readers are always `Ready`.

## Properties

batteryStatus
Link copied to clipboard
val batteryStatus: ReaderInfo.BatteryStatus?
connectionType
Link copied to clipboard
val connectionType: ReaderInfo.ConnectionType
firmwarePercent
Link copied to clipboard
val firmwarePercent: Int?
firmwareVersion
Link copied to clipboard
val firmwareVersion: String?
id
Link copied to clipboard
val id: String
isBlinkable
Link copied to clipboard
val isBlinkable: Boolean
isForgettable
Link copied to clipboard
val isForgettable: Boolean
model
Link copied to clipboard
val model: ReaderInfo.Model
name
Link copied to clipboard
val name: String
serialNumber
Link copied to clipboard
val serialNumber: String?
status
Link copied to clipboard
val status: ReaderInfo.Status
supportedCardEntryMethods
Link copied to clipboard
val supportedCardEntryMethods: Set<CardEntryMethod>