Overview

The Star Cash Drawer SDK for Android provides simple Java APIs to manage USB-connected Star Micronics drawers. It includes:

Discover Drawers

Detect all connected Star Micronics USB drawers.

public static ArrayList<CashDrawer> discover(Context context)

Returns

An ArrayList<CashDrawer> of connected devices.


ArrayList<CashDrawer> drawers = CashDrawer.discover(context);
for (CashDrawer d : drawers) {
    Log.d("Drawer", d.modelName + " (Port " + d.port + ")");
}
      

Open Drawer

Send a command to open a specific drawer.

public Boolean open(int port, Context context)

Parameters

Returns

true if opened successfully; otherwise false.


CashDrawer drawer = new CashDrawer();
boolean opened = drawer.open(1, context);
Log.d("Drawer", opened ? "Drawer opened" : "Failed to open");
      

Check Drawer Status

Check if a cash drawer is open or closed.

public String status(int port, Context context)

Returns


CashDrawer drawer = new CashDrawer();
String currentStatus = drawer.status(1, context);
Log.d("Drawer", "Status: " + currentStatus);
      

Permissions

Ensure the following are declared in your AndroidManifest.xml:


<uses-feature android:name="android.hardware.usb.host" />
<uses-permission android:name="android.permission.USB_PERMISSION" />
      

Error Handling

Full Example


CashDrawer drawer = new CashDrawer();

// Discover connected drawers
ArrayList<CashDrawer> drawers = CashDrawer.discover(context);
if (!drawers.isEmpty()) {
    CashDrawer d = drawers.get(0);

    // Open the drawer
    boolean opened = d.open(d.port, context);
    Log.d("Drawer", opened ? "Drawer opened successfully" : "Open failed");

    // Check status
    String state = d.status(d.port, context);
    Log.d("Drawer", "Drawer is " + state);
} else {
    Log.d("Drawer", "No drawers detected");
}