使用Android中的EPSON ePOS2进行打印(USB TM-T20)

时间:2018-02-07 15:06:04

标签: android printing epson epos

我正在尝试从我的Android自助服务终端/平板电脑打印一个转弯号码。用户只需按下图像按钮即可打印转弯。 自助服务终端连接到USB Epson TM-T20打印机。

我下载了epson提供的示例EPOS2_Printer应用程序,我构建了它的APK,它在自助服务终端上工作正常,所以我尝试使用它的代码并将其集成到我想要做的事情中。问题是我无法在没有用户交互的情况下发现和选择打印机。

示例EPSON提供了DiscoveryActivity,其中应用程序搜索已连接的设备,您可以从搜索结果中选择所需的设备,并将您带回预先填充目标字段的主要活动。 我试图保持相同的活动,并点击,进行发现并获得目标(只有1台打印机)并打印到它。

阅读本文:Epson printer connect fails status ERR_CONN下面的评论说使用Discover.start来获取目标,但是如何将它与Printer.connect集成?

我可以分享代码,只是希望尽可能地缩短代码。

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分: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();
    }