如何解决如何使用EAAccessoryManager Xamarin Forms将ESP32连接到iPhone?
我尝试使用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上的实现。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。