Flutter嵌入式POS打印机(例如Android Q2设备)

5

我已经建立了一个Flutter项目。现在我需要从一个嵌入式POS设备打印。我正在谷歌搜索,但是没有找到任何解决方案。

如果有任何解决方案,请帮助我。

实际上,我需要为Android Q2设备

Android Q2 设备


你解决了这个问题吗? - Michael Mendoza
@MichaelMendoza,不行,因为它是早期的2018年型号sdk,无法直接添加。所以我编写了自定义函数来添加此sdk。但打印需要时间。 - Syed Tanvir Hossan
你能解决这个问题吗?我无法在嵌入设备的Flutter应用程序中打印。这意味着打印永远不起作用,有时会有输出。但是可以从模拟器中打印。 - La Pyae
1
@LaPyae,我使用的Q2设备版本不兼容。我更新了设备并使用公司提供的Android SDK,并从Flutter代码中调用打印功能。 - Syed Tanvir Hossan
是的...我也联系了公司,他们使用本地IP REST API进行修复。 - La Pyae
3个回答

0

编辑:

在您的情况下,您可以下载公司提供的SDK并编写本地代码来打印收据。

例如:

在flutter中

static const platform = const MethodChannel('com.example.myapplication');

Future<void> _print() async {
    try {
        final bool result = await platform.invokeMethod('print',{"data":Printdata});
        if (result) {
            // success
        } else {
            // failed
        }
    } on PlatformException catch (e) {
        //failed to print
    }
}

然后在 Main.java / Main.kt 中实现来自 SDK 文档的方法

示例:

public void onMethodCall(MethodCall call, MethodChannel.Result result) {
    if (call.method.equals("print")) {
        data = call.argument("data");
        // Code from SDK documentation
    } else {
        result.notImplemented();
    }
}

参考:Flutter中的本地代码示例

将第三方SDK添加到Android


不,这个软件包是基于蓝牙/ WiFi或USB的。但是嵌入式打印机设备是直接连接的。我认为它对这个解决方案不起作用。 - Syed Tanvir Hossan
它是否附带Android SDK? - Nishuthan S
为了获取更多信息,我添加了设备图像。我不知道它是如何工作的。 - Syed Tanvir Hossan
你能至少分享一下它是哪个公司和型号吗?如果有任何文档,请也分享一下。 - Nishuthan S
型号:(POS-Q2)带有58mm热敏打印机的Android便携式POS终端 操作系统:Android 6.0 RFID:13.56MHZ 14443A NFC(HF) - Syed Tanvir Hossan
这个包对我很有用:https://github.com/kakzaki/blue_thermal_printer 通过蓝牙连接到内置打印机。基本代码示例在这里:https://github.com/kakzaki/blue_thermal_printer/blob/master/example/lib/main.dart - Jesse James Portnoy

0

我拥有同样的设备,已经构建了Flutter应用程序,并遇到了相同的问题。 我联系了公司,他们为我提供了Android SDK,所以我添加了一个通道并从Flutter代码中调用了打印功能。


嗨。 @mohannad youssef 感谢您的指南。当我调用该通道时,它不再起作用。我能否获得任何示例源代码。 - Syed Tanvir Hossan

0
尝试使用这个库"flutter_bluetooth_serial",并像这样通过直接 MAC 地址连接打印机:
BluetoothConnection connection = await BluetoothConnection.toAddress("mac");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接