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之后响应很慢,或者具体滑动操作的时候也很慢. 二.卡顿的原因 卡顿的 ...
随机推荐
- 修改 Lua支持中文变量名
1. 找到 LuaPlus 工程下的 Lua Source Files 下的 llex.c: 2. 在该文件中找到下面所列函数: static int llex (LexState *ls, Se ...
- win7下提权代码
inline BOOL SetPrivilege() { HANDLE hProcess, hToken; TOKEN_PRIVILEGES NewState; LUID luidPrivilegeL ...
- c语言自动对齐原则
转载一篇博客: http://blog.csdn.net/hairetz/article/details/4084088 1:数据成员对齐规则:结构(struct)(或联合(union))的数据成员, ...
- 处理下最近的file_id小写问题
update t_resource_info set FILE_ID = UPPER(FILE_ID);update t_resource_my_info set FILE_ID = UPPER(FI ...
- 二十六个月Android学习工作总结【转】
原文:二十六个月Android学习工作总结 1.客户端的功能逻辑不难,UI界面也不难,但写UI花的时间是写功能逻辑的两倍. 2.写代码前的思考过程非常重要,即使在简单的功能,也需要在本子上把该 ...
- [BZOJ1191][HNOI2006]超级英雄Hero 类似二分图的最大匹配
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4740 Solved: 2162[Submit][ ...
- 最基础的java
一.Window中常见的dos命令 在哪里操作dos命令: Win7 ---> 开始 ---->所有程序--->附件---->命令提示符 Win7--> 开始 -- ...
- Codeforces Round #325 (Div. 2) Phillip and Trains dp
原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...
- hdu 1599 find the mincost route 最小环
题目链接:HDU - 1599 杭州有N个景区,景区之间有一些双向的路来连接,现在8600想找一条旅游路线,这个路线从A点出发并且最后回到A点,假设经过的路线为V1,V2,....VK,V1,那么必须 ...
- Laravel 使用firstOrCreate 报错MassAssignmentException
今天尝试使用firstOrCreate去优化一段查找不到即创建的代码,结果发现会报MassAssignmentException错误,提示我参数错误,去网上找了好久没有找到结果,最后庆幸自己解决了,把 ...