0
У меня с этим Bluetooth. Вот мой код:Bluetooth-устройство иногда подключено, иногда нет
public void createServer()
{
Thread ServerThread = new Thread(new ThreadStart(ServerConnectThread));
ServerThread.Start();
}
public void ServerConnectThread()
{
updateUI("Server started");
updateUI("Waiting for client..");
BluetoothListener BTListener = new BluetoothListener(UUID);
BTListener.Stop();
BTListener.Start();
ServerRunning = true;
BluetoothClient conn = BTListener.AcceptBluetoothClient();
MessageBoxResult connected = System.Windows.MessageBox.Show("Phone has connected", "Confirmation", MessageBoxButton.OK);
if (connected == MessageBoxResult.OK)
{
this.Dispatcher.Invoke((Action)(() =>
{
player1Connection.Visibility = Visibility.Visible;
player1Connectiondc.Visibility = Visibility.Hidden;
}));
Stream mStream = conn.GetStream();
while (ServerRunning)
{
try
{
byte[] received = new byte[1];
mStream.Read(received, 0, received.Length);
updateUI("Message Received. " + Encoding.ASCII.GetString(received) + System.Environment.NewLine);
byte[] sent = Encoding.ASCII.GetBytes(Encoding.ASCII.GetString(received) + " u too");
mStream.Write(sent, 0, sent.Length);
updateUI("The code is " + Encoding.ASCII.GetString(received));
string result = System.Text.Encoding.ASCII.GetString(received).ToString();
updateUI("Key is " + result);
if (Game != null)
{
SinglePlayGame sg = (IceGame.Class.SinglePlayGame)Game;
force.Y = -force.Y;
if (result == "A")
{
force += new Vector2(-forceAmount, 0);
}
else if (result == "D")
{
force += new Vector2(forceAmount, 0);
}
else if (result == "W")
{
force += new Vector2(0, -forceAmount);
}
else if (result == "S")
{
force += new Vector2(0, forceAmount);
}
sg.BodyPlayer1.ApplyForce(force);
force = new Vector2(0, 0);
}
}
catch (IOException ex)
{
Console.WriteLine("Client disconnected");
}
}
}
Он все равно скажет, что телефон подключен. Однако проигрыватель1Connection иногда не будет виден и заставляет устройство не читать команды, которые я сказал. Он работает, но мне требуется около 3-х раз +, чтобы заставить player1Connection работать. Пожалуйста помоги. Спасибо.
Его уже работает. Однако проблема заключается в «player1Connection.Visibility = Visibility.Visible; и player1Connectiondc.Visibility = Visibility.Hidden». Код, похоже, не проходит через него, поэтому элементы управления также не отправляются на сервер. Pc – Miguel
y cant u use 'player1Connectiondc.setVisibility (View.VISIBLE);' –
Все еще не может. Проблема в том, что проблема заключается в этом.Dispatcher.Invoke ((Action) ((). Я действительно не уверен в вызове – Miguel