Bluetooth-печать не срабатывает при нажатии кнопок - PullRequest
0 голосов
/ 23 февраля 2020

Я использую библиотеку Printooth для печати тикеров на термопринтере через Bluethoot.

На экране у меня есть список элементов. У каждого есть кнопка, чтобы напечатать их. Так что, если я нажму кнопку, чтобы напечатать один раз, все в порядке. Если я нажимаю кнопки, ожидая немного друг за другом, это тоже нормально. Печать не удалась, если я не жду достаточно времени, нажимая кнопки.

Я получаю следующую ошибку:

read failed, socket might closed or timeout, read ret: -1

У меня просто есть ClickListener для кнопок:

binding.button.setOnClickListener {
    Printer.print(organisationName, item)
    viewModel.editOrderStatus(item.id, item.statusId+1) 
}


fun print(organisationName: String, order: Order) {
    if (Printooth.hasPairedPrinter()) {
        var printables = ArrayList<Printable>()
        var printable = TextPrintable.Builder()
            .setText(organisationName) //The text you want to print
            .setAlignment(DefaultPrinter.ALIGNMENT_CENTER)
            .setEmphasizedMode(DefaultPrinter.EMPHASIZED_MODE_BOLD) //Bold or normal
            .setFontSize(DefaultPrinter.FONT_SIZE_LARGE)
            .setUnderlined(DefaultPrinter.UNDERLINED_MODE_ON) // Underline on/off
            .setCharacterCode(DefaultPrinter.CHARCODE_PC437) // Character code to support languages
            .setLineSpacing(DefaultPrinter.LINE_SPACING_60)
            .setNewLinesAfter(1) // To provide n lines after sentence
            .build()
        printables.add(printable)
        Printooth.printer().print(printables)
    }

}

Есть ли обходной путь для этого?

...