C# 如何知道蓝牙打印机何时完成打印字符串

C# 如何知道蓝牙打印机何时完成打印字符串,c#,android,xamarin,printing,bluetooth,C#,Android,Xamarin,Printing,Bluetooth,我正在开发一个Xamarin应用程序,我正在尝试实现一个打印回执功能,实际上整个代码工作得几乎完美,但问题是打印机在打印整个字符串之前停止打印 try { using (BluetoothSocket bluetoothSocket = device?. CreateRfcommSocketToServiceRecord( UUID.FromString("00001101-0000-1000-8000-00805f9b34fb

我正在开发一个Xamarin应用程序,我正在尝试实现一个打印回执功能,实际上整个代码工作得几乎完美,但问题是打印机在打印整个字符串之前停止打印

   try {

          using (BluetoothSocket bluetoothSocket = device?.
          CreateRfcommSocketToServiceRecord(
          UUID.FromString("00001101-0000-1000-8000-00805f9b34fb")))
          {
             bluetoothSocket?.Connect();

             if (bluetoothSocket?.IsConnected == true) {
                 var stream = bluetoothSocket?.OutputStream;
                 byte[] buffer = Encoding.UTF8.GetBytes(text);
                 stream.Write(buffer, 0, buffer.Length);
              }

              if (bluetoothSocket != null)
                 bluetoothSocket.Close();
          }
     }
     catch (Exception exp){

             throw exp;
     }

我希望在不使用睡眠的情况下解决这个问题

您需要打印的字符串有多长?确实很难说,但我认为大约1k长,但老实说,这是一个动态字符串,可能超过1k。打印机可能有一个您可能正在填充的内部缓冲区。试着把你的字符串分成小块,然后一个一个地写到流中。这很有意义,我会尝试,我马上回来:)嗨,杰森,我刚做了一些块,然后把文本按部分发送到打印机,它确实很有魅力!非常感谢你。