を閉じたときに、私は非同期SendPixelメソッドを呼び出している非同期OnSurfaceTextureUpdated方法で(ISurfaceTextureListener有する)活性を有する再開次いで中断しました:C#のアンドロイドISurfaceTextureListenerスレッドは活性が
async Task SendPixel()
{
try
{
if (Ev3Messaging.IsConnected())
{
Color color = new Color(bm.GetPixel(Settings.Camera.viewport.X_VpToCv(Settings.Pixel.x), Settings.Camera.viewport.X_VpToCv(Settings.Pixel.y)));
Ev3Messaging.AddNumberMessage("MC_Hue", color.GetHue());
Ev3Messaging.AddNumberMessage("MC_Brightness", color.GetBrightness());
Console.WriteLine("SendPixel");
await Ev3Messaging.SendMessages();
Console.WriteLine("SendPixelEnd");
}
}
catch (Exception ex)
{
Console.WriteLine("Error SendPixel: " + ex.Message);
}
}
ISurfaceTextureListenerはビデオストリームを読み取り、SendPixelメソッドが何度も呼び出されます。 問題は、コンソールが「SendPixel」を表示しても、「SendPixelEnd」を表示しないため、エラーがスローされないということです。 その後、アクティビティを閉じると、見つからない「SendPixelEnd」がすべて表示されます。
EDIT:
static List<byte> btMessage = new List<byte>();
static public async Task SendMessages()
{
if (_socket != null)
await _socket.OutputStream.WriteAsync(btMessage.ToArray(), 0, btMessage.Count);
}
なぜそれが起こるんし、どのように私はそれを解決することができます:EV3Messaging.SendMessagesは(ブルートゥースによる)メッセージを送信しますが、前の行に追加しましたか?
ありがとうございます。
PS:私の下手な英語^^解決しよう
:
はまた、受信メッセージを取得するために、私はこのコードを使用します。 – Gusman
おっと、申し訳ありません、私はそれを追加します。 –
さて、それは、Bluetoothのストリームが動作していないと思われ、ソケットが閉じられたときにアプリケーションを閉じると、すべての操作が終了します。接続されたデバイスでメッセージを受信していますか? – Gusman