最近在做这个热敏打印机打印小票,开始的时候在网上找资料,发现国内基本没有这方面的资料,国外也很少,在此做个打印小票的记录。

这里只记录一些关键点。

使用StarIOPort.searchPrinter(String port)来查找可用的设备,我这里使用的是无线连接打印机。代码如下

ProgressDialog dialog = ProgressDialog.show(context, "", "查找中请稍等...", true);
List TCPPortList;
final ArrayList arrayDiscovery; //用来存储找到的打印设备信息
final ArrayList arrayPortName; //用来存储设备信息的字符

arrayDiscovery = new ArrayList();
arrayPortName = new ArrayList();
try{
TCPPortList = StarIOPort.searchPrinter("TCP:"); //使用TCP查找设备
for(PortInfo portInfo : TCPPortList){
arrayDiscovery.add(portInfo); //遍历查找到的设备,将其添加到arrayDiscovery中
}
if(arrayDiscovery.size() > 0)
{
Log.i("TTT", "发现设备");
SharedPreferences pref = context.getSharedPreferences("POS_ORDER", Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE);
Editor editor = pref.edit();
editor.putString("portName", arrayDiscovery.get(0).getPortName());
editor.commit();
dialog.dismiss();

//将arrayDiscovery中的端口信息读取出来,放入arrayPortName中
for (PortInfo discovery : arrayDiscovery) {
String portName;

portName = discovery.getPortName();

if (discovery.getMacAddress().equals("") == false) {
portName += "\n - " + discovery.getMacAddress();
if (discovery.getModelName().equals("") == false) {
portName += "\n - " + discovery.getModelName();
}
}

arrayPortName.add(portName);
}

//弹出选择框,选择找到的设备以打印
new AlertDialog.Builder(context).setIcon(android.R.drawable.checkbox_on_background).setTitle("请选择打印机的IP").setItems(arrayPortName.toArray(new String[0]), new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int whichButton) {
try {
StarIOPort port = null;
String portButton = arrayPortName.get(whichButton);
port = StarIOPort.getPort(portButton, "", 10000);

ArrayList<byte[]> ByteArray = new goodsList().createList();
byte[] commandToSendToPrinter = new convertFromListByteArrayToByteArray(ByteArray).listByteArrayToByteArray();
port.writePort(commandToSendToPrinter, 0, commandToSendToPrinter.length);
} catch (StarIOPortException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).show();
}

else
{
dialog.dismiss();
Builder dialog2 = new AlertDialog.Builder(context);
dialog2.setTitle("无法连接设备");
dialog2.setMessage("1请确认设备已开机且绿灯常亮非闪烁。\n2.请确认路由器一开机并正常工作。\n3.排除问题后再次点击按钮。");

AlertDialog dialogView = dialog2.show();
TextView textView = (TextView) dialogView.findViewById(android.R.id.message);
textView.setTextSize(26);
Button btn1 = dialogView.getButton(DialogInterface.BUTTON_POSITIVE);
btn1.setTextSize(24);
btn1.setTextColor(Color.BLUE);
Button btn2 = dialogView.getButton(DialogInterface.BUTTON_NEGATIVE);
btn2.setTextSize(24);
btn2.setTextColor(Color.RED);
SharedPreferences pref = context.getSharedPreferences("POS_ORDER", context.MODE_WORLD_READABLE | context.MODE_WORLD_WRITEABLE);
Editor editor = pref.edit();
editor.putString("portName", "");
editor.commit();

}
} catch (StarIOPortException e){
Log.i("TAG", "tcp查找失败");
e.printStackTrace();
}

android端StarIO热敏打印机打印小票的更多相关文章

  1. C# 收银机顾显(客显)及打印小票(58热敏打印机)

    最近做winform收银机,设计顾显及打印小票总结. 1.顾显(串口COM1) 只涉及到总计,所以只是简单的功能. public static ClientDisplayResult Display( ...

  2. Spring MVC返回json数据给Android端

    原先做Android项目时,服务端接口一直是别人写的,自己拿来调用一下,但下个项目,接口也要自己搞定了,我想用Spring MVC框架来提供接口,这两天便抽空浅学了一下该框架以及该框架如何返回json ...

  3. Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展

    本文由“猫爸iYao”原创分享,感谢作者. 1.引言 最近有个需求:评论@人(没错,就是IM聊天或者微博APP里的@人功能),就像下图这样:   ▲ 微信群聊界面里的@人功能    ▲ QQ群聊界面里 ...

  4. [Android]Android端ORM框架——RapidORM(v2.1)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6020412.html [Android]Android端ORM ...

  5. [Android]Android端ORM框架——RapidORM(v2.0)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...

  6. Java服务器对外提供接口以及Android端向服务器请求数据

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...

  7. 【转】C#使用ESC指令控制POS打印机打印小票

    .前言 C#打印小票可以与普通打印机一样,调用PrintDocument实现.也可以发送标注你的ESC指令实现.由于 调用PrintDocument类时,无法操作使用串口或TCP/IP接口连接的pos ...

  8. C#使用ESC指令控制POS打印机打印小票

    1.前言 C#打印小票可以与普通打印机一样,调用PrintDocument实现.也可以发送标注你的ESC指令实现.由于 调用PrintDocument类时,无法操作使用串口或TCP/IP接口连接的po ...

  9. 【Android端 APP GPU过度绘制】GPU过度绘制及优化

    一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...

随机推荐

  1. 修改 Lua支持中文变量名

    1. 找到 LuaPlus 工程下的 Lua Source Files 下的 llex.c:   2. 在该文件中找到下面所列函数: static int llex (LexState *ls, Se ...

  2. win7下提权代码

    inline BOOL SetPrivilege() { HANDLE hProcess, hToken; TOKEN_PRIVILEGES NewState; LUID luidPrivilegeL ...

  3. c语言自动对齐原则

    转载一篇博客: http://blog.csdn.net/hairetz/article/details/4084088 1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员, ...

  4. 处理下最近的file_id小写问题

    update t_resource_info set FILE_ID = UPPER(FILE_ID);update t_resource_my_info set FILE_ID = UPPER(FI ...

  5. 二十六个月Android学习工作总结【转】

    原文:二十六个月Android学习工作总结 1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍.     2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该 ...

  6. [BZOJ1191][HNOI2006]超级英雄Hero 类似二分图的最大匹配

    1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4740  Solved: 2162[Submit][ ...

  7. 最基础的java

    一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始  ---->所有程序--->附件---->命令提示符 Win7-->  开始  -- ...

  8. Codeforces Round #325 (Div. 2) Phillip and Trains dp

    原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...

  9. hdu 1599 find the mincost route 最小环

    题目链接:HDU - 1599 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须 ...

  10. Laravel 使用firstOrCreate 报错MassAssignmentException

    今天尝试使用firstOrCreate去优化一段查找不到即创建的代码,结果发现会报MassAssignmentException错误,提示我参数错误,去网上找了好久没有找到结果,最后庆幸自己解决了,把 ...