教程
在 iPhone 和安卓手机之间互传文件
两边浏览器打开同一个页面,念一段四位数房间号,然后发送。不用装 App,不用注册账号,不用配对,文件也不会留在别人的服务器上。AirDrop 做不到这件事,因为它是苹果的私有协议,安卓根本不支持。
从 iPhone 发到安卓
- 在 iPhone 上打开这个页面,切换到「发送」,会出现一个四位房间号,比如 4821。
- 在安卓手机上用 Chrome 打开同一个页面,切换到「接收」。
- 输入 iPhone 上的房间号,加入房间。
- 回到 iPhone 选择文件,或者直接把文件拖到页面上。
- 安卓手机会直接从 iPhone 的浏览器接收文件。Chrome 首次会提示允许下载。
反方向发送
- 在安卓手机上切换到「发送」,把房间号念给对方。
- 在 iPhone 上切换到「接收」,输入这个房间号。
- 在安卓上选择文件发送,在 Safari 里接收。
为什么不用 AirDrop、蓝牙或者数据线
AirDrop 听起来是标准答案,但它并不存在:那是苹果的私有协议,安卓虽然可以通过第三方应用打开接收端,发送方还得是 iPhone,而且不是一下就能用好。iPhone 和安卓之间蓝牙配对失败的频率高到很多人最后放弃。数据线确实能用,传大视频时也是正确答案,但你得找到对的转接头,而且手机口可能正在充电。剩下的选择都是在两台设备上装 App。而这个方案只需要浏览器——两台手机本来就都有。
每种方案真正的代价
| AirDrop | 蓝牙 | 数据线 | 本页面 | |
|---|---|---|---|---|
| iPhone 传给安卓 | 不行 | 不稳定 | 可以,需要转接头 | 可以 |
| 无需安装任何东西 | 是 | 是 | 是 | 是 |
| 必须两台设备在同一网络 | 是 | 是 | 否 | 否,跨网也能用 |
| 文件会留在第三方机器上 | 否 | 否 | 否 | 否 |
| 最适合超大文件 | 是 | 否 | 是 | 是,走数据线更快 |
什么时候这个方案不合适
- 完全没网的时候,这个方案都不行。唯一不需要网络的是数据线。
- 传几 GB 的视频,数据线更快。直连速度取决于两端上传速度中较慢的那个;真的需要走中继时,中继那条共享带宽就是瓶颈,而且每转发一个 GB 都是我们自己付费的流量。
- 有些公司或学校网络会封禁 WebRTC。如果两台设备一直连不上,多半就是这个原因。
- 房间号默认只有四个字符,理论上可以被猜到,猜到的人可以加入传输。两个人在同一个房间里没问题;真正机密的文件,点发送页的切换按钮改用 36 位房间号就行。
FAQ
- 安卓有 AirDrop 的替代方案吗?
- 安卓没有 AirDrop,因为 AirDrop 是苹果的协议。这个页面在两台设备的任何浏览器里用法完全一致,正因为这样它不需要 AirDrop。
- 没有网络能把文件从 iPhone 传到安卓吗?
- 只有两台设备在同一个局域网内才行。PrivyDrop 需要一个网络来把两个浏览器互相引荐,即使文件本身完全不走互联网。要真正的离线传输,请用数据线。
- 两台手机都要装 App 吗?
- 不需要。iPhone 上的 Safari 加安卓上的 Chrome 就是全部步骤。没有账号,没有配对码,结束后也不会留下任何东西。
- 文件会被上传到哪里吗?
- 不会。后端只有创建房间、查询房间是否存在和匿名计数这几类接口,没有任何接收文件的接口,也查不到房间里有哪些人。完整列表就在 MIT 协议开源仓库的 backend/src/routes/api.ts 里。
- 能传 4K 视频吗?
- 能传,但这么大的文件用数据线更快,尤其是跨网络的时候。这个方案更适合文档、照片,以及任何你不愿意把副本交给服务器的东西。