Я пытаюсь использовать библиотеку 32feet для получения данных с устройства Android.
Я использую код прослушивателя 32feet bluetooth, указанный ниже:
public partial class Form1 : Form
{
BluetoothListener listener;
public Form1()
{
InitializeComponent();
}
private void button3_Click(object sender, EventArgs e)
{
listener.Stop();
listener.Start(10);
listener.BeginAcceptBluetoothClient(new AsyncCallback(AcceptConnection), l);
richTextBox1.BeginInvoke((Action)(() =>
{
richTextBox1.Text = "Waiting device...";
}));
}
void AcceptConnection(IAsyncResult result)
{
if (result.IsCompleted)
{
BluetoothClient remoteDevice = ((BluetoothListener)result.AsyncState).EndAcceptBluetoothClient(result);
check:
stream = remoteDevice.GetStream();
if (stream.CanRead)
{
byte[] myReadBuffer = new byte[1024];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = 0;
do
{
numberOfBytesRead = stream.Read(myReadBuffer, 0, myReadBuffer.Length);
myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
}
while (stream.DataAvailable);
richTextBox1.BeginInvoke((Action)(() =>
{
richTextBox1.Text = "Incomming data: " + myCompleteMessage.ToString();
}));
}
goto check;
}
}
}
Если я не не использовать команду goto, я получаю данные только один раз ... затем я добавляю goto, чтобы продолжать проверять, есть ли какие-либо данные, которые читают или нет ...
Проблема в том, что я хочу соединить два Android устройств одновременно, подключение вроде бы в порядке, но я получаю данные только от одного устройства (первое подключенное - возможно, из-за перехода) ...
Как я могу изменить этот код продолжать получать данные, но со всех подключенных устройств?
Спасибо!