Android 离子蓝牙打印POS命令不工作

Android 离子蓝牙打印POS命令不工作,android,cordova,ionic-framework,printing,bluetooth,Android,Cordova,Ionic Framework,Printing,Bluetooth,我正在开发这个ionic应用程序,我正在使用这个库使用蓝牙热敏打印机打印收据 我想在打印后剪纸,因为我的打印机有这个功能 BTPrinter.printPOSCommand(function(data){ console.log("Success"); console.log(data) },function(err){ console.log("Error"); console.log(err) }, "1D") 我尝试了0x1d和0x1d v 1,但它就是不

我正在开发这个ionic应用程序,我正在使用这个库使用蓝牙热敏打印机打印收据

我想在打印后剪纸,因为我的打印机有这个功能

BTPrinter.printPOSCommand(function(data){
    console.log("Success");
    console.log(data)
},function(err){
    console.log("Error");
    console.log(err)
}, "1D")

我尝试了0x1d和0x1d v 1,但它就是不起作用。

您到底是如何尝试发送该命令的?尝试:

BTPrinter.printPOSCommand(function(data){
    console.log("Success");
    console.log(data)
},function(err){
    console.log("Error");
    console.log(err)
}, "0x1d")
如果这不起作用,你可以尝试编辑插件本身来添加方法,但这有点复杂

在pluginfolder/src/android中的Bluetoothprint.java文件中,尝试以下操作:

获得以下方法:

 boolean printPOSCommand(CallbackContext callbackContext, byte[] buffer)     throws IOException {
        try {
        //mmOutputStream.write(("Inam").getBytes());
        //mmOutputStream.write((((char)0x0A) + "10 Rehan").getBytes());
        mmOutputStream.write(buffer);
        //mmOutputStream.write(0x0A);

        // tell the user data were sent
        Log.d(LOG_TAG, "Data Sent");
        callbackContext.success("Data Sent");
        return true;
    } catch (Exception e) {
        String errMsg = e.getMessage();
        Log.e(LOG_TAG, errMsg);
        e.printStackTrace();
        callbackContext.error(errMsg);
    }
    return false;
}
将方法属性byte[]buffer更改为string buffer 换线

 mmOutputStream.write(buffer);
致:

另外,为了确保您的打印机支持该方法,您可以尝试直接放置:

mmOutputStream.write(0x1d);
只是为了测试它是否有效

编辑:

试试我发现的byteArray:

public static byte[] FEED_PAPER_AND_CUT = {0x1D, 0x56, 66, 0x00};
BTPrinter.printPOSCommand(function(data){
    console.log("Success");
    console.log(data)
},function(err){
    console.log("Error");
    console.log(err)
}, FEED_PAPER_AND_CUT)

我就这样试过,但不起作用尝试编辑插件文件本身。我已经更新了我的答案,所以你可以试试。非常感谢。。我一定会尝试一下,你说的msg.getBytes是指缓冲区而不是msg,对吗?是的,旋转并固定不幸的是,纸张仍然没有被切割
public static byte[] FEED_PAPER_AND_CUT = {0x1D, 0x56, 66, 0x00};
BTPrinter.printPOSCommand(function(data){
    console.log("Success");
    console.log(data)
},function(err){
    console.log("Error");
    console.log(err)
}, FEED_PAPER_AND_CUT)