android - POS 应用程序的打印机方法调用在发布和调试环境中表现不同
问题描述
我已经被这个问题困扰了将近一个星期。我面临的问题是,当我将应用程序设置为调试模式时,打印机功能运行良好;他们返回正确的响应,并且示例文本从 POS 的热敏打印机打印出来。
但是,当我将应用程序切换到发布模式时,情况开始有所不同。为了让您了解正在发生的事情,这里是正确的方法调用和响应。您可以看到发送到操作系统的请求是正确的,并且返回值也是正确的。
09-06 21:22:04.058 357-357/? D/LibPrinterService: PrinterService getStatus...
09-06 21:22:04.072 357-357/? D/LibPrinterService: PrinterService getStatus,status=0
09-06 21:22:04.072 6412-6432/com.company.newpos D/PAYSDK: [+] Print Status: 0
09-06 21:22:04.072 357-466/? D/LibPrinterService: PrinterService getMaxTemperature...
09-06 21:22:04.074 357-466/? D/LibPrinterService: PrinterService getMaxTemperature,max=70
09-06 21:22:04.074 6412-6432/com.company.newpos D/PAYSDK: [+] Print MaxTemp: 70
09-06 21:22:04.074 357-5733/? D/LibPrinterService: PrinterService getWidth...
09-06 21:22:04.076 6412-6432/com.company.newpos D/PAYSDK: [+] Print Width: 384
09-06 21:22:04.077 357-357/? D/LibPrinterService: PrinterService getTemperature...
09-06 21:22:04.082 6412-6432/com.company.newpos D/PAYSDK: [+] Print Temp: 32
这是它应该工作的正确方式。现在当我切换到释放模式时。这些方法的行为方式不同。该getStatus()
方法使 PrinterService 返回当前温度 ( getTemperature()
),getMaxTemperature()
返回状态 ( getStatus()
)。结果,打印机模块全乱了,打印机不工作了。
起初,我认为这是一个 proguard 映射问题(可能仍然是),但是即使禁用了 proguard 和 minify,也会发生同样的情况。
任何人都可以帮助指导我或让我了解这里可能发生的事情吗?
谢谢
解决方案
尝试在连接中添加一些延迟。
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// put your function here.
}
}, 2000);
推荐阅读
- javascript - Extjs:使用商店获取 csv 文件
- ios - 如何在 ios Obj c 中集成 Google reCaptcha
- python - jange 包错误:确保使用为 python 安装的正确版本的 pip
- php - 你如何使保存按钮在 Laravel (DataTables) 中工作?
- android - 如何以新的方式从对话中获取结果?
- javascript - 按下提交按钮时表单未提交输入
- html - 使传单地图全屏无滚动条
- javascript - 在不同的屏幕中设置 Redux 商店监听器
- postgresql - 如何使用 Spring Boot Rest API 以图形方式更新 Grafana 表?
- java - 如何在 Firebase 中获取孩子的密钥?