接口说明文档下载地址:
CaysnPrinter安卓平台开发包接口说明文档 - PrinterLibs For Android_20160926
打印示例程序下载地址:
Caysn打印机安卓打印示例代码 - Sample1_20160927
Caysn打印机安卓打印示例代码 - Sample2_20160927
Caysn打印机安卓打印示例代码 - Sample3_20160927
Caysn打印机安卓打印示例代码 - Sample4_20160927
注意:
示例程序中的Mainfest里有这样一段代码,如果targetSdkVersion设置为23,则安卓6.0系统上无法搜索到蓝牙打印机。
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
打印效果:
Sample1打印效果
Sample2打印效果
Sample3打印效果
Sample4打印效果
接口说明:
一 概述
1 PrinterLibs是Android平台下控制Caysn打印机的jar库
2 PrinterLibs有以下几个公共类
A IO类
包括IO、BLEPrinting、BTPrinting、NETPrinting、USBPrinting
实现基本的Open、Close、Write、Read等功能
IOCallBack提供了Open和Close的回调接口、便于获取当前的连接状况
B 打印类
包括Pos、Label、Page、Canvas
Pos类实现了诸如打印文本、打印条码、打印二维码、打印图片等功能
Label类实现了标签打印功能,需要标签打印机支持
Page类实现了页模式打印功能,需要页模式打印机支持
Canvas类封装了安卓画布函数,使用图片的方式打印,支持所有打印机
C 使用方法
Android代码片段:
Pos mPos = new Pos();
BTPrinting mBt = new BTPrinting();
mPos.Set(mBt);
mBt.SetCallBack(this);
之后启用异步调用:
public class TaskOpenimplements Runnable
{
BTPrinting bt = null;
String address = null;
Context context = null;
public TaskOpen(BTPrinting bt, String address,
Context context)
{
this.bt = bt;
this.address = address;
this.context = context;
}
@Override
public void run() {
// TODO Auto-generated method stub
bt.Open(address,context);
}
}
连接成功之后,调用相应的函数即可打印。
二 接口
IO
Write
Syntax
public int Write(byte[] buffer,int offset,int count)
Parameters
buffer
发送缓冲区
offset
从指定偏移开始发送数据
count
要发送的字节数
Return value
如果写入成功,返回成功写入的字节数、如果写入失败,返回-1
Remarks
IO类的Write函数为空实现,始终返回-1
Read
Syntax
public int Read(byte[] buffer,int offset,int count,int timeout)
Parameters
buffer
接收缓冲区
offset
从指定偏移开始存放收到的数据
count
要接收的字节数
timeout
超时毫秒时间
Return value
如果读取成功,返回成功读入的字节数、如果读取失败,返回-1。
Remarks
IO类的Read函数为空实现,始终返回-1
IsOpened
Syntax
public boolean IsOpened()
Parameters
Return value
如果以连接到打印机,返回true、否则,返回false
Remarks
IO类的IsOpened函数为空实现,始终返回false
IOCallBack
处理底层连接的4个类:
BLEPrinting BTPrinting NETPrinting USBPrinting
Open成功时,会调用OnOpen
Open失败时,会调用OnOpenFailed
Close或异常断开时,会调用OnClose
OnOpen
连接成功之后,会调用OnOpen
Syntax
void OnOpen()
Parameters
Return value
Remarks
OnOpenFailed
连接失败,会调用OnOpenFailed
Syntax
void OnOpenFailed()
Parameters
Return value
Remarks
OnClose
连接断开(主动断开或异常中断),会调用OnClose
Syntax
void OnClose()
Parameters
Return value
Remarks
BTPrinting
蓝牙2.0连接、读写封装
Open
连接指定蓝牙打印机
Syntax
public boolean Open(String BTAddress, Context mContext)
Parameters
BTAddress
蓝牙打印机地址:形如00:11:22:33:44:55
mContext
Application Context
Return value
连接成功,返回true、否则,返回false。
Remarks
连接成功之后,会调用回调接口OnOpen,连接失败会调用OnOpenFailed
Listen
连接2.0蓝牙打印机(作为主模式,等待打印机主动上连)
Syntax
public boolean Listen(String BTAddress,int timeout, ContextmContext)
Parameters
BTAddress
蓝牙打印机地址:形如00:11:22:33:44:55,暂不使用
timeout
等待超时毫秒时间
mContext
Application Context
Return value
连接成功,返回true、否则,返回false。
Remarks
连接成功之后,会调用回调接口OnOpen,连接失败会调用OnOpenFailed
Close
关闭连接
Syntax
public void Close()
Parameters
Return value
Remarks
关闭连接,会调用回调接口OnClose,重复Close不会多次调用回调。
Write
通过蓝牙写入数据
Syntax
public int Write(byte[] buffer,int offset,int count)
Parameters
buffer
发送缓冲区
offset
从指定偏移开始发送数据
count
要发送的字节数
Return value
如果写入成功,返回成功写入的字节数、如果写入失败,返回-1
Remarks
Read
读数据
Syntax
public int Read(byte[] buffer,int offset,int count,int timeout)
Parameters
buffer
接收缓冲区
offset
从指定偏移开始存放收到的数据
count
要接收的字节数
timeout
超时毫秒时间
Return value
如果读取成功,返回成功读入的字节数、如果读取失败,返回-1。
Remarks
SkipAvailable
忽略缓冲区中的数据
Syntax
public void SkipAvailable()
Parameters
Return value
Remarks
IsOpened
是否已连接
Syntax
public boolean IsOpened()
Parameters
Return value
返回true,表示已经连接、返回false,表示未连接。
Remarks
IsOpened函数是建立在心跳的基础上,并不能实时获取连接状态。
如果打印机突然关机,IsOpened可能需要几秒钟,才能返回正确的结果。
如果想确定打印机是否已连接,可以使用POS系列函数中的RTQeuryStatus。
SetCallBack
设置回调接口
Syntax
public void SetCallBack(IOCallBack callBack)
Parameters
callBack
回调接口,只有设置了该项,在连接成功或连接断开的时候,才会有回调。
Return value
Remarks
BLEPrinting
蓝牙4.0连接、读写封装
Open
连接指定蓝牙打印机
Syntax
public boolean Open(String BTAddress)
Parameters
BTAddress
蓝牙打印机地址:形如00:11:22:33:44:55
Return value
连接成功,返回true、否则,返回false。
Remarks
连接成功之后,会调用回调接口OnOpen,连接失败会调用OnOpenFailed
Close
关闭连接
Syntax
public void Close()
Parameters
Return value
Remarks
关闭连接,会调用回调接口OnClose,重复Close不会多次调用回调。
Write
通过蓝牙写入数据
Syntax
public int Write(byte[] buffer,int offset,int count)
Parameters
buffer
发送缓冲区
offset
从指定偏移开始发送数据
count
要发送的字节数
Return value
如果写入成功,返回成功写入的字节数、如果写入失败,返回-1
Remarks
蓝牙4.0由于标准限制,速度会比2.0慢不少。
Read
读数据
Syntax
public int Read(byte[] buffer,int offset,int count,int timeout)
Parameters
buffer
接收缓冲区
offset
从指定偏移开始存放收到的数据
count
要接收的字节数
timeout
超时毫秒时间
Return value
如果读取成功,返回成功读入的字节数、如果读取失败,返回-1。
Remarks
SkipAvailable
忽略缓冲区中的数据
Syntax
public void SkipAvailable()
Parameters
Return value
Remarks
IsOpened
是否已连接
Syntax
public boolean IsOpened()
Parameters
Return value
返回true,表示已经连接、返回false,表示未连接。
Remarks
IsOpened可能会有延时。
如果想确定打印机是否已连接,可以使用POS系列函数中的RTQeuryStatus。
SetCallBack
设置回调接口
Syntax
public void SetCallBack(IOCallBack callBack)
Parameters
callBack
回调接口,只有设置了该项,在连接成功或连接断开的时候,才会有回调。
Return value
Remarks
NETPrinting
WIFI底层连接、读写封装
Open
连接指定网络打印机
Syntax
public boolean Open(String IPAddress,int PortNumber)
Parameters
IPAddress
打印机IP地址:可以在打印机自检页中获取,打印机默认IP:192.168.1.87
PortNumber
打印机端口号:固定为9100
Return value
连接成功,返回true、否则,返回false。
Remarks
连接成功之后,会调用回调接口OnOpen,连接失败会调用OnOpenFailed
Close
关闭连接
Syntax
public void Close()
Parameters
Return value
Remarks
关闭连接,会调用回调接口OnClose,重复Close不会多次调用回调。
Write
通过网口写入数据
Syntax
public int Write(byte[] buffer,int offset,int count)
Parameters
buffer
发送缓冲区
offset
从指定偏移开始发送数据
count
要发送的字节数
Return value
如果写入成功,返回成功写入的字节数、如果写入失败,返回-1
Remarks
如果无线路由器信号不好,或网络环境不佳,可能会造成卡顿。正常情况下,打印巨量数据都不会有问题。
Read
读数据
Syntax
public int Read(byte[] buffer,int offset,int count,int timeout)
Parameters
buffer
接收缓冲区
offset
从指定偏移开始存放收到的数据
count
要接收的字节数
timeout
超时毫秒时间
Return value
如果读取成功,返回成功读入的字节数、如果读取失败,返回-1。
Remarks
SkipAvailable
忽略缓冲区中的数据
Syntax
public void SkipAvailable()
Parameters
Return value
Remarks
IsOpened
是否已连接
Syntax
public boolean IsOpened()
Parameters
Return value
返回true,表示已经连接、返回false,表示未连接。
Remarks
IsOpened函数是建立在心跳的基础上,并不能实时获取连接状态。
如果打印机突然关机,IsOpened可能需要几秒钟,才能返回正确的结果。
如果想确定打印机是否已连接,可以使用POS系列函数中的RTQeuryStatus。
USBPrinting
USB底层连接、读写封装
Open
连接指定USB打印机
Syntax
public boolean Open(UsbManager manager, UsbDevice device)
Parameters
manager
UsbManager
使用(UsbManager) getSystemService(Context.USB_SERVICE)获得
device
UsbDevice
通过枚举USB设备获得UsbDevice(mUsbManager.getDeviceList())
Return value
连接成功,返回true、否则,返回false。
Remarks
连接成功之后,会调用回调接口OnOpen,连接失败会调用OnOpenF