问题描述
我尝试使用EAAccessoryManager将ESP32连接到我的苹果手机,但是我无法: 连接的设备始终为空,并且找不到任何设备。有人可以帮我。那是我需要连接的代码:他没有找到任何设备,始终保持连接状态。accessoires计数为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.","OK").Show();
}
}
else
{
new UIAlertView("BeeWi Car","No BeeWi car connected","OK").Show();
}
}
解决方法
您似乎缺少实际寻找蓝牙设备并从列表中选择所需的这段代码:
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;
}
Here's a good example在iOS上的实现。