gpt4 book ai didi

android - 附近的连接2.0:混合使用不同的策略?

转载 作者:行者123 更新时间:2023-11-29 16:50:42 25 4
gpt4 key购买 nike

我一直在尝试使用新的Android Nearby Connections v2.0 API,并且对用于广告和发现的连接策略有一些疑问。这些问题涉及奇怪的情况,可能不容易回答。但是,当我在另一篇文章的评论中提到这些潜在问题时,Neighborhood Connections开发人员要求我针对这些问题创建一个单独的问题。这个问题涉及我想到的一些奇怪(但有些不自然)的极端情况(但是,那些做普通事情的普通开发人员不太可能遇到)。

The documentation包含以下模棱两可的声明:“ Nearby Connections支持不同的广告和发现策略。”最初,我将其解释为意味着我们可以选择两种可用的连接策略之一,并将其​​用于广告和发现。由于连接策略在特定节点上定义了(本地)连接拓扑,因此有意义的是,我们需要对广告和发现使用相同的连接策略。

但是,也可以将模棱两可的陈述解释为意味着(字面上)可以使用不同的策略进行广告和发现。这似乎很荒谬,但是似乎没有任何机制可以迫使这些策略完全相同。由于startAdvertising()和startDiscovery()都采用“ strategy”参数,因此很可能为每个参数传递不同的策略。


注意:我已经通过实验找到了上述问题的答案。如果广告商和发现者使用不匹配的策略,则永远不会到达发现者的onEndpointFound回调(因此,我猜测较低级别的代码必须意识到存在不匹配,并且永远不会将其发送出去)。


另一个问题:异构网络(混合策略)是否可能?由于连接策略会影响两个连接的节点之间的通信方式(P2P_CLUSTER使用低带宽进行小数据传输,而P2P_STAR同时使用Bluetooth和Wifi热点以获取更高的带宽),因此似乎需要两个节点连接,两者都需要使用相同的策略。


如前所述,实验表明两个节点的确需要使用相同的策略进行连接。但是,我可以想象另一种极端情况,其中设备A使用“群集”策略连接到设备B,切换策略(同时保持连接打开),然后使用“星型”策略连接到设备C。这行得通吗?我不知道。由于当前的测试程序会在配置更改后重新启动,因此,我需要编写新代码来测试这种极端情况(并且我还有很多其他的代码需要编写)。但是“附近的连接”开发人员有兴趣了解潜在的边缘情况,因此我在这里提到了这一点。


这些问题是在我尝试调试其他连接问题时出现的。为了使我的实验程序更具通用性,我为连接策略添加了“设置”选项,并添加了另一个“设置”选项,用于控制程序是否应仅进行广告发布或仅进行发现,或同时进行这两项操作。然后,我必须决定更改这些设置时应该怎么办。

只需停止广告/发现,然后使用请求的策略重新启动指定的内容就足够了吗?但是,如果使用先前策略留下的任何现有连接会发生什么情况?这个答案似乎并不明显。

也许这些问题只会出现在像我的测试程序这样的人为场景中(我之所以写是因为我试图理解其他连接问题)。在最终产品中,我可能只会选择一种策略并始终如一地使用它。而且,如果“附近的连接”是开源的,我只是看一下代码,以了解在这些奇怪的极端情况下可能发生的情况。但是由于我看不到源代码,因此很高兴看到更多有关预期行为的文档

最佳答案

是的,您回答了自己的问题。您必须在广告客户和发现者方面都匹配策略。否则,您将永远找不到广告设备。

至于流程中间的切换策略,这是明确不允许的。当您仍在与先前策略保持联系时,开始广告/开始发现时会出错。

关于android - 附近的连接2.0:混合使用不同的策略?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46509973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com