Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android(USB TM-T20)中使用EPSON ePOS2打印_Android_Printing_Epson_Epos - Fatal编程技术网

在Android(USB TM-T20)中使用EPSON ePOS2打印

在Android(USB TM-T20)中使用EPSON ePOS2打印,android,printing,epson,epos,Android,Printing,Epson,Epos,我正试图从我的android kiosk/平板电脑打印一个轮次号。用户只需按下图像按钮,就可以打印转弯。 该信息亭连接到USB Epson TM-T20打印机 我下载了爱普生提供的示例EPOS2_打印机应用程序,并构建了它的APK,它在kiosk上运行良好,因此我尝试使用其代码并将其集成到我正在尝试的工作中。问题是我无法在没有用户交互的情况下找到并选择打印机 EPSON提供的示例有一个DiscoveryActivity,应用程序在其中搜索已连接的设备,您可以从搜索结果中选择所需的设备,然后返回主

我正试图从我的android kiosk/平板电脑打印一个轮次号。用户只需按下图像按钮,就可以打印转弯。 该信息亭连接到USB Epson TM-T20打印机

我下载了爱普生提供的示例EPOS2_打印机应用程序,并构建了它的APK,它在kiosk上运行良好,因此我尝试使用其代码并将其集成到我正在尝试的工作中。问题是我无法在没有用户交互的情况下找到并选择打印机

EPSON提供的示例有一个DiscoveryActivity,应用程序在其中搜索已连接的设备,您可以从搜索结果中选择所需的设备,然后返回主活动,并预先填充目标字段。 我正在尝试保持相同的活动,单击,执行发现并获取目标(只有一台打印机)并打印到它

阅读:下面的评论说使用Discover.start获取目标,但是如何将其与Printer.connect集成

我可以分享代码,只是希望在这里尽可能简短


感谢您的帮助

请分享您的代码

你试过这样的吗

    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();
    }

请分享你的代码

你试过这样的吗

    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();
    }

谢谢你的回复。我可以通过添加一个DiscoveryListener来解决这个问题,并将目标打印机保存在一个字符串中:target=deviceInfo.getTarget();该字符串返回USB端口地址。然后我使用mPrinter.connect(target,Printer.PARAM_默认值)连接,
结果是什么?
isPrintable()
方法实现在哪里?谢谢您的回复。我可以通过添加一个DiscoveryListener来解决这个问题,并将目标打印机保存在一个字符串中:target=deviceInfo.getTarget();该字符串返回USB端口地址。然后我使用mPrinter.connect(target,Printer.PARAM_默认值)连接,
结果是什么?
isPrintable()
方法实现在哪里?