Ich möchte den seriellen Anschluss eines angeschlossenen Bluetooth-Geräts in einer Xamarin Forms-Anwendung öffnen.UWP SerialDevice.FromIdAsync löst "Element nicht gefunden" aus (Ausnahme von HRESULT: 0x80070490) unter Windows 10
Hier ist der Code (I vereinfacht es, um das Problem zu veranschaulichen):
string l_gdsSelector = SerialDevice.GetDeviceSelector();
var l_ardiDevices = await DeviceInformation.FindAllAsync(l_gdsSelector);
foreach(DeviceInformation l_diCurrent in l_ardiDevices)
{
if(l_diCurrent.Name.StartsWith("PX05"))
{
m_sdDevice = await SerialDevice.FromIdAsync(l_diCurrent.Id);
break;
}
}
Dieser Code führt (Ausnahme von HRESULT: 0x80070490) "Element nicht gefunden" Ausnahme bei await SerialDevice.FromIdAsync
I kann es nicht glauben: "Element nicht gefunden", während DeviceInformation.FindAllAsync juste es als existierendes Gerät zurückgegeben hat!
Kann mir jemand dieses seltsame Verhalten erklären? und vor allem, wie man es löst?
Vielen Dank im Voraus
http: // Stackoverflow. com/questions/41039362/exception-while-accessing-rfcommdeviceservice-from-a-wearable-in-uwp? noredirect = 1 # comment69297533_41039362 Ich habe eine ähnliche Ausnahme in meiner reinen UWP-Anwendung, beim Zugriff auf einen Bluetooth-Dienst. Woher beziehen Sie den Dispatcher? Wenn Sie sagen, der Aufruf muss im UI-Thread ausgeführt werden, meinen Sie den Hauptthread? Bitte helfen Sie! – sudarsanyes
Hallo, normalerweise bedeutet UI-Thread Main-Thread. Tatsache ist, dass Windows den Benutzer fragt, wenn es FromIdAsync zum ersten Mal verwendet, um die Anwendung Bluetooth verwenden zu lassen. Es muss also eine Bestätigungsmeldung angezeigt werden. Es muss den UI-Thread (Hauptthread) verwenden. –
Ich habe meinen Code mit CoreWindow.Dispatcher.RunAsync aktualisiert (... weil ich realisiert habe, dass Device.BeginInvokeOnMainThread von Xamarin nicht erwartet werden kann, dass führte zu unerwartetem Verhalten. –