发布网友 发布时间:2022-04-22 14:59
共1个回答
热心网友 时间:2022-07-07 08:10
首先,2011年OSXDaily有篇教程[1]说能够让非苹果官方支持的设备也能使用AirDrop,甚至能绕过WiFi仅通过有线以太网也能支持AirDrop。从该教程中使用的命令判断,AirDropforOSX是基于以太网协议的。 但为什么苹果不官方支持全部设备呢?考虑到官方支持的两台只有WiFi连接的OSX设备在通过AirDrop传输文件的时候仍然可以正常上网,这要求OSX将系统的唯一一块WiFi网卡虚拟成两块:一块以infrastructure模式连入WiFi基站,而另一块则是在adhoc模式用于AirDrop传输。关于类似技术,能找到的最早的公开资料是微软研究院2002年开始研发的VirtualWiFi,七年后该技术才在Windows7中采用。 VirtualWiFi页面的这个FAQ[2]提到虚拟出来的两块网卡如果要连接不同制式的WiFi网络,比如一块连802.11a另一块连802.11b,则需要要底层网卡提供硬件支持。以当时的技术在不同制式间切换时滞较长,会严重影响性能。由此我们大概可以猜到,苹果为了保证用户体验,只对配备了较新的支持虚拟技术的WiFi网卡的Mac才支持AirDrop。 AirDropforiOS 和OSX设备WiFi一直在线不同,iOS设备由于需要降低电池消耗会经常关闭WiFi天线【比如在锁屏状态下】,因此iOS的AirDrop不能单纯基于以太网协议,否则当设备A需要AirDrop给设备B,而设备B的WiFi天线处于关闭的情况下,AirDrop无法唤醒设备B从而失败。 刚好蓝牙协议(Bluetooth)解决了这个问题。需要特别指出的是,Bluetooth4.0规范包括三种协议:经典蓝牙CB(ClassicBluetooth)、蓝牙高速BHS(BluetoothHighSpeed)、以及低功耗蓝牙BLE(BluetoothLowEnergy)。但Bluetooth4.0并未规定所有实现必须同时支持BHS和BLE:有可能你的设备支持Bluetooth4.0但是不支持BLE或者BHS。 蓝牙协议的功耗低,iOS设备可以周期性的发送蓝牙信号而不用牺牲太多电力。但经典蓝牙CB需要花较长时间搜索周围的设备并进行配对,这个过程中漫长的等待【几秒到十几秒不等】会造成不好的用户体验。蓝牙BLE则提供了全新的快速建立简单连接的能力,避免了前述的等待问题。从演示的AirDropforiOS的实际使用情况来看,从发现设备到实际连接的间隔非常短,可以确认是使用了BLE。 而依赖蓝牙协议的AirDropforiOS暂时无法和依赖WiFi协议的AirDropforOSX兼容,因为它们根本就是完全不同的实现。 目前所有支持AirDrop的iOS设备都使用了Broadcom的BCM4334芯片,而该芯片支持Wi-FiDirect[3]。苹果其他设备均未使用该芯片。有很大可能AirDropforiOS是用蓝牙BLE发现设备而用Wi-FiDirect传输数据【不用蓝牙BHS应该是因为传输带宽太低,只有24Mbps;Wi-FiDirect最大为250Mbps,高一个数量级】。如果是这样的话,那么即便OSX10.9发布后支持BLE方式的AirDrop设备发现,iOS也无法和已有的OSX设备通过AirDrop传输数据,除非新出的OSX设备搭载支持Wi-FiDirect的芯片,或者苹果对旧有WiFi固件进行升级。