Wi-Fi Direct 和 iOS 支持

Posted

技术标签:

【中文标题】Wi-Fi Direct 和 iOS 支持【英文标题】:Wi-Fi Direct and iOS Support 【发布时间】:2015-02-11 06:55:58 【问题描述】:

我想在解决方案中使用Wi-Fi Direct,但我不确定哪些平台支持它。

Wi-Fi Direct 是否取决于 iPhone/ios 版本?

我可以在装有 iOS 8 的 iPhone 4s 上开发具有Wi-Fi Direct 功能的应用程序吗?

【问题讨论】:

iOS中不叫Wi-Fi Direct;它被称为Multipeer Connectivity 类似问题:***.com/questions/19067794/… 感谢 Raptor,我现在可以进行正确的名称搜索了。我查看了链接,它没有回答我的问题。基本上我需要知道何时添加了 Wi-Fi Direct 支持,是基于设备还是基于 iOS 版本?而且我猜这种 Multipeer Connectivity 是否也适用于 Wi-Fi Direct 设备? 提示:多点连接从 iOS 7 开始可用。 【参考方案1】:

我花了一段时间才知道发生了什么,但这里是摘要。我希望这可以为人们节省很多时间。

Apple 在 Wi-Fi Direct 上表现不佳,与 android 不同。 Apple 提供的 Multipeer Connectivity Framework 将 BLE 和 WiFi Direct 结合在一起,仅适用于 Apple 设备,不适用于任何使用 Wi-Fi Direct 的设备。

https://developer.apple.com/library/ios/documentation/MultipeerConnectivity/Reference/MultipeerConnectivityFramework/index.html

它在本文档中陈述了以下内容 - “Multipeer Connectivity 框架提供支持发现附近 iOS 设备提供的服务,使用基础设施 Wi-Fi 网络、点对点 Wi- Fi 和蓝牙个域网,然后通过发送基于消息的数据、流数据和资源(如文件)与这些服务进行通信。”

此外,i-Devices 之间的这种模式下的 Wi-Fi 直连需要 iPhone 5 及更高版本。

App Store 上有一些应用使用 Wi-Fi Direct 形式,但这些应用使用的是自己的库。

【讨论】:

"使用那里自己的库" 你知道任何库吗? 不,我不知道任何库,这只是一个假设,因为我的客户告诉我他使用了一个可以直接连接到具有 Wi-Fi 直连功能的相机的应用程序。换句话说,他可以通过一个应用程序连接到他的相机,而无需更改他的 iOS 设备上的 Wi-Fi 设置(他可能很困惑,没有意识到这是 BLE,但我不这么认为,因为他是精通技术的客户)。如果您发现任何此类库,请告诉我....我认为它需要是开放的,而不是私有的,否则可能无法获得应用程序的批准。 我试着环顾四周,什么也找不到。但我也读过有这样的功能的应用程序。 “App Store 上有使用 Wi-Fi Direct 形式的应用”。你能告诉我哪个应用使用 Wi-Fi Direct 吗? 我认为 GoPro Session 4 正在这样做【参考方案2】:

当前 iOS Wi-Fi 管理 API 的官方列表

没有可用的 Wi-Fi Direct 类型的连接。主要问题是 Apple 不允许对 Wi-Fi 网络 SSID 和密码进行编程设置。但是,这在 iOS 11 中得到了显着改善,您至少可以提示用户切换到另一个 WiFi 网络。

QA1942 - iOS Wi-Fi Management APIs

权利选项

如果您想在经理类型的应用中提供用户可能想要连接的 Wi-Fi 网络列表,此技术非常有用。它要求您向 Apple 申请此权利,并且电子邮件地址在文档中。

NEHotspotHelper

MFi 程序选项

这些技术允许配件连接到与 iPhone 相同的网络,而不是用于建立点对点连接。

无线附件配置 (WAC) HomeKit

Apple 设备之间的点对点

这些 API 与您想要的很接近,但它们仅适用于 Apple 到 Apple。

NSNetService Multipeer Connectivity

WiTap Example Code

iOS 11 NEHotspot 配置

在WWDC 2017 Advances in Networking, Part 1 提出的是NEHotspotConfiguration,它允许应用指定并提示连接到特定网络。

【讨论】:

您知道使用 WAC 进行 HomeKit 设备设置的任何好的参考吗?我发现 Apple 的文档很差【参考方案3】:

根据this线程:

iOS(以及最新版本的操作系统)实现的点对点 Wi-Fi X) 与 Wi-Fi Direct 不兼容。 注意顺便说一句,您可以 在不使用 Multipeer Connectivity 的情况下访问对等 Wi-Fi。这 底层技术是 Bonjour + TCP/IP,你可以访问它 直接从您的应用程序。 WiTap sample code 显示了如何。

【讨论】:

以上是关于Wi-Fi Direct 和 iOS 支持的主要内容,如果未能解决你的问题,请参考以下文章

一文带你简单了解Wi-Fi Direct

在 Flutter 中使用 Wi-Fi Direct 创建 P2P 连接

使用蓝牙/wi-fi direct/BLE api 或任何其他方式与 android 设备通信 ios 设备

Wi-Fi Direct

Wi-Fi Direct

Android Wi-Fi Direct 在连接前发送数据