android端StarIO热敏打印机打印小票
最近在做这个热敏打印机打印小票,开始的时候在网上找资料,发现国内基本没有这方面的资料,国外也很少,在此做个打印小票的记录。
这里只记录一些关键点。
使用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热敏打印机打印小票的更多相关文章
- C# 收银机顾显(客显)及打印小票(58热敏打印机)
最近做winform收银机,设计顾显及打印小票总结. 1.顾显(串口COM1) 只涉及到总计,所以只是简单的功能. public static ClientDisplayResult Display( ...
- Spring MVC返回json数据给Android端
原先做Android项目时,服务端接口一直是别人写的,自己拿来调用一下,但下个项目,接口也要自己搞定了,我想用Spring MVC框架来提供接口,这两天便抽空浅学了一下该框架以及该框架如何返回json ...
- Android端IM应用中的@人功能实现:仿微博、QQ、微信,零入侵、高可扩展
本文由“猫爸iYao”原创分享,感谢作者. 1.引言 最近有个需求:评论@人(没错,就是IM聊天或者微博APP里的@人功能),就像下图这样: ▲ 微信群聊界面里的@人功能 ▲ QQ群聊界面里 ...
- [Android]Android端ORM框架——RapidORM(v2.1)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/6020412.html [Android]Android端ORM ...
- [Android]Android端ORM框架——RapidORM(v2.0)
以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5626716.html [Android]Android端ORM ...
- Java服务器对外提供接口以及Android端向服务器请求数据
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...
- 【转】C#使用ESC指令控制POS打印机打印小票
.前言 C#打印小票可以与普通打印机一样,调用PrintDocument实现.也可以发送标注你的ESC指令实现.由于 调用PrintDocument类时,无法操作使用串口或TCP/IP接口连接的pos ...
- C#使用ESC指令控制POS打印机打印小票
1.前言 C#打印小票可以与普通打印机一样,调用PrintDocument实现.也可以发送标注你的ESC指令实现.由于 调用PrintDocument类时,无法操作使用串口或TCP/IP接口连接的po ...
- 【Android端 APP GPU过度绘制】GPU过度绘制及优化
一.Android端的卡顿 Android端APP在具体使用的过程中容易出现卡顿的情况,比如查看页面时出现一顿一顿的感受,切换tab之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...
随机推荐
- Python编程学习笔记 随时更新
import urllib.request import re url = 'http://stock.sohu.com/news/' html = urllib.request.urlopen(ur ...
- hdu 2461(AC) & poj 3695(TLE)(离散化+矩形并)
Rectangles Time Limit: 5000/4000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- [BZOJ1032][JSOI2007]祖码Zuma 区间dp
1032: [JSOI2007]祖码Zuma Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1105 Solved: 576 [Submit][S ...
- Tomcat服务器与HTTP协议
Tomcat服务器与HTTP协议 一. Tomcat服务器 1.tomcat服务器 1.web :网页,它代表的是网络上的资源.(java技术开发动态的web资源,即动态web页面,在Java中,动 ...
- Python的并发并行[1] -> 线程[2] -> 锁与信号量
锁与信号量 目录 添加线程锁 锁的本质 互斥锁与可重入锁 死锁的产生 锁的上下文管理 信号量与有界信号量 1 添加线程锁 由于多线程对资源的抢占顺序不同,可能会产生冲突,通过添加线程锁来对共有资源进行 ...
- POJ 3080-Blue Jeans【kmp,字符串剪接】
Blue Jeans Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20695 Accepted: 9167 Descr ...
- DP【p2051(bzoj 1801)】 [AHOI2009]中国象棋.
题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.大家肯定很清楚,在中国象棋中炮的行走方式是 ...
- u-boot-2010.3移植到Tiny6410问题总结
问题1: u-boot-2010.3中nand_spl文件夹的作用:实现从Nandflash启动在编译是会建立几个链接文件,用这几个链接文件生成u-boot-spl-16k.bin nand_spl/ ...
- 利用mkfs.ubifs和ubinize两个工具制作UBI镜像
转:http://blog.sina.com.cn/s/blog_9452251d01015z9h.html 有了mkfs.ubifs和ubinize两个工具后,就可以制作UBIFS镜像了,具体步骤如 ...
- 粗谈CDN
CDN:内容分发网络(content delivery network) 1.DNS解析到最快(有可能是地理上最近,也有可能是地理上远但是链路最好)的CDN缓存设备 2.从CDN获取已经缓存的资源 3 ...