Устройство Sunmi V1s - обратный вызов Java не работает, когда принтер завершает печать

Я использую устройство Sunmi V1s и хочу показать диалоговое окно после того, как принтер завершит печать всей квитанции. Теперь я могу получить сообщение после того, как запрос будет обработан, но я не могу получить сообщение о точном моменте, когда принтер выполнил всю печать.

Я использовал демонстрационное приложение для создания обратного вызова, который затем отправляю в класс AidlUtil.

TextActivity

final PrinterCallback printerCallback = new PrinterCallback() {
          @Override
          public void onReturnString(String result) {
                System.out.println("Finished: " + result); //never prints out, expecting this line to work when Sunmi printer finishes printing
          }

          @Override
          public void onRunResult(boolean success) {
                System.out.println("Success: " + success); //prints out immediately after query is sent
          }
          @Override
          public void onRaiseException(String msg) {

          }
};
AidlUtil.getInstance().printText(content, size, isBold, isUnderLine, printerCallback);

AidlUtil класс:

public void printText(String content, float size, boolean isBold, boolean isUnderLine, PrinterCallback printerCallback) {
        if (woyouService == null) {
            Toast.makeText(context, R.string.toast_2, Toast.LENGTH_LONG).show();
            return;
        }

        try {
            if (isBold) {
                woyouService.sendRAWData(ESCUtil.boldOn(), null);
            } else {
                woyouService.sendRAWData(ESCUtil.boldOff(), null);
            }

            if (isUnderLine) {
                woyouService.sendRAWData(ESCUtil.underlineWithOneDotWidthOn(), null);
            } else {
                woyouService.sendRAWData(ESCUtil.underlineOff(), null);
            }

            woyouService.printTextWithFont(content, null, size, generateCB(printerCallback)); //generating ICallback and sending it to printTextWithFont method
            woyouService.lineWrap(3, null);
        } catch (RemoteException e) {
            e.printStackTrace();
        }
}

generateCB метод:

public ICallback generateCB(final PrinterCallback printerCallback){
        return new ICallback.Stub(){
            @Override
            public void onRunResult(boolean isSuccess) throws RemoteException {
                printerCallback.onRunResult(isSuccess);
            }

            @Override
            public void onReturnString(String result) throws RemoteException {
                printerCallback.onReturnString(result);
            }

            @Override
            public void onRaiseException(int code, String msg) throws RemoteException {
                printerCallback.onRaiseException(msg);
            }

            @Override
            public void onPrintResult(int code, String msg) throws RemoteException {
            }
        };
}

В чем может быть проблема? Я ожидаю получить метод System.out.println onReturnString, но метод никогда не вызывается

Я также столкнулся с этой проблемой, вы нашли решение / обходной путь для этого?

Karan Jhinga 29.06.2020 10:57
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
4
1
655
0

Другие вопросы по теме