0

我正在尝试从我的 android kiosk/tablet 打印轮号。用户只需按下图像按钮,即可打印转弯。信息亭连接到 USB Epson TM-T20 打印机。

我下载了 epson 提供的示例 EPOS2_Printer 应用程序,并且我构建了它的 APK,它在信息亭上运行良好,所以我正在尝试使用它的代码并将其集成到我想要做的事情中。问题是我无法在没有用户交互的情况下发现和选择打印机。

EPSON 提供的示例有一个 DiscoveryActivity,应用程序在其中搜索连接的设备,您从搜索结果中选择您想要的设备,然后您将返回到预先填写目标字段的主要活动。我试图保持在同一个活动中,并且 onClick 进行发现并获取目标(只有 1 台打印机)并打印到它。

阅读本文:Epson 打印机连接失败状态 ERR_CONN下面的评论说使用 Discover.start 来获取目标,但是如何将它与 Printer.connect 集成?

我可以分享代码,只是想在这里尽可能短。

任何帮助表示赞赏!

4

1 回答 1

2

请分享您的代码

你尝试过这样的事情吗?

    printer = new Print(getApplicationContext());

    try {
        // Open 
        printer.openPrinter(
            connectionType,
            openDeviceName,
            Print.FALSE,
            Print.PARAM_DEFAULT,
            Print.PARAM_DEFAULT);
    }
    catch (EposException e) {
        result.setEposException(e);
        return;
    }

    try {
        // Print data if printer is printable 
        printer.getStatus(printerStatus, batteryStatus);
        result.setPrinterStatus(printerStatus[0]);
        result.setBatteryStatus(batteryStatus[0]);

        if (isPrintable(result)) {
            printerStatus[0] = 0;
            batteryStatus[0] = 0;

            printer.beginTransaction();
            isBeginTransaction = true;

            printer.sendData(builder, sendTimeout, printerStatus, batteryStatus);
            result.setPrinterStatus(printerStatus[0]);
            result.setBatteryStatus(batteryStatus[0]);
        }
    }
    catch (EposException e) {
        result.setEposException(e);
    }
    finally {
        if (isBeginTransaction) {
            try {
                printer.endTransaction();
            }
            catch (EposException e) {
                // Do nothing
            }
        }
    }

    try {
        printer.closePrinter();
    }
于 2018-03-08T15:02:08.450 回答