Невозможно заставить слушателей принтера Epson EPOS работать, чтобы контролировать состояние принтера - PullRequest
0 голосов
/ 30 мая 2018

Я использую принтер Epson TM-P80, который подключен к моему устройству Android 7 с помощью Epsons Android SDK .Принтер подключен через Bluetooth, и я могу печатать из моего приложения.

У меня проблемы с настройкой прослушивателей setReceiveEventListener(), setConnectionEventListener() и setStatusChangeEventListener(), чтобы я мог непрерывно отслеживать состояние принтера и отображать предупреждения о низком заряде батареи, низком уровне бумаги, замятии бумаги,крышка открыта, отсоединение и т. д.

При вызове connectPrinter() (с помощью кнопки для тестирования) сработает прослушиватель onPtrStatusChange(), но только один раз .Я ожидал, что mPrinter.setInterval(1000); будет сообщать каждую секунду, но это не так.onConnection() никогда не называется.Что я делаю неправильно?

открытый класс MainActivity расширяет Activity, реализует View.OnClickListener, ReceiveListener, ConnectionListener, StatusChangeListener {

private Printer  mPrinter = null;

    private boolean connectPrinter() {

        boolean isBeginTransaction = false;
        if (mPrinter == null) {
            return false;
        }

        try {
            //mPrinter.connect(mEditTarget.getText().toString(), Printer.PARAM_DEFAULT);
            mPrinter.connect("BT:00:01:03:AA:BB:CC", Printer.PARAM_DEFAULT);

            // Register the Event Listners 
            mPrinter.setReceiveEventListener(this);
            mPrinter.setConnectionEventListener(this);
            mPrinter.setStatusChangeEventListener(this);

            // Start monitoring 
            mPrinter.startMonitor();
            mPrinter.setInterval(1000);
        }
        catch (Exception e) {
           ShowMsg.showException(e, "connect", mContext);
           return false;
        }

        @Override
        public void onPtrStatusChange(Printer printer, int i) {
            // This is only called once
            System.out.println("onPtrStatusChange ");
        }

        @Override
        public void onConnection(Object o, int i) {
            // This is never outputted 
            System.out.println("onConnection");
        }

    }
}

Здесь вы можете просмотреть документы SDK Документы Epson EPos Android SDK

...