Story:我的應用程序專爲移動平臺而設計,並與藍牙點陣打印機有自己的連接,用於打印區域或現場的一些發票和文檔。一些Android設備運行良好,但其中一些在用戶嘗試打印某些內容時總會拋出破損的管道異常。德爾福Firemonkey「Broken Pipe」異常
過程:
- 我用TBluetoothManager和TBluetoothDeviceList用於獲取配對設備列表,我存儲在配置INI文件的所有配對設備。
- 當用戶想要打印時,我初始化連接已準備好打印的設備,然後我將發票一行一行地發送到TBluetoothSocket對象。
- 我用這個函數把我的每一行改爲Byte數組;
function StrToByteArr(strData: String): TArray<Byte>; var eEncoding: TEncoding; begin eEncoding := TEncoding.GetEncoding(857); Result := eEncoding.GetBytes(strData); end;
然後,我把我的值作爲字節數組TBluetoothSocket.SendData(Byte>) Method
問題:我試圖用10+不同的設備打印我的價值觀和成功率不夠好( 8/20設備工作正常)。我該怎麼辦?