如何格式化传入的蓝牙流?

How to format incomming Bluetooth stream?

我已经将流转换为字符串,但我想让它只给我 byte[]。 这是我的代码

    public byte[] Read()
    {
        try
        {
            byte[] myReadBuffer = new byte[1024];
            StringBuilder myCompleteMessage = new StringBuilder();
            int numberOfBytesRead = 0;

            do
            {
                numberOfBytesRead = mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);

                myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
            }
            while (mmInStream.IsDataAvailable());

            System.Diagnostics.Debug.WriteLine(myCompleteMessage, "Reading");
        }
        catch (IOException ex)
        {
            System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
        }

        return null;
    }

您可以将所有中间缓冲区的数据收集到一个单独的数组中。我正在使用 ArrayList 来收集所有缓冲区数据。收到数据后,我们将把那个ArrayList转成数组。

public byte[] Read()
{
    try
    {
        byte[] myReadBuffer = new byte[1024];
        StringBuilder myCompleteMessage = new StringBuilder();
        int numberOfBytesRead = 0;
        var finalByteList = new ArrayList<byte>();

        do
        {
            numberOfBytesRead = mmInStream.Read(myReadBuffer, 0, myReadBuffer.Length);
            finalByteList.AddRange(myReadBuffer)
            myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
        }
        while (mmInStream.IsDataAvailable());

        // here is the final array of bytes
        var finalByteArray = finalByteList.ToArray();

        System.Diagnostics.Debug.WriteLine(myCompleteMessage, "Reading");
    }
    catch (IOException ex)
    {
        System.Diagnostics.Debug.WriteLine("Input stream was disconnected", ex);
    }

    return null;
}