Mobile Printer Android SDK
and API Reference Guide
P1069079-001
Rev. 1.02
ZQ110
- 2 -
Mobile Printer
Android SDK API Reference Guide
Table of Contents
1. ZQ110 Printer Software Development Kit (SDK) for Android™ Overview ............................................. 7
1-1 Features .................................................................................................................................................. 7
2-1 Android Version ........................................................................................................................................ 7
3. Development Environment ......................................................................................................................... 8
3-1 System Requirements .............................................................................................................................. 8
3-1-1 Operating System ...................................................................................................................... 8
3-1-2 Eclipse IDE ................................................................................................................................ 8
3-2 Connecting an Android Device to Your Printer ........................................................................................ 9
3-2-1 Bluetooth .................................................................................................................................... 9
3-2-3 USB ........................................................................................................................................... 11
3-2-4 Wi-Fi Direct .............................................................................................................................. 13
5. Sample Program ........................................................................................................................................ 16
5-3 How to Use Sample Program ................................................................................................................ 17
5-3-1 Search and Connect Printer .................................................................................................... 17
6. API Reference............................................................................................................................................. 18
7-3 Open Printer Port ................................................................................................................................. 120
7-4 Send Printer Data ................................................................................................................................ 121
7-5 Close Printer Port ................................................................................................................................. 122
Rev. 1.02
ZQ110
- 4 -
Mobile Printer
Android SDK API Reference Guide
■Proprietary Statements
This manual contains proprietary information for Zebra Technologies Corporation. It is
intended solely for the information and use of parties operating and maintaining the equipment described herein. Such proprietary information may not be used, reproduced, or disclosed to any other parties for any other purpose without the expressed written permission
of Zebra Technologies Corporation.
Product Improvements
Since continuous product improvement is a policy of Zebra Technologies Corporation, all
specifications and signs are subject to change without notice.
FCC Compliance Statement
NOTE: This equipment has been tested and found to comply with the limits of a Class B
digital device, pursuant to Part 15 of the FCC Rules. These limits are designed to provide
reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and
used in accordance with the instructions, may cause harmful interference with radio
communications. However, there is no guarantee that interference will not occur in a
particular installation. If this equipment does cause harmful interference to radio or
television reception, which can be determined by turning the equipment off and on, the
user is encouraged to try to correct the interference by one or more of the following
measures:
• Reorient or relocate the receiving antenna.
• Increase the separation between the equipment and the receiver.
• Connect the equipment to an outlet or circuit different from that to which the receiver is
connected.
• Consult the dealer or an experienced radio/TV technician for help.
WARNING: Exposure to Radio Frequency radiation. To conform to FCC RF exposure requirements this device shall be used in accordance with the operating conditions and instructions listed in this manual.
NOTE: This unit was tested with shielded cables on the peripheral devices. Shielded
cables must be used with the unit to ensure compliance.
Changes or modifications to this unit not expressly approved by Zebra Technologies
Corporation could void the user’s authority to operate this equipment.
Rev. 1.02
ZQ110
- 5 -
Mobile Printer
Android SDK API Reference Guide
Canadian Compliance Statement
This Class B digital apparatus complies with Canadian ICES-003.
Cet appareil numérique de la classe B est conforme á la norme NMB-003 du Canada.
“IC:” before the equipment certification number signifies that the Industry Canada technical
specifications were met. It does not guarantee that the certified product will operate to the
user’s satisfaction.
Liability Disclaimer
Inasmuch as every effort has been made to supply accurate information in this manual,
Zebra Technologies Corporation is not liable for any erroneous information or omissions.
Zebra Technologies Corporation reserves the right to correct any such errors and
disclaims liability resulting therefrom.
No Liability for Consequential Damage
In no event shall Zebra Technologies Corporation or anyone else involved in the creation,
production, or delivery of the accompanying product (including hardware and software) be
liable for any damages whatsoever (including, without limitation, damages for loss of
business profits, business interruption, loss of business information, or other pecuniary
loss) arising out of the use of or the results of use of or inability to use such product, even
if Zebra Technologies Corporation has been advised of the possibility of such damages.
Because some states do not allow the exclusion of liability for consequential or incidental
damages, the above limitation may not apply to you.
1. ZQ110 Printer Software Development Kit (SDK) for Android™
Overview
1-1 Features
1. Android applications developed with the Android SDK can check the status of the
printer.
2. The Android SDK is designed to make mobile printing easier with the ZQ110 using
Android applications.
1-2 Functions
1. Print Settings (Alignment / Page Mode)
2. Charter Data Settings (Code Page / Device Font Type)
3. Character Style Settings (Bold / Reverse / Underline)
4. Image Printing (Raster Bit / NV Graphics)
5. One-Dimensional Barcode Printing
6. Two-Dimensional Barcode Printing
7. Printer Command Transmission
8. Printer Response Reception (Printing Result / Printer Status)
2. Operating Environment
2-1 Android Version
1. Printing over Bluetooth or Wireless LAN: Android 2.2 (Froyo) or higher
2. Printing over USB: Android 3.1 (Honeycomb) or higher
2-2 Printer Connectivity
1. Bluetooth
2. Wireless LAN
3. USB
Rev. 1.02
- 8 -
Mobile Printer
Android SDK API Reference Guide
3. Development Environment
3-1 System Requirements
3-1-1 Operating System
Windows XP (32-bit), Vista (32- or 64-bit), or Windows 7 (32- or 64-bit)
Mac OS X 10.5.8 or later (x86 only)
Linux (tested on Ubuntu Linux, Lucid Lynx)
GNU C Library (glibc) 2.7 or later is required.
On Ubuntu Linux, version 8.04 or later is required.
64-bit distributions must be capable of running 32-bit applications.
3-1-2Eclipse IDE
Eclipse 3.6.2 (Helios) or greater
JDK 6 (JRE alone is not sufficient)
NOTE - Make sure Bluetooth is enabled on your printer and make sure the printer
power is ON.
3-2 Connecting an Android Device to Your Printer
The following screens were captured from an Android 4.4 smartphone. The screens and
field names may be slightly different on other Android operating systems or devices.
3-2-1Bluetooth
1. On your Android device, select Settings > Bluetooth.
2. Select Scan. The printer performs service discovery and pairing operation.
3. The printer’s default PIN code is “0000”. Enter the PIN code on your Android device.
4. Your printer connects directly to your Android device.
Rev. 1.02
- 10 -
Mobile Printer
Android SDK API Reference Guide
NOTE – By factory default, the printer network mode is set to “ad-hoc”, also known as
“peer-to-peer” mode. To change the network mode and WLAN configuration
on your printer, use the Net Configuration Tool included on the CD. Refer to
the Net Configuration Tool Manual also included on the CD for instructions
on installing and using the Net Configuration Tool.
NOTE - Additional settings are not required to connect the Android device to the
TCP/IP port of ZQ110.
3-2-2Network (WLAN)
1. Print a configuration label on your printer. Refer to the ZQ110 User Manual for
instructions. Review the configuration label and make sure WIFI is enabled on your
printer and your printer’s Network Mode: Infrastructure (AP).
2. To connect the printer to the network, follow the instructions in the Net Configuration Tool Manual to manually assign an IP address to your printer or
obtain an IP address automatically using DHCP (Dynamic Host Configuration
Protocol).
3. On your Android device, tap or click Settings.
ZQ110
4. Connect the device to the wireless network. Make sure the printer is connected to
the same network.
Rev. 1.02
- 11 -
Mobile Printer
Android SDK API Reference Guide
3-2-3 USB
1. Android devices can be connected to USB peripheral devices using OS version 3.1
or higher and a USB cable. A mini/micro USB adaptor may be required depending
on your specific Android device. Check with the device manufacturers’ user
documentation for further information.
2. Drivers or printer software is not necessary on Android devices to allow printing.
3. When the ZQ110 is connected the first time, the following message may appear:
ZQ110
Rev. 1.02
- 12 -
Mobile Printer
Android SDK API Reference Guide
4. The following code should be entered to AndroidManifest.xml and
res/xml/device_filter.xml in order to connect USB peripheral devices.
[AndroidManifest.xml]
[device_filter.xml]
Rev. 1.02
ZQ110
- 13 -
Mobile Printer
Android SDK API Reference Guide
3-2-4 Wi-Fi Direct
Android version should be 4.0 or higher in order to connect with peripheral devices using
Wi-Fi Direct.
No special driver or printer software is required on Android device.
1. Tap or click Settings.
2. Select Wi-Fi Direct.
3. Select the printer from search list. The default PIN for Wi-Fi Direct is “12345678”.
Rev. 1.02
- 14 -
Mobile Printer
Android SDK API Reference Guide
3-2-5 Setting Android Device Developer Options
NOTE - Android Development Tool (ADT) plug-in should be installed in Eclipse IDE.
1. Tap or click Settings.
2. Tap or click Developer options.
3. Tap or click USB debugging.
ZQ110
3-3 Importing Library and Running Sample Application
ADT (Android Development Tool) plug in should be installed in Eclipse.
3-3-1 How to import an Android project in Eclipse
1. Launch Eclipse.
2. Select File > Import.
3. Select General > Existing Project into Workspace.
4. Select Browse and enter the path to the ZQ110Sample file.
3-3-2 How to run/debug the project
1. Select Project > Run/Debug.
Rev. 1.02
- 15 -
Mobile Printer
Android SDK API Reference Guide
4. Package Contents
4-1 Package
The following is a list of files in the package:
doc/ZQ110_Android SDK API Reference Guide_english_Rev_x_xx.pdf: Manual in
English
libs/ZQ110.jar: Printer library
sample/ZQ110Sample: Sample program project folder
ZQ110
Rev. 1.02
- 16 -
Mobile Printer
Android SDK API Reference Guide
5. Sample Program
This chapter explains how to use the sample program. (ZQ110Sample)
The sample is provided as an Android application project using Eclipse.
5-1 Functions
Search printer
Connect printer
Disconnect printer
Print text
Print image file
Print one-dimensional bar code
Print two-dimensional bar code
Print in the page mode
ZQ110
Check printer status
Check printer information
5-2 Environment Configuration
1. Extract the ZQ110 Android SDK package.
2. Copy ZQ110.jar from the downloaded SDK folder to ZQ110Sample library folder.
For example, copy the ZQ110.jar file from the downloaded SDK folder “ZQ110
Android Printer SDK V1.0.0/lib” into the “ZQ110 Android Printer SDK
V1.0.0/sample/ZQ110Sample/libs” folder.
3. Launch Eclipse. Select File > Import from Eclipse.
4. From the following screen, select General > Existing Project into Workspace.
5. Select Browse and select the path where ZQ110Sample is located.
6. Right-click on ZQ110Sample in the Package Explorer and select Properties.
7. In the Java Build Path, select the Libraries tab, then, select Add JARs, then,
select lib/ZQ110.jar.
8. Right-click on ZQ110Sample in the Package Explorer and select Run As >
Android Application.
9. Install the sample program on the target Android device. Select the ZQ110Sample
application and run the program.
Rev. 1.02
- 17 -
Mobile Printer
Android SDK API Reference Guide
5-3 How to Use Sample Program
5-3-1 Search and Connect Printer
1. Launch the sample program on your Android device.
2. Select the Option menu and connect your printer using Bluetooth, Network, or a
USB interface.
A. If Bluetooth is selected, a dialog box containing a list of paired printer(s) and
their MAC addresses appears.
B. If Network is selected, a dialog box containing a list of available printers and
their IP addresses appears.
C. If USB is selected, a dialog box containing a list of printers connected through
USB connection appears.
3. Select the desired printer from the device list.
4. Connected to (Printer Model Name or USB Device ID) appears in the title area
when a connection is established.
ZQ110
5. Printer function list is activated when connection is established.
Rev. 1.02
ZQ110
- 18 -
Mobile Printer
Android SDK API Reference Guide
6. API Reference
This chapter describes the API provided by the ZQ110 Android SDK.
6-1 Create printer instance
6-1-1 Constructor
Create an instance of ZQ110 to use the printer.
Methods implemented in the ZQ110 class are configured for asynchronous operation.
When a response is to be received from the printer, other methods can be executed only
after reception of the response is completed.
When multiple printers are connected, a separate instance should be created for each
printer.
[Syntax]
* public ZQ110(Context context, Handler handler, Looper looper)
[Parameters]
* context: is a context instance used to access Wi-Fi service, USB service, and file
system of Android.
* handler: is application handler to connect and receive print message.
* looper: Set main looper in application to create ZQ110 instance in a separate thread in
order to avoid the collision between the handler in the application and the internal handler
in the printer library. Set it to null to create a ZQ110 instance from the main thread.
Rev. 1.02
ZQ110
- 19 -
Mobile Printer
Android SDK API Reference Guide
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public Boolean handleMessage(Message msg) {
…
}
};
}
[Example]
Rev. 1.02
ZQ110
- 20 -
Mobile Printer
Android SDK API Reference Guide
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.findBluetoothPrinters();
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_BLUETOOTH_DEVICE_SET:
Set<BluetoothDevice> bluetoothDeviceSet =
(Set<BluetoothDevice>) msg.obj;
6-2 Search Printer
6-2-1 findBluetoothPrinters
This method obtains the information of paired Bluetooth device and passes the
MESSAGE_BLUETOOTH_DEVICE_SET message to the application handler.
The message includes the information of the paired Bluetooth device. The return value will
be null if no paired Bluetooth device is found.
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.findNetworkPrinters(5000);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_NETWORK_DEVICE_SET:
6-2-2findNetworkPrinters
This method searches the printers connected to the same network as Android device that
runs the application. It sends the MESSAGE_NETWORK_DEVICE_SET message to the
application handler when the search operation is completed. The message includes the IP
addresses of the printers that can be connected. The return value will be null if no printer is
found.
[Syntax]
* public void findNetworkPrinters(int timeout)
[Parameters]
* timeout: timeout in searching printer (millisecond)
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.findUsbPrinters();
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_USB_DEVICE_SET:
Set<UsbDevice> usbDeviceSet = (Set<UsbDevice>) msg.obj;
for (UsbDevice device : usbDeviceSet) {
if (device.getProductId() == 0x0113) {
// TODO: Connect printer
6-2-3 findUsbPrinters
This method obtains the information of the printer connected by USB with the Android
device that runs the application, and it sends the MESSAGE_USB_DEVICE_SET
message to the application handler. The message includes the information of the printer
connected by USB. The return value will be null if no USB printer is found.
[Syntax]
* public void findUsbPrinters()
[Example]
Rev. 1.02
ZQ110
- 25 -
Mobile Printer
Android SDK API Reference Guide
break;
}
}
break;
}
return true;
}
};
}
Rev. 1.02
ZQ110
- 26 -
Mobile Printer
Android SDK API Reference Guide
6-3 Connect Printer
6-3-1 connect
This method opens the printer port of USB printer and enables communication. It sends
the MESSAGE_STATE_CHANGE that includes STATE_CONNECTING in arg1 when
connection process is initiated and MESSAGE_STATE_CHANGE with
STATE_CONNECTED in arg1 when the connection is completed to the application handler.
The messages are transmitted in the following order when this method is called.
* If connection is successful
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): Connection is being
established.
2. MESSAGE_DEVICE_NAME: Connection to printer port is successful (USB device
name of the printer recognized in Android device is transmitted.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): Communication with
the printer is enabled.
* If connection fails
1. MESSAGE_TOAST: “Unable to connect device” message is sent.
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): Printer is not connected.
[Syntax]
* public void connect()
Rev. 1.02
- 27 -
Mobile Printer
Android SDK API Reference Guide
[Example]
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect();
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case ZQ110.STATE_CONNECTING:
// TODO: Processing when connection to printer is being tried
break;
case ZQ110.STATE_CONNECTED:
// TODO: Processing when printer connection is completed
break;
case ZQ110.STATE_NONE:
// TODO: Processing when printer is not connected
break;
}
ZQ110
Rev. 1.02
ZQ110
- 28 -
Mobile Printer
Android SDK API Reference Guide
break;
case ZQ110.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
ZQ110.KEY_STRING_DEVICE_NAME);
break;
This method opens the port of paired Bluetooth printer and enables communication.
It sends the MESSAGE_STATE_CHANGE message with STATE_CONNECTING in arg1
when connection process is initiated and MESSAGE_STATE_CHANGE with
STATE_CONNECTED in arg1 when connection is completed to the application handler.
Messages are transmitted in the following order when this method is called.
* If connection is successful
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): Connection is being
established.
2. MESSAGE_DEVICE_NAME: Connection to printer port is successful. (Bluetooth
device name of the printer recognized by Android device is transmitted.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): Communication with
printer is enabled.
* If connection fails
1. MESSAGE_TOAST: “Unable to connect device” message is sent.
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): Printer is not connected.
[Syntax]
* public void connect(String address)
[Parameters]
* address: Bluetooth MAC address of the printer to connect (it can also be checked with
Self-Test function.) If this parameter is set to null, then connection will be tried with the
first searched printer among all paired printers.
Rev. 1.02
- 30 -
Mobile Printer
Android SDK API Reference Guide
[Example]
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
String address = “01:23:45:67:89:ab”;mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(address);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case ZQ110.STATE_CONNECTING:
// TODO: Processing when connection to printer is being tried
break;
case ZQ110.STATE_CONNECTED:
// TODO: Processing when printer connection is completed
break;
case ZQ110.STATE_NONE:
// TODO: Processing when printer is not connected
break;
ZQ110
Rev. 1.02
ZQ110
- 31 -
Mobile Printer
Android SDK API Reference Guide
}
break;
case ZQ110.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
ZQ110.KEY_STRING_DEVICE_NAME);
break;
This method opens the port of printer connected with Wireless LAN and enables
communication. It sends the MESSAGE_STATE_CHANGE message with
STATE_CONNECTING in arg1 when connection process is initiated and
MESSAGE_STATE_CHANGE with STATE_CONNECTED in arg1 when connection is
completed to the application handler.
Messages are transmitted in the following order when this method is called.
* If connection is successful
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): Connection is being
established
2. MESSAGE_DEVICE_NAME: Connection to printer port is successful. (Device
name of the printer recognized by Android device is transmitted.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): Communication with
printer is enabled.
* If connection fails
1. MESSAGE_TOAST: “Unable to connect device” message is sent.
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): Printer is not connected.
[Syntax]
* public void connect(String host, int port, int timeout)
[Parameters]
* host: IP address of the printer to connect
* port: Port number of the printer to connect (only 9100 is allowed.)
* timeout: Timeout in connecting printer (millisecond)
Rev. 1.02
- 33 -
Mobile Printer
Android SDK API Reference Guide
[Example]
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(“192.168.0.100”, 9100, 5000);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case ZQ110.STATE_CONNECTING:
// TODO: Processing when connection to printer is being tried
break;
case ZQ110.STATE_CONNECTED:
// TODO: Processing when printer connection is completed
break;
case ZQ110.STATE_NONE:
// TODO: Processing when printer is not connected
break;
}
ZQ110
Rev. 1.02
ZQ110
- 34 -
Mobile Printer
Android SDK API Reference Guide
break;
case ZQ110.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
ZQ110.KEY_STRING_DEVICE_NAME);
break;
This method opens the port of printer connected over USB and enables communication.
It sends the MESSAGE_STATE_CHANGE message with STATE_CONNECTING in arg1
when connection process is initiated and MESSAGE_STATE_CHANGE with
STATE_CONNECTED in arg1 when connection is completed to the application handler.
Messages are transmitted in the following order when this method is called.
* If connection is successful
1. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTING): Connection is being
established
2. MESSAGE_DEVICE_NAME: Connection to printer port is successful. (Device
name of the printer recognized by Android device is transmitted.)
3. MESSAGE_STATE_CHANGE (arg1: STATE_CONNECTED): Communication with
printer is enabled.
* If connection fails
1. MESSAGE_TOAST: “Unable to connect device” message is sent.
2. MESSAGE_STATE_CHANGE (arg1: STATE_NONE): Printer is not connected.
[Syntax]
* public void connect(UsbDevice device)
[Parameters]
* device: UsbDevice instance of the device to connect. It can be received through the
message received as a response to findUsbPrinters().
Rev. 1.02
- 36 -
Mobile Printer
Android SDK API Reference Guide
[Example]
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.findUsbPrinters();
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_USB_DEVICE_SET:
Set<UsbDevice> usbDeviceSet = (Set<UsbDevice>) msg.obj;
for (UsbDevice device : usbDeviceSet) {
if (device.getProductId() == 0x0113) {
mZQ110.connect(device);
break;
}
}
return true;
case ZQ110.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case ZQ110.STATE_CONNECTING:
// TODO: Processing when connection to printer is being tried
ZQ110
Rev. 1.02
- 37 -
Mobile Printer
Android SDK API Reference Guide
break;
case ZQ110.STATE_CONNECTED:
// TODO: Processing when printer connection is completed
break;
case ZQ110.STATE_NONE:
// TODO: Processing when printer is not connected
break;
}
break;
case ZQ110.MESSAGE_DEVICE_NAME:
String connectedDeviceName =
msg.getData().getString(
ZQ110.KEY_STRING_DEVICE_NAME);
break;
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case ZQ110.STATE_CONNECTING:
// TODO: Processing when connection to printer is being tried
break;
The method closes the port of connected printer and terminates the connection.
When connection is terminated, it sends the MESSAGE_STATE_CHANGE messge (arg1:
STATE_NONE) to application handler.
[Syntax]
* public void disconnect()
[Example]
ZQ110
Rev. 1.02
ZQ110
- 39 -
Mobile Printer
Android SDK API Reference Guide
case ZQ110.STATE_CONNECTED:
mZQ110.disconnect();
break;
case ZQ110.STATE_NONE:
Toast.makeText(getApplicationContext(), “Printer is disconnected”, Toast.LENGTH_SHORT).show();
break;
}
break;
}
return true;
}
};
}
Rev. 1.02
ZQ110
- 40 -
Mobile Printer
Android SDK API Reference Guide
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
6-4 Print
6-4-1 form Feed
This method performs paper feeding in the page mode or label mode.
[Syntax]
* public void formFeed(boolean getResponse)
[Parameters]
* getResponse: A message is sent to the application handler upon completion of feeding
if this parameter is set to True, and message is not sent if it is set to False.
String data, int alignment, int function, int width, int height, boolean getResponse)
[Parameters]
* data: barcode data to print
* alignment: barcode printing alignment
* function: function of barcode to print
ZQ110
* width: width of barcode to print (1 ~ 8)
* height: height of barcode to print (1 ~ 8)
* getResponse: A message is sent to the application handler upon completion of printing
if this parameter is set to True, and message is not sent if it is set to False.
Rev. 1.02
- 58 -
Mobile Printer
Android SDK API Reference Guide
[Example]
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.printGs1Databar(
“12345678901|this is composite info”, ZQ110.ALIGNMENT_LEFT,
ZQ110.GS1_DATABAR_RSS14
2, 2, true);
}
break;
case ZQ110.MESSAGE_PRINT_COMPLETE:
mZQ110.disconnect();
break;
}
ZQ110
Rev. 1.02
ZQ110
- 59 -
Mobile Printer
Android SDK API Reference Guide
return true;
}
};
}
Rev. 1.02
- 60 -
Mobile Printer
Android SDK API Reference Guide
6-4-10 printPdf417
Code
Value
Description
ALIGNMENT_LEFT
0
Align to left
ALIGNMENT_CENTER
1
Align to center
ALIGNMENT_RIGHT
2
Align to right
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
This method prints PDF417.
[Syntax]
* public void printPdf417(
String data, int alignment, int width, int height, boolean getResponse)
[Parameters]
* data: barcode data to print
* alignment: barcode printing alignment
* width: width of barcode to print (2 ~ 3)
ZQ110
* height: height of barcode to print (2 ~ 8)
* getResponse: A message is sent to the application handler upon completion of printing
if this parameter is set to True, and message is not sent if it is set to False.
[Example]
Rev. 1.02
ZQ110
- 61 -
Mobile Printer
Android SDK API Reference Guide
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.printPdf417(“www.zebra.com”, ZQ110.ALIGNMENT_LEFT, 3, 8, true);
}
break;
case ZQ110.MESSAGE_PRINT_COMPLETE:
mZQ110.disconnect();
break;
}
return true;
}
};
}
Rev. 1.02
- 62 -
Mobile Printer
Android SDK API Reference Guide
6-4-11 printQrCode
Code
Value
Description
ALIGNMENT_LEFT
0
Align to left
ALIGNMENT_CENTER
1
Align to center
ALIGNMENT_RIGHT
2
Align to right
Code
Value
Description
QR_CODE_MODEL1
48
QR Code model 1
QR_CODE_MODEL1
49
QR Code model 2
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
This method prints QR Code.
[Syntax]
* public void printQrCode(
String data, int alignment, int model, int size, boolean getResponse)
[Parameters]
* data: barcode data to print
* alignment: barcode printing alignment
* model: QR Code model to print
ZQ110
* size: size of barcode to print (1 ~ 8)
* getResponse: A message is sent to the application handler upon completion of printing
if this parameter is set to True, and message is not sent if it is set to False.
[Example]
Rev. 1.02
ZQ110
- 63 -
Mobile Printer
Android SDK API Reference Guide
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.printQrCode(“www.zebra.com”, ZQ110.ALIGNMENT_LEFT,
ZQ110.QR_CODE_MODEL2, 8, true);
}
break;
case ZQ110.MESSAGE_PRINT_COMPLETE:
mZQ110.disconnect();
break;
}
return true;
}
};
}
Rev. 1.02
- 64 -
Mobile Printer
Android SDK API Reference Guide
6-4-12 printQrCode
Code
Value
Description
ALIGNMENT_LEFT
0
Align to left
ALIGNMENT_CENTER
1
Align to center
ALIGNMENT_RIGHT
2
Align to right
Code
Value
Description
QR_CODE_MODEL1
48
QR Code model 1
QR_CODE_MODEL1
49
QR Code model 2
Code
Value
Description
QR_CODE_ERROR_CORRECTION_LEVEL_L
48
Error correction level L
QR_CODE_ERROR_CORRECTION_LEVEL_M
49
Error correction level M
QR_CODE_ERROR_CORRECTION_LEVEL_Q
50
Error correction level Q
QR_CODE_ERROR_CORRECTION_LEVEL_H
51
Error correction level H
This method prints QR Code.
[Syntax]
* public void printQrCode(
String data, int alignment, int model, int size, int errorCorrectionLevel,
boolean getResponse)
[Parameters]
* data: barcode data to print
* alignment: barcode printing alignment
ZQ110
* model: QR Code model to print
* size: size of barcode to print (1 ~ 8)
* errorCorrectionLevel: error correction level of barcode to print
* getResponse: A message is sent to the application handler upon completion of printing
if this parameter is set to True, and message is not sent if it is set to False.
Rev. 1.02
- 65 -
Mobile Printer
Android SDK API Reference Guide
[Example]
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.printQrCode(“www.zebra.com”, ZQ110.ALIGNMENT_LEFT,
ZQ110.QR_CODE_MODEL2, 8,
ZQ110.QR_CODE_ERROR_CORRECTION_LEVEL_L,
true);
}
break;
case ZQ110.MESSAGE_PRINT_COMPLETE:
mZQ110.disconnect();
break;
}
ZQ110
Rev. 1.02
ZQ110
- 66 -
Mobile Printer
Android SDK API Reference Guide
return true;
}
};
}
Rev. 1.02
- 67 -
Mobile Printer
Android SDK API Reference Guide
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.printSelfTest(true);
}
break;
case ZQ110.MESSAGE_PRINT_COMPLETE:
mZQ110.disconnect();
6-4-13printSelfTest
This page prints Self-Test page. Printer settings and current code page are printed.
[Syntax]
* public void printSelfTest(boolean getResponse)
[Example]
ZQ110
Rev. 1.02
ZQ110
- 68 -
Mobile Printer
Android SDK API Reference Guide
break;
}
return true;
}
};
}
Rev. 1.02
ZQ110
- 69 -
Mobile Printer
Android SDK API Reference Guide
Code
Value
Description
ALIGNMENT_LEFT
0
Align to left
ALIGNMENT_CENTER
1
Align to center
ALIGNMENT_RIGHT
2
Align to right
Code
Value
Description
TEXT_ATTRIBUTE_FONT_A
0
font type A (12X24)
TEXT_ATTRIBUTE_FONT_B
1
font type B (9X17)
TEXT_ATTRIBUTE_FONT_C
2
font type C (9X24)
TEXT_ATTRIBUTE_UNDERLINE1
4
Underline with 1 dot thickness
TEXT_ATTRIBUTE_UNDERLINE2
8
Underline with 2 dots thickness
TEXT_ATTRIBUTE_EMPHASIZED
16
Bold
TEXT_ATTRIBUTE_REVERSE
32
Reversed
6-4-14printText
This method prints character string.
[Syntax]
* public void printText(String text, int alignment, int attribute, int size,
boolean getResponse)
[Parameters]
* text: character string to print
* alignment: character string alignment
* attribute: attributes of the character string. When more than one parameter is configured,
each option should be combined through bitwise OR operation.
* size: size of character string to print. The width and height parameters should be
combined through bitwise OR operation.
Rev. 1.02
ZQ110
- 70 -
Mobile Printer
Android SDK API Reference Guide
Code
Value
Description
TEXT_SIZE_HORIZONTAL1
0
1X magnification on width
TEXT_SIZE_HORIZONTAL2
16
2X magnification on width
TEXT_SIZE_HORIZONTAL3
32
3X magnification on width
TEXT_SIZE_HORIZONTAL4
48
4X magnification on width
TEXT_SIZE_HORIZONTAL5
64
5X magnification on width
TEXT_SIZE_HORIZONTAL6
80
6X magnification on width
TEXT_SIZE_HORIZONTAL7
96
7X magnification on width
TEXT_SIZE_HORIZONTAL8
112
8X magnification on width
TEXT_SIZE_VERTICAL1
0
1X magnification on height
TEXT_SIZE_VERTICAL2
1
2X magnification on height
TEXT_SIZE_VERTICAL3
2
3X magnification on height
TEXT_SIZE_VERTICAL4
3
4X magnification on height
TEXT_SIZE_VERTICAL5
4
5X magnification on height
TEXT_SIZE_VERTICAL6
5
6X magnification on height
TEXT_SIZE_VERTICAL7
6
7X magnification on height
TEXT_SIZE_VERTICAL8
7
8X magnification on height
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
* getResponse: A message is sent to the application handler upon completion of printing
if this parameter is set to True, and message is not sent if it is set to False.
[Example]
Rev. 1.02
ZQ110
- 71 -
Mobile Printer
Android SDK API Reference Guide
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.printText(“printText\n”, ZQ110.ALIGNMENT_LEFT,
ZQ110.TEXT_ATTRIBUTE_FONT_A |
ZQ110.TEXT_ATTRIBUTE_UNDERLINE1,
ZQ110.TEXT_SIZE_HORIZONTAL1 |
ZQ110.TEXT_SIZE_VERTICAL1, true);
}
break;
case ZQ110.MESSAGE_PRINT_COMPLETE:
mZQ110.disconnect();
break;
}
return true;
}
};
}
Rev. 1.02
ZQ110
- 72 -
Mobile Printer
Android SDK API Reference Guide
Code
Value
Description
AUTO_STATUS_COVER_OPEN
32
Printer cover is open.
AUTO_STATUS_NO_PAPER
12
No printer paper
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect();
…
}
public void onDestroy() {
…
6-5 Receive Printer Response
6-5-1 automateStatusBack
This method enables or disables automatic status check function of printer. When it is
activated, the MESSAGE_READ message (arg1: PROCESS_AUTO_STATUS_BACK) is
sent to the application handler whenever there is any change in the printer status. The
arg2 includes the following values if there is any error in printer.
[Syntax]
* public void automateStatusBack(boolean isEnable)
[Example]
Rev. 1.02
- 73 -
Mobile Printer
Android SDK API Reference Guide
if (mZQ110 != null) {
mZQ110.automateStatusBack(false);
mZQ110.disconnect();
}
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.automateStatusBack(true);
}
break;
case ZQ110.MESSAGE_READ:
StringBuffer buffer = new StringBuffer(0);
if (msg.arg1 == ZQ110.PROCESS_AUTO_STATUS_BACK) {
if ((msg.arg2 & ZQ110.AUTO_STATUS_COVER_OPEN) ==
ZQ110.AUTO_STATUS_COVER_OPEN) {
buffer.append("Cover is open.\n");
}
if ((msg.arg2 & ZQ110.AUTO_STATUS_NO_PAPER) ==
ZQ110.AUTO_STATUS_NO_PAPER) {
buffer.append("Paper end sensor: no paper present.\n");
}
if (buffer.capacity() > 0) {
Toast.makeText(getApplicationContext(), buffer.toString(),
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), "No error.",
Toast.LENGTH_SHORT).show();
}
break;
ZQ110
Rev. 1.02
ZQ110
- 74 -
Mobile Printer
Android SDK API Reference Guide
}
return true;
}
};
}
Rev. 1.02
ZQ110
- 75 -
Mobile Printer
Android SDK API Reference Guide
Code
Value
Description
STATUS_BATTERY_FULL
48
Battery is full.
STATUS_BATTERY_HIGH
49
Battery high.
STATUS_BATTERY_MIDDLE
50
Battery is middle.
STATUS_BATTERY_LOW
51
Battery is low.
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
…
6-5-2getBatteryStatus
This method checks the battery status of mobile printer. The MESSAGE_READ message
(arg1: PROCESS_GET_BATTERY_STATUS) is sent to the application handler when
battery status check is completed. The arg2 of this message includes the following values
to indicate the battery status.
[Syntax]
* public void getBatteryStatus()
[Example]
Rev. 1.02
- 76 -
Mobile Printer
Android SDK API Reference Guide
if (mZQ110 != null) {
mZQ110.disconnect();
}
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.getBatteryStatus();
}
break;
case ZQ110.MESSAGE_READ:
if (msg.arg1 == ZQ110.PROCESS_GET_BATTERY_STATUS) {
switch (msg.arg2) {
case ZQ110.STATUS_BATTERY_FULL:
Toast.makeText(getApplicationContext(),
“Battery is full”, Toast.LENGTH_SHORT).show();
break;
case ZQ110.STATUS_BATTERY_HIGH:
Toast.makeText(getApplicationContext(),
“Battery is high”, Toast.LENGTH_SHORT).show();
break;
case ZQ110.STATUS_BATTERY_MIDDLE:
Toast.makeText(getApplicationContext(),
“Battery is middle”, Toast.LENGTH_SHORT).show();
break;
ZQ110
Rev. 1.02
ZQ110
- 77 -
Mobile Printer
Android SDK API Reference Guide
case ZQ110.STATUS_BATTERY_LOW:
Toast.makeText(getApplicationContext(),
“Battery is low”, Toast.LENGTH_SHORT).show();
break;
}
}
break;
}
return true;
}
};
}
Rev. 1.02
- 78 -
Mobile Printer
Android SDK API Reference Guide
6-5-3 getPrinterId
Code
Value
Description
PRINTER_ID_FIRMWARE_VERSION
65
Firmware version
PRINTER_ID_MANUFACTURER
66
Manufacturer
(Zebra Technologies)
PRINTER_ID_PRINTER_MODEL
67
Printer model name
PRINTER_ID_CODE_PAGE
69
Current code page
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
This method checks the printer information. When the information is available,
MESSAG_READ message (arg1: PROCESS_GET_PRINTER_ID) is sent to the
application handler.
[Syntax]
* public void getPrinterId(int idType)
[Parameters]
* idType: Information of the printer to check
ZQ110
[Example]
Rev. 1.02
- 79 -
Mobile Printer
Android SDK API Reference Guide
…
if (mZQ110 != null) {
mZQ110.disconnect();
}
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.getPrinterId(
ZQ110.PRINTER_ID_FIRMWARE_VERSION);
}
break;
case ZQ110.MESSAGE_READ:
if (msg.arg1 == ZQ110.PROCESS_GET_PRINTER_ID) {
Bundle data = msg.getData();
Toast.makeText(getApplicationContext(),
data.getString(ZQ110.KEY_STRING_PRINTER_ID),
Toast.LENGTH_SHORT).show();
}
break;
}
return true;
}
};
}
ZQ110
Rev. 1.02
ZQ110
- 80 -
Mobile Printer
Android SDK API Reference Guide
Code
Value
Description
STATUS_NORMAL
0
Normal
STATUS_COEVER_OPEN
4
Cover is open
STATUS_PAPER_NEAR_END
12
Printer paper is near end state
STATUS_PAPER_NOT_PRESENT
96
No printer paper
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect();
…
}
public void onDestroy() {
…
if (mZQ110 != null) {
6-5-4getStatus
This method gets the status of printer. When the status is obtained, the MESSAGE_READ
message (arg1: PROCESS_GET_STATUS) is sent to the application handler.
The following values can be returned in arg2.
[Syntax]
* public void getStatus()
[Example]
Rev. 1.02
- 81 -
Mobile Printer
Android SDK API Reference Guide
mZQ110.disconnect();
}
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.getStatus();
}
break;
case ZQ110.MESSAGE_READ:
if (msg.arg1 == ZQ110.PROCESS_GET_STATUS) {
if (msg.arg2 == ZQ110.STATUS_NORMAL) {
Toast.makeText(getApplicationContext(), "No error",
Toast.LENGTH_SHORT).show();
} else {
StringBuffer buffer = new StringBuffer();
if ((msg.arg2 & ZQ110.STATUS_COVER_OPEN) ==
ZQ110.STATUS_COVER_OPEN) {
buffer.append("Cover is open.\n");
}
if ((msg.arg2 & ZQ110.STATUS_PAPER_NOT_PRESENT) ==
ZQ110.STATUS_PAPER_NOT_PRESENT) {
buffer.append("Paper end sensor: " +
"paper not present.\n");
}
Image is enlarged or reduced to the maximum print
width and saved.
BITMAP_WIDTH_NONE
0
Image is saved without resizing or reduced to the
maximum print width if the image is wider than the
maximum width.
Integer
Enter integer number directly
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
6-6 NV Image
6-6-1 defineNvImage
This method saves the image in the non-volatile memory area of printer. When image is
saved, the MESSAGE_WRITE message (arg1: PROCESS_DEFINE_NV_IMAGE) is sent
to the application handler.
[Syntax]
* public void defineNvImage(Bitmap bitmap, int width, int level, int keyCode)
[Parameters]
* bitmap: Bitmap instance to save
* width: width of image to save
* level: brightness level of image to save (13 ~ 88)
* keyCode: address of memory area to save image. (0 ~ 255)
[Example]
Rev. 1.02
- 84 -
Mobile Printer
Android SDK API Reference Guide
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
case ZQ110.MESSAGE_WRITE:
if (msg.arg1 == ZQ110.PROCESS_DEFINE_NV_IMAGE) {
mZQ110.disconnect();
}
break;
}
return true;
}
};
}
ZQ110
Rev. 1.02
ZQ110
- 85 -
Mobile Printer
Android SDK API Reference Guide
Code
Value
Description
BITMAP_WIDTH_FULL
-1
Image is enlarged or reduced to the maximum print
width and saved.
BITMAP_WIDTH_NONE
0
Image is saved without resizing or reduced to the
maximum print width if the image is wider than the
maximum width.
Integer
Enter integer number directly
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
6-6-2defineNvImage
This method saves the image in the non-volatile memory area of printer. When the image
save operation is completed, the MESSAGE_WRITE message (arg1:
PROCESS_DEFINE_NV_IMAGE) is sent to the application handler.
[Syntax]
* public void defineNvImage(String pathName, int width, int level, int keyCode)
[Parameters]
* pathName: absolute path of the image file to save in printer
* width: width of image to save
* level: brightness level of image to save (13 ~ 88)
* keyCode: address of memory area to save image (0 ~ 255)
[Example]
Rev. 1.02
- 86 -
Mobile Printer
Android SDK API Reference Guide
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
String pathName =
Environment.
getExternalStorageDirectory().
getAbsolutePath() +
“/logo.png”;mZQ110.defineNvImage(pathName,
ZQ110.BITMAP_WIDTH_FULL, 50, 0);
}
break;
case MESSAGE_WRITE:
if (msg.arg1 == ZQ110.PROCESS_DEFINE_NV_IMAGE) {
mZQ110.disconnect();
}
break;
}
return true;
}
};
}
ZQ110
Rev. 1.02
ZQ110
- 87 -
Mobile Printer
Android SDK API Reference Guide
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
…
if (mZQ110 != null) {
mZQ110.disconnect();
}
6-6-3getDefinedNvImageKeyCodes
This method obtains the address of image saved in the non-volatile memory area of printer.
When address is obtained, the MESSAGE_READ message (arg1:
PROCESS_GET_NV_IMAGE_KEY_CODES) is sent to the application handler. If there is
any image stored in the area, the address list of the images is returned as integer array or
null is returned if there is no image.
[Syntax]
* public void getDefinedNvImageKeyCodes()
[Example]
Rev. 1.02
- 88 -
Mobile Printer
Android SDK API Reference Guide
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
mZQ110.getDefinedNvImageKeyCodes();
}
break;
case ZQ110.MESSAGE_READ:
if (msg.arg1 ==
ZQ110.PROCESS_GET_NV_IMAGE_KEY_CODES) {
Bundle data = msg.getData();
int[] keyCodes =
data.getintArray(ZQ110.NV_IMAGE_KEY_CODES);
if (keyCodes != null) {
// TODO: Image address processing
}
}
break;
}
return true;
}
};
}
ZQ110
Rev. 1.02
- 89 -
Mobile Printer
Android SDK API Reference Guide
6-6-4 printNvImage
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
…
if (mZQ110 != null) {
mZQ110.disconnect();
}
This method prints image stored in the non-volatile memory area of printer.
[Syntax]
* public void printNvImage(int keyCode, boolean getResponse)
[Parameters]
* keyCode: address code of NV image to print
* getResponse: MESSAGE_PRINT_COMPLETE A message is sent to the
application handler upon completion of printing if this parameter is set to True, and
message is not sent if it is set to False.
[Example]
ZQ110
Rev. 1.02
- 90 -
Mobile Printer
Android SDK API Reference Guide
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.getDefinedNvImageKeyCodes();
}
break;
case ZQ110.MESSAGE_READ:
if (msg.arg1 ==
ZQ110.PROCESS_GET_NV_IMAGE_KEY_CODES) {
Bundle data = msg.getData();
int[] keyCodes =
data.getintArray(ZQ110.NV_IMAGE_KEY_CODES);
if (keyCodes != null) {
for (int i = 0; i < keyCodes.length; i++) {
mZQ110.printNvImage(keyCodes[i], false);
}
}
}
break;
}
return true;
}
};
}
ZQ110
Rev. 1.02
- 91 -
Mobile Printer
Android SDK API Reference Guide
6-6-5 removeAllNvImage
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
…
if (mZQ110 != null) {
mZQ110.disconnect();
}
…
}
This method deletes all image data stored in the non-volatile memory area of the printer.
[Syntax]
* public void printAllNvImage()
[Example]
ZQ110
Rev. 1.02
ZQ110
- 92 -
Mobile Printer
Android SDK API Reference Guide
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.removeAllNvImage();
break;
}
break;
}
return true;
}
};
}
Rev. 1.02
ZQ110
- 93 -
Mobile Printer
Android SDK API Reference Guide
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
…
if (mZQ110 != null) {
mZQ110.disconnect();
}
…
6-6-6removeNvImage
This function deletes image data stored in the non-volatile memory area of the printer.
[Syntax]
* public void removeNvImage(int keyCode)
[Parameters]
* keyCode: address code of the NV image to delete
[Example]
Rev. 1.02
ZQ110
- 94 -
Mobile Printer
Android SDK API Reference Guide
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
mZQ110.getDefinedNvImageKeyCodes()
}
break;
case ZQ110.MESSAGE_READ:
if (msg.arg1 == ZQ110.PROCESS_GET_NV_IMAGE_KEY_CODES) {
Bundle data = msg.getData();
int[] keyCodes =
data.getintArray(ZQ110.NV_IMAGE_KEY_CODES);
if (keyCodes != null) {
mZQ110.removeNvImage(keyCodes[0]);
}
}
break;
}
return true;
}
};
}
Rev. 1.02
- 95 -
Mobile Printer
Android SDK API Reference Guide
6-7 Page Mode
6-7-1 setAbsolutePrintPosition
This method sets the horizontal position in the page mode.
[Syntax]
* public void setAbsolutePrintPosition(int position)
[Parameters]
* position: horizontal position to set
6-7-2setAbsoluteVerticalPrintPosition
This method sets the vertical position in the page mode.
[Syntax]
ZQ110
* public void setAbsoluteVerticalPrintPosition(int position)
[Parameters]
* position: vertical position to set
6-7-3setPageMode
This function switches the mode to page mode.
[Syntax]
* public void setPageMode()
6-7-4setPrintArea
This function sets the printing area in the page mode.
[Syntax]
* public void setPrintArea(int x, int y, int width, int height)
[Parameters]
* x: origin of the horizontal printing area
* y: origin of the vertical printing area
* width: width of printing area
* height: height of printing area
Rev. 1.02
- 96 -
Mobile Printer
Android SDK API Reference Guide
6-7-5 setPrintDirection
Code
Value
Description
DIRECTION_0_DEGREE_ROTATION
0
Print without rotation
DIRECTION_90_DEGREE_ROTATION
1
Print clockwise 90˚ rotated image
DIRECTION_180_DEGREE_ROTATION
2
Print clockwise 180˚ rotated image
DIRECTION_270_DEGREE_ROTATION
3
Print clockwise 270˚ rotated image
This method sets the print direction in the page mode.
[Syntax]
* public void setPrintDirection(int direction)
[Parameters]
* direction: direction of printing. Refer to the following table for possible options.
6-7-6 setStandardMode
ZQ110
This method closes the page mode and switches to the standard mode.
[Syntax]
* public void setStandardMode()
Rev. 1.02
- 97 -
Mobile Printer
Android SDK API Reference Guide
[Example]
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
…
if (mZQ110 != null) {
mZQ110.disconnect();
}
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case MESSAGE_STATE_CHANGE:
if (msg.arg1 == STATE_CONNECTED) {
mZQ110.setPageMode();
mZQ110.setPrintDirection(
case MESSAGE_PRINT_COMPLETE:
mZQ110.disconnect();
break;
}
return true;
}
};
}
Rev. 1.02
ZQ110
- 99 -
Mobile Printer
Android SDK API Reference Guide
public class MainActivity extends Activity {
…
private ZQ110 mZQ110;
…
public void onCreate(Bundle savedInstanceState) {
…
mZQ110 = new ZQ110(this, mHandler, null);
mZQ110.connect(null);
…
}
public void onDestroy() {
…
if (mZQ110 != null) {
mZQ110.cancelMsrReaderMode();
mZQ110.disconnect();
}
6-8 MSR
6-8-1 cancelMsrReaderMode
This method terminates the reader mode when the current mode is Track 1/2/3 Command
Read Mode. Printer cannot read the card when the read mode is terminated.
[Syntax]
* public void cancelMsrReaderMode()
[Example]
Rev. 1.02
ZQ110
- 100 -
Mobile Printer
Android SDK API Reference Guide
…
}
private final Handler mHandler = new Handler(new Handler.Callback() {
public boolean handleMessage(Message msg) {
switch (msg.what) {
case ZQ110.MESSAGE_STATE_CHANGE:
if (msg.arg1 == ZQ110.STATE_CONNECTED) {
mZQ110.getMsrMode();
}
break;
case ZQ110.MESSAGE_READ:
if (msg.arg1 == ZQ110.PROCESS_GET_MSR_MODE) {
if (msg.arg2 ==
ZQ110.MSR_MODE_TRACK123_COMMAND) {
mZQ110.setMsrReaderMode();
}
}
break;
}
return true;
}
};
}
Rev. 1.02
Loading...
+ hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.