首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用EAAccessoryManager Xamarin Forms将ESP32连接到iPhone?

如何使用EAAccessoryManager Xamarin Forms将ESP32连接到iPhone?
EN

Stack Overflow用户
提问于 2020-08-25 22:11:31
回答 1查看 840关注 0票数 1

我试着用EAAccessoryManager连接我的ESP32和我的苹果手机,但是我做不到:连接的设备总是空的,并且找不到任何设备。有人能帮帮我吗?这是我的代码,我需要连接它:他没有找到任何设备,始终connectedAccessoires计数为0

代码语言:javascript
运行
复制
    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();
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2020-08-26 11:53:16

您似乎遗漏了实际查找蓝牙设备并从列表中挑选所需的这部分代码:

代码语言:javascript
运行
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63580753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档