商米外置打印机开发说明

3、局域网IP打印机

基于安卓系统编程DEMO下载:【SDK DEMO

注意:到手的云打印机因为没有配置过现场wifi网络,所以在开发的时候联网很不方便。所以我们提供了一个安装在安卓手机上的配网工具给合作伙伴下载使用。点击下载【wifi配网工具

SDK说明

为更好的简化打印机指令编程过程,商米打印机SDK将复杂的ESC/POS指令集成为简单易懂的API接口,使得您可以快速调用各种打印接口库,实现所有打印排版、样式设置功能,并且随着不断更新完善,大大减少开发者对于打印机设备配置、ESC/POS指令学习等工作;

当前SDK支持连接的LAN口、WIFI打印机:

商米58智能云打印机(NT21x系列)

商米80后厨云打印机 (NT31x系列)

· 集成方式:

aar包导入参考官方导入方式:https://developer.android.com/studio/projects/android-library?hl=zh-cn

· 避免混淆,在proguard-rules.pro混淆文件中增加以下配置:

-dontwarn  com.sunmi.externalprinteribrary.**-keep public class  com.sunmi.externalprinterlibrary.**{*;}

· SDK支持枚举的打印机

通过枚举类SunmiPrinter选择要连接打印机,可选择的打印机如下:

SunmiPrinter.SunmiNetPrinter—-商米云打印机局域网方式

· 局域网打印

目前局域网打印使用connectNetPrinter接口直接指定IP地址连接局域网内的商米云打印机,使用方法如下:

(1)初始化

SunmiPrinterApi.getInstance().connectNetPrinter(context,  “ip address”, 
    new  ConnectCallback{
         void onFound(){
              //发现打印机会回调此方法
        }
  
         void onUnfound(){
              //如果没找到打印机会回调此方法
        }
  
         void onConnect(){
              //连接成功后会回调此方法,则可以打印
        }
  
         void onDisconnect(){
              //连接中打印机断开会回调此方法,此时将中断打印
              //局域网打印机需要调用isConnected()接口主动查询
        }
});
 

(2)调用打印接口

当确定打印机已经连接成功后,就可以开始构建自己的打印内容,如下打印一行数字:

SunmiPrinterApi.getInstance().printText(“123456789\n”);

注意所有打印接口均会抛出打印机异常:

PrinterException error

当未连接打印机、接口参数错误等情况下会跑出异常;

由于局域网打印接口通过socket通讯,所以接口调用打印请创建单独线程使用不能应用于主线程,否则将抛出

PrinterException:Api can't run on MainThread!

(3)当不再使用打印机时,尽可能断开打印机连接,这样将释放资源给更多设备接入打印

SunmiPrinterApi.getInstance().disconnectPrinter();

(4)更多的使用方法请参考【打印机SDK接口API说明