You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

蓝牙Socket实现ESC/POS打印机通信无响应问题排查求助

蓝牙Socket实现ESC/POS打印机通信无响应问题排查求助

我现在正在尝试通过蓝牙使用ESC/POS协议实现热敏打印机的通信,目前已经能正确识别到绑定的蓝牙热敏打印机,Socket也显示连接成功,但不管发送什么指令都没有反应——比如我试着发送走纸指令(代码如下),打印机完全没动静。

我现在不仅找不到问题所在,还不知道该怎么验证字节是否真的写入到了打印机端。

附我的实现代码:

private fun getDeviceByAddress(address: String): BluetoothDevice? {
    return bluetoothManager.adapter.bondedDevices.find { it.address == address }
}

suspend fun feed(printer: Printer, lines: Int = 1) {
    getDeviceByAddress(printer.address)?.let { device ->
        device.createRfcommSocketToServiceRecord(SPP_UUID)
            .let { socket ->
                try {
                    socket.connect()
                    socket.outputStream.write(byteArrayOf(0x1B, 0x40))
                    socket.outputStream.write(byteArrayOf(0x1B, 0x64, lines.toByte()))
                    socket.outputStream.flush()
                } catch (e: Exception) {
                    e.printStackTrace()
                } finally {
                    withTimeout(100) {
                        socket.close()
                    }
                }
            }
    }
}

另外补充一下:我知道这个打印机品牌有官方SDK,但我就是想纯通过ESC/POS指令来完成通信,不想依赖SDK。

有没有朋友能帮忙分析下可能的问题点?或者教教我如何验证指令是否成功发送到打印机?

备注:内容来源于stack exchange,提问作者Jüri Kiin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 10:13:00