Overview
The Star Cash Drawer SDK for Android provides simple Java APIs to manage USB-connected Star Micronics drawers. It includes:
discover()— Detect connected Star USB drawersopen()— Send open commandstatus()— Get drawer open/close status
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
port— Drawer port number (1–8)context— AndroidContext
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
"open""closed""not connected"/"permission denied"
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
permission denied— User denied USB accessfailed to get status— Drawer did not respondnot connected— No Star drawer detected
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");
}