我试着用EAAccessoryManager连接我的ESP32和我的苹果手机,但是我做不到:连接的设备总是空的,并且找不到任何设备。有人能帮帮我吗?这是我的代码,我需要连接它:他没有找到任何设备,始终connectedAccessoires计数为0
public void Start()
{
var connectedAccessories = EAAccessoryManager.SharedAccessoryManager.ConnectedAccessories;
EAAccessory beeWiCar = null;
foreach (var accessory in connectedAccessories)
{
foreach (var protocolString in accessory.ProtocolStrings)
{
protocolString.Contains("com.beewi.controlleur");
beeWiCar = accessory;
break;
}
}
if (beeWiCar != null)
{
try
{
session = new EASession(beeWiCar, "com.beewi.controlleur");
session.Accessory.Disconnected += delegate
{
new UIAlertView("BeeWi Car", "BeeWi car disconnected", null, "OK").Show();
};
session.InputStream.Schedule(NSRunLoop.Current, NSRunLoop.NSDefaultRunLoopMode);
session.InputStream.Open();
session.OutputStream.Schedule(NSRunLoop.Current, NSRunLoop.NSDefaultRunLoopMode);
session.OutputStream.Open();
}
catch (Exception ex)
{
new UIAlertView("BeeWi Car", "Ups something went wrong.", null, "OK").Show();
}
}
else
{
new UIAlertView("BeeWi Car", "No BeeWi car connected", null, "OK").Show();
}
}
发布于 2020-08-26 11:53:16
您似乎遗漏了实际查找蓝牙设备并从列表中挑选所需的这部分代码:
EAAccessoryManager.SharedAccessoryManager.RegisterForLocalNotifications();
TaskCompletionSource<EAAccessory> tcs = new TaskCompletionSource<EAAccessory>();
connectionObserver = EAAccessoryManager.Notifications.ObserveDidConnect((s, e) =>
{
tcs.SetResult(e.Selected);
});
try
{
await EAAccessoryManager.SharedAccessoryManager.ShowBluetoothAccessoryPickerAsync(null);
}
catch(Exception ex)
{
System.Diagnostics.Debug.WriteLine(ex);
EAAccessoryManager.SharedAccessoryManager.UnregisterForLocalNotifications();
return null;
}
它在iOS上的实现的Here's a good example。
https://stackoverflow.com/questions/63580753
复制相似问题