ストーリー:私のアプリケーションはモバイルプラットフォーム用に設計されており、ブルートゥースドットマトリックスプリンタと独自の接続があり、地域やフィールドに請求書や文書を印刷します。アンドロイドデバイスの中にはうまくいくものもありますが、ユーザーが何かを印刷しようとすると、破損したパイプの例外が常にスローされます。デルファイファイアモンキー「壊れたパイプ」例外
プロセス:
- 私はペアリングデバイスのリストを取得するためTBluetoothManagerとTBluetoothDeviceListを使用して、私は設定のiniファイル内のすべてのペアのデバイスを保存。
- 印刷したいデバイスとの接続を開始すると、TBluetoothSocketオブジェクトに行ごとに請求書が送信されます。
- この関数を使用して各行をByte Arrayに変更します。
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デバイスは正常に動作しています)。私は何をすべきか?